<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="appstream-glib"/>
  <namespace name="AppStreamGlib"
             version="1.0"
             shared-library="libappstream-glib.so.8"
             c:identifier-prefixes="As"
             c:symbol-prefixes="as_">
    <alias name="AppSourceKind" c:type="AsAppSourceKind">
      <doc xml:space="preserve">The source kind.

This has been deprecated since 0.6.9 in favour of using AsFormatKind.</doc>
      <type name="FormatKind" c:type="AsFormatKind"/>
    </alias>
    <alias name="ImageAlphaFlags" c:type="AsImageAlphaFlags">
      <doc xml:space="preserve">The flags used for reporting the alpha cutouts in the image.</doc>
      <type name="guint" c:type="guint"/>
    </alias>
    <alias name="Node" c:type="AsNode">
      <type name="GLib.Node" c:type="GNode"/>
    </alias>
    <constant name="APP_SUBSUME_FLAG_DEDUPE"
              value="0"
              c:type="AS_APP_SUBSUME_FLAG_DEDUPE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="APP_SUBSUME_FLAG_MERGE"
              value="0"
              c:type="AS_APP_SUBSUME_FLAG_MERGE">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="App"
           c:symbol-prefix="app"
           c:type="AsApp"
           parent="GObject.Object"
           glib:type-name="AsApp"
           glib:get-type="as_app_get_type"
           glib:type-struct="AppClass">
      <constructor name="new" c:identifier="as_app_new" version="0.1.0">
        <doc xml:space="preserve">Creates a new #AsApp.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsApp</doc>
          <type name="App" c:type="AsApp*"/>
        </return-value>
      </constructor>
      <function name="error_quark"
                c:identifier="as_app_error_quark"
                version="0.1.2">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <function name="guess_source_kind"
                c:identifier="as_app_guess_source_kind"
                version="0.1.8">
        <doc xml:space="preserve">Guesses the source kind based from the filename.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsFormatKind, e.g. %AS_FORMAT_KIND_APPSTREAM.</doc>
          <type name="FormatKind" c:type="AsFormatKind"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">a file name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_from_string"
                c:identifier="as_app_kind_from_string"
                version="0.5.10">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsAppKind or %AS_APP_KIND_UNKNOWN for unknown</doc>
          <type name="AppKind" c:type="AsAppKind"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="as_app_kind_to_string"
                version="0.5.10">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @kind</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppKind.</doc>
            <type name="AppKind" c:type="AsAppKind"/>
          </parameter>
        </parameters>
      </function>
      <function name="merge_kind_from_string"
                c:identifier="as_app_merge_kind_from_string"
                version="0.6.1">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsAppMergeKind, e.g. %AS_APP_MERGE_KIND_REPLACE.</doc>
          <type name="AppMergeKind" c:type="AsAppMergeKind"/>
        </return-value>
        <parameters>
          <parameter name="merge_kind" transfer-ownership="none">
            <doc xml:space="preserve">a source kind string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="merge_kind_to_string"
                c:identifier="as_app_merge_kind_to_string"
                version="0.6.1">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @merge_kind, or %NULL for unknown</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="merge_kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppMergeKind, e.g. %AS_APP_MERGE_KIND_REPLACE</doc>
            <type name="AppMergeKind" c:type="AsAppMergeKind"/>
          </parameter>
        </parameters>
      </function>
      <function name="scope_from_string"
                c:identifier="as_app_scope_from_string"
                version="0.6.1">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsAppScope, e.g. %AS_APP_SCOPE_SYSTEM.</doc>
          <type name="AppScope" c:type="AsAppScope"/>
        </return-value>
        <parameters>
          <parameter name="scope" transfer-ownership="none">
            <doc xml:space="preserve">a source kind string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="scope_to_string"
                c:identifier="as_app_scope_to_string"
                version="0.6.1">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @scope, or %NULL for unknown</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="scope" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppScope, e.g. %AS_APP_SCOPE_SYSTEM</doc>
            <type name="AppScope" c:type="AsAppScope"/>
          </parameter>
        </parameters>
      </function>
      <function name="source_kind_from_string"
                c:identifier="as_app_source_kind_from_string"
                version="0.2.2">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsFormatKind, e.g. %AS_FORMAT_KIND_APPSTREAM.</doc>
          <type name="FormatKind" c:type="AsFormatKind"/>
        </return-value>
        <parameters>
          <parameter name="source_kind" transfer-ownership="none">
            <doc xml:space="preserve">a source kind string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="source_kind_to_string"
                c:identifier="as_app_source_kind_to_string"
                version="0.2.2">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @source_kind, or %NULL for unknown</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="source_kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsFormatKind.</doc>
            <type name="FormatKind" c:type="AsFormatKind"/>
          </parameter>
        </parameters>
      </function>
      <function name="state_to_string"
                c:identifier="as_app_state_to_string"
                version="0.2.2">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @state, or %NULL for unknown</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppState.</doc>
            <type name="AppState" c:type="AsAppState"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_addon" c:identifier="as_app_add_addon" version="0.1.7">
        <doc xml:space="preserve">Adds a addon to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="addon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_arch" c:identifier="as_app_add_arch" version="0.1.1">
        <doc xml:space="preserve">Adds a package name to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="arch" transfer-ownership="none">
            <doc xml:space="preserve">the package name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_bundle"
              c:identifier="as_app_add_bundle"
              version="0.3.5">
        <doc xml:space="preserve">Adds a bundle to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="bundle" transfer-ownership="none">
            <doc xml:space="preserve">a #AsBundle instance.</doc>
            <type name="Bundle" c:type="AsBundle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_category"
              c:identifier="as_app_add_category"
              version="0.1.0">
        <doc xml:space="preserve">Adds a menu category to the application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="category" transfer-ownership="none">
            <doc xml:space="preserve">the category.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_compulsory_for_desktop"
              c:identifier="as_app_add_compulsory_for_desktop"
              version="0.1.0">
        <doc xml:space="preserve">Adds a desktop that requires this application to be installed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="compulsory_for_desktop" transfer-ownership="none">
            <doc xml:space="preserve">the desktop string, e.g. "GNOME".</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_content_rating"
              c:identifier="as_app_add_content_rating"
              version="0.5.12">
        <doc xml:space="preserve">Adds a content_rating to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="content_rating" transfer-ownership="none">
            <doc xml:space="preserve">a #AsContentRating instance.</doc>
            <type name="ContentRating" c:type="AsContentRating*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_extends"
              c:identifier="as_app_add_extends"
              version="0.1.7">
        <doc xml:space="preserve">Adds a parent ID to the application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="extends" transfer-ownership="none">
            <doc xml:space="preserve">the full ID, e.g. "eclipse.desktop".</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_format"
              c:identifier="as_app_add_format"
              version="0.6.9">
        <doc xml:space="preserve">Add a format the application has been built from.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">the #AsFormat.</doc>
            <type name="Format" c:type="AsFormat*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_icon" c:identifier="as_app_add_icon" version="0.3.1">
        <doc xml:space="preserve">Adds a icon to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_keyword"
              c:identifier="as_app_add_keyword"
              version="0.3.0">
        <doc xml:space="preserve">Add a keyword the application should match against.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keyword" transfer-ownership="none">
            <doc xml:space="preserve">the keyword.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_kudo" c:identifier="as_app_add_kudo" version="0.2.2">
        <doc xml:space="preserve">Add a kudo the application has obtained.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="kudo" transfer-ownership="none">
            <doc xml:space="preserve">the kudo.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_kudo_kind"
              c:identifier="as_app_add_kudo_kind"
              version="0.2.2">
        <doc xml:space="preserve">Add a kudo the application has obtained.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="kudo_kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsKudoKind.</doc>
            <type name="KudoKind" c:type="AsKudoKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_language"
              c:identifier="as_app_add_language"
              version="0.1.0">
        <doc xml:space="preserve">Adds a language to the application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="percentage" transfer-ownership="none">
            <doc xml:space="preserve">the percentage completion of the translation, or 0 for unknown</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_launchable"
              c:identifier="as_app_add_launchable"
              version="0.6.13">
        <doc xml:space="preserve">Adds a launchable to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="launchable" transfer-ownership="none">
            <doc xml:space="preserve">a #AsLaunchable instance.</doc>
            <type name="Launchable" c:type="AsLaunchable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_metadata"
              c:identifier="as_app_add_metadata"
              version="0.1.0">
        <doc xml:space="preserve">Adds a metadata entry to the application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the metadata key.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the value to store.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_mimetype"
              c:identifier="as_app_add_mimetype"
              version="0.1.0">
        <doc xml:space="preserve">Adds a mimetype the application can process.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="mimetype" transfer-ownership="none">
            <doc xml:space="preserve">the mimetype.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_permission"
              c:identifier="as_app_add_permission"
              version="0.3.5">
        <doc xml:space="preserve">Add a permission the application has obtained.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="permission" transfer-ownership="none">
            <doc xml:space="preserve">the permission.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_pkgname"
              c:identifier="as_app_add_pkgname"
              version="0.1.0">
        <doc xml:space="preserve">Adds a package name to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="pkgname" transfer-ownership="none">
            <doc xml:space="preserve">the package name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_provide"
              c:identifier="as_app_add_provide"
              version="0.1.6">
        <doc xml:space="preserve">Adds a provide to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="provide" transfer-ownership="none">
            <doc xml:space="preserve">a #AsProvide instance.</doc>
            <type name="Provide" c:type="AsProvide*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_quirk"
              c:identifier="as_app_add_quirk"
              version="0.5.10">
        <doc xml:space="preserve">Adds a specific attribute to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="quirk" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppQuirk, e.g. %AS_APP_QUIRK_PROVENANCE</doc>
            <type name="AppQuirk" c:type="AsAppQuirk"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_release"
              c:identifier="as_app_add_release"
              version="0.1.0">
        <doc xml:space="preserve">Adds a release to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_require"
              c:identifier="as_app_add_require"
              version="0.6.7">
        <doc xml:space="preserve">Adds a require to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="require" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRequire instance.</doc>
            <type name="Require" c:type="AsRequire*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_review"
              c:identifier="as_app_add_review"
              version="0.6.1">
        <doc xml:space="preserve">Adds a review to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview instance.</doc>
            <type name="Review" c:type="AsReview*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_screenshot"
              c:identifier="as_app_add_screenshot"
              version="0.1.0">
        <doc xml:space="preserve">Adds a screenshot to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_suggest"
              c:identifier="as_app_add_suggest"
              version="0.6.1">
        <doc xml:space="preserve">Adds a suggest to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="suggest" transfer-ownership="none">
            <doc xml:space="preserve">a #AsSuggest instance.</doc>
            <type name="Suggest" c:type="AsSuggest*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_translation"
              c:identifier="as_app_add_translation"
              version="0.5.8">
        <doc xml:space="preserve">Adds a translation to an application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="translation" transfer-ownership="none">
            <doc xml:space="preserve">a #AsTranslation instance.</doc>
            <type name="Translation" c:type="AsTranslation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_url" c:identifier="as_app_add_url" version="0.1.0">
        <doc xml:space="preserve">Adds some URL data to the application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="url_kind" transfer-ownership="none">
            <doc xml:space="preserve">the URL kind, e.g. %AS_URL_KIND_HOMEPAGE</doc>
            <type name="UrlKind" c:type="AsUrlKind"/>
          </parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">the full URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_veto"
              c:identifier="as_app_add_veto"
              version="0.2.5"
              introspectable="0">
        <doc xml:space="preserve">Adds a reason to not include the application in the metadata.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsApp</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="fmt" transfer-ownership="none">
            <doc xml:space="preserve">format string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve">varargs</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_icons"
              c:identifier="as_app_convert_icons"
              version="0.3.1"
              throws="1">
        <doc xml:space="preserve">Converts all the icons in the application to a specific kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsApp.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the AsIconKind, e.g. %AS_ICON_KIND_EMBEDDED.</doc>
            <type name="IconKind" c:type="AsIconKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="as_app_equal" version="0.6.1">
        <doc xml:space="preserve">Compare one application with another for equality using the following
properties:

 1. scope, e.g. `system` or `user`
 2. bundle kind, e.g. `package` or `flatpak`
 3. origin, e.g. `fedora` or `gnome-apps-nightly`
 4. kind, e.g. `app` or `runtime`
 5. AppStream ID, e.g. `gimp.desktop`
 6. branch, e.g. `stable` or `master`</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the applications are equal</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app1" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="app2" transfer-ownership="none">
            <doc xml:space="preserve">another #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_addons"
              c:identifier="as_app_get_addons"
              version="0.1.7">
        <doc xml:space="preserve">Gets all the addons the application has.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="App"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_architectures"
              c:identifier="as_app_get_architectures"
              version="0.1.1">
        <doc xml:space="preserve">Gets the supported architectures for the application, or an empty list
if all architectures are supported.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_branch"
              c:identifier="as_app_get_branch"
              version="0.6.1">
        <doc xml:space="preserve">Gets the branch for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bundle_default"
              c:identifier="as_app_get_bundle_default"
              version="0.3.5">
        <doc xml:space="preserve">Finds the default bundle.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsBundle, or %NULL</doc>
          <type name="Bundle" c:type="AsBundle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsApp</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bundles"
              c:identifier="as_app_get_bundles"
              version="0.3.5">
        <doc xml:space="preserve">Gets any bundles the application has defined.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Bundle"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_categories"
              c:identifier="as_app_get_categories"
              version="0.1.0">
        <doc xml:space="preserve">Get the application categories.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_comment"
              c:identifier="as_app_get_comment"
              version="0.1.0">
        <doc xml:space="preserve">Gets the application summary for a specific locale.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_comments"
              c:identifier="as_app_get_comments"
              version="0.1.6">
        <doc xml:space="preserve">Gets the comments set for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">hash table of comments</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_compulsory_for_desktops"
              c:identifier="as_app_get_compulsory_for_desktops"
              version="0.1.0">
        <doc xml:space="preserve">Returns the desktops where this application is compulsory.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_rating"
              c:identifier="as_app_get_content_rating"
              version="0.5.12">
        <doc xml:space="preserve">Gets a content ratings the application has defined of a specific type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsContentRating or NULL for not found</doc>
          <type name="ContentRating" c:type="AsContentRating*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">a ratings kind, e.g. "oars-1.0"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_content_ratings"
              c:identifier="as_app_get_content_ratings"
              version="0.5.12">
        <doc xml:space="preserve">Gets any content_ratings the application has defined.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="ContentRating"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="as_app_get_description"
              version="0.1.0">
        <doc xml:space="preserve">Gets the application description markup for a specific locale.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_descriptions"
              c:identifier="as_app_get_descriptions"
              version="0.1.6">
        <doc xml:space="preserve">Gets the descriptions set for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">hash table of descriptions</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_developer_name"
              c:identifier="as_app_get_developer_name"
              version="0.1.8">
        <doc xml:space="preserve">Gets the application developer name for a specific locale.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_developer_names"
              c:identifier="as_app_get_developer_names"
              version="0.1.8">
        <doc xml:space="preserve">Gets the developer_names set for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">hash table of developer_names</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_extends"
              c:identifier="as_app_get_extends"
              version="0.1.7">
        <doc xml:space="preserve">Gets the IDs that are extended from the addon.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_format_by_filename"
              c:identifier="as_app_get_format_by_filename"
              version="0.6.9">
        <doc xml:space="preserve">Searches the list of formats for a specific filename.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsFormat, or %NULL if not found</doc>
          <type name="Format" c:type="AsFormat*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">a filename, e.g. "/home/hughsie/dave.desktop"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_format_by_kind"
              c:identifier="as_app_get_format_by_kind"
              version="0.6.9">
        <doc xml:space="preserve">Searches the list of formats for a specific format kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsFormat, or %NULL if not found</doc>
          <type name="Format" c:type="AsFormat*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">a #AsFormatKind, e.g. %AS_FORMAT_KIND_APPDATA</doc>
            <type name="FormatKind" c:type="AsFormatKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_format_default"
              c:identifier="as_app_get_format_default"
              version="0.6.9">
        <doc xml:space="preserve">Returns the default format.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsFormat, or %NULL if not found</doc>
          <type name="Format" c:type="AsFormat*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_formats"
              c:identifier="as_app_get_formats"
              version="0.6.9">
        <doc xml:space="preserve">Gets any formats that make up the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_default"
              c:identifier="as_app_get_icon_default"
              version="0.3.1">
        <doc xml:space="preserve">Finds the default icon.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsIcon, or %NULL</doc>
          <type name="Icon" c:type="AsIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsApp</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_for_size"
              c:identifier="as_app_get_icon_for_size"
              version="0.3.1">
        <doc xml:space="preserve">Finds an icon of a specific size.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsIcon, or %NULL</doc>
          <type name="Icon" c:type="AsIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsApp</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">Size in pixels</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">Size in pixels</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_icon_path"
              c:identifier="as_app_get_icon_path"
              version="0.1.0">
        <doc xml:space="preserve">Gets the application icon path.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icons" c:identifier="as_app_get_icons" version="0.3.1">
        <doc xml:space="preserve">Gets any icons the application has defined.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Icon"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="as_app_get_id" version="0.1.0">
        <doc xml:space="preserve">Gets the full ID value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the ID, e.g. "org.gnome.Software.desktop"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id_filename"
              c:identifier="as_app_get_id_filename"
              version="0.3.0">
        <doc xml:space="preserve">Returns a filename which represents the applications ID, e.g. "gimp.desktop"
becomes "gimp" and is used for cache directories.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A utf8 filename</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id_kind"
              c:identifier="as_app_get_id_kind"
              version="0.1.0">
        <doc xml:space="preserve">Gets the ID kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">enumerated value</doc>
          <type name="IdKind" c:type="AsIdKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id_no_prefix"
              c:identifier="as_app_get_id_no_prefix"
              version="0.5.12">
        <doc xml:space="preserve">Gets the full ID value, stripping any prefix.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the ID, e.g. "org.gnome.Software.desktop"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keywords"
              c:identifier="as_app_get_keywords"
              version="0.3.0">
        <doc xml:space="preserve">Gets any keywords the application should match against.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array, or %NULL</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_kind" c:identifier="as_app_get_kind" version="0.5.10">
        <doc xml:space="preserve">Gets the ID kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">enumerated value</doc>
          <type name="AppKind" c:type="AsAppKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kudos" c:identifier="as_app_get_kudos" version="0.2.2">
        <doc xml:space="preserve">Gets any kudos the application has obtained.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_language"
              c:identifier="as_app_get_language"
              version="0.1.0">
        <doc xml:space="preserve">Gets the language coverage for the specific language.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a percentage value where 0 is unspecified, or -1 for not found</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_languages"
              c:identifier="as_app_get_languages"
              version="0.1.0">
        <doc xml:space="preserve">Get a list of all languages.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">list of language values</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_launchable_by_kind"
              c:identifier="as_app_get_launchable_by_kind"
              version="0.6.13">
        <doc xml:space="preserve">Searches the list of launchables for a specific launchable kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsLaunchable, or %NULL if not found</doc>
          <type name="Launchable" c:type="AsLaunchable*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">a #AsLaunchableKind, e.g. %AS_FORMAT_KIND_APPDATA</doc>
            <type name="LaunchableKind" c:type="AsLaunchableKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_launchable_default"
              c:identifier="as_app_get_launchable_default"
              version="0.6.13">
        <doc xml:space="preserve">Returns the default launchable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsLaunchable, or %NULL if not found</doc>
          <type name="Launchable" c:type="AsLaunchable*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_launchables"
              c:identifier="as_app_get_launchables"
              version="0.6.13">
        <doc xml:space="preserve">Gets all the launchables the application has.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Launchable"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_merge_kind"
              c:identifier="as_app_get_merge_kind"
              version="0.6.1">
        <doc xml:space="preserve">Gets the merge_kind of the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">enumerated value</doc>
          <type name="AppMergeKind" c:type="AsAppMergeKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata"
              c:identifier="as_app_get_metadata"
              version="0.1.6">
        <doc xml:space="preserve">Gets the metadata set for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">hash table of metadata</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata_item"
              c:identifier="as_app_get_metadata_item"
              version="0.1.0">
        <doc xml:space="preserve">Gets some metadata item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the metadata key.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_metadata_license"
              c:identifier="as_app_get_metadata_license"
              version="0.1.4">
        <doc xml:space="preserve">Gets the application project license.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mimetypes"
              c:identifier="as_app_get_mimetypes"
              version="0.2.0">
        <doc xml:space="preserve">Gets any mimetypes the application will register.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="as_app_get_name" version="0.1.0">
        <doc xml:space="preserve">Gets the application name for a specific locale.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_names" c:identifier="as_app_get_names" version="0.1.6">
        <doc xml:space="preserve">Gets the names set for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">hash table of names</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_origin"
              c:identifier="as_app_get_origin"
              version="0.3.2">
        <doc xml:space="preserve">Gets the application origin.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the origin string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_permissions"
              c:identifier="as_app_get_permissions"
              version="0.3.5">
        <doc xml:space="preserve">Gets any permissions the application has obtained.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pkgname_default"
              c:identifier="as_app_get_pkgname_default"
              version="0.2.0">
        <doc xml:space="preserve">Gets the default package name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pkgnames"
              c:identifier="as_app_get_pkgnames"
              version="0.1.0">
        <doc xml:space="preserve">Gets the package names (if any) for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_priority"
              c:identifier="as_app_get_priority"
              version="0.1.0">
        <doc xml:space="preserve">Gets the application priority. Larger values trump smaller values.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">priority value</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_project_group"
              c:identifier="as_app_get_project_group"
              version="0.1.0">
        <doc xml:space="preserve">Gets an application project group.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_project_license"
              c:identifier="as_app_get_project_license"
              version="0.1.0">
        <doc xml:space="preserve">Gets the application project license.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_provides"
              c:identifier="as_app_get_provides"
              version="0.1.6">
        <doc xml:space="preserve">Gets all the provides the application has.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Provide"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_release"
              c:identifier="as_app_get_release"
              version="0.3.5">
        <doc xml:space="preserve">Gets a specific release from the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a release, or %NULL</doc>
          <type name="Release" c:type="AsRelease*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">a version string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_release_by_version"
              c:identifier="as_app_get_release_by_version"
              version="0.7.3">
        <doc xml:space="preserve">Gets a specific release from the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a release, or %NULL</doc>
          <type name="Release" c:type="AsRelease*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">a release version number, e.g. "1.2.3"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_release_default"
              c:identifier="as_app_get_release_default"
              version="0.3.5">
        <doc xml:space="preserve">Gets the default (newest) release from the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a release, or %NULL</doc>
          <type name="Release" c:type="AsRelease*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_releases"
              c:identifier="as_app_get_releases"
              version="0.1.0">
        <doc xml:space="preserve">Gets all the releases the application has had.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Release"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_require_by_value"
              c:identifier="as_app_get_require_by_value"
              version="0.6.7">
        <doc xml:space="preserve">Gets a specific requirement for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsRequire, or %NULL for not found</doc>
          <type name="Require" c:type="AsRequire*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRequireKind, e.g. %AS_REQUIRE_KIND_FIRMWARE</doc>
            <type name="RequireKind" c:type="AsRequireKind"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">a string, or NULL, e.g. `bootloader`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_requires"
              c:identifier="as_app_get_requires"
              version="0.6.7">
        <doc xml:space="preserve">Gets any requires the application has defined. A rquirement could be that
a firmware version has to be below a defined version or that another
application is required to be installed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Require"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reviews"
              c:identifier="as_app_get_reviews"
              version="0.6.1">
        <doc xml:space="preserve">Gets any reviews the application has defined.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Screenshot"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_scope" c:identifier="as_app_get_scope" version="0.6.1">
        <doc xml:space="preserve">Gets the scope of the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">enumerated value</doc>
          <type name="AppScope" c:type="AsAppScope"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_screenshot_default"
              c:identifier="as_app_get_screenshot_default"
              version="0.7.3">
        <doc xml:space="preserve">Gets the default screenshot for the component.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a screenshot or %NULL</doc>
          <type name="Screenshot" c:type="AsScreenshot*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_screenshots"
              c:identifier="as_app_get_screenshots"
              version="0.1.0">
        <doc xml:space="preserve">Gets any screenshots the application has defined.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Screenshot"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_match"
              c:identifier="as_app_get_search_match"
              version="0.6.13">
        <doc xml:space="preserve">Gets the token match fields. The bitfield given here is used to choose what
is included in the token cache.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsAppSearchMatch, e.g. %AS_APP_SEARCH_MATCH_PKGNAME</doc>
          <type name="AppSearchMatch" c:type="AsAppSearchMatch"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source_file"
              c:identifier="as_app_get_source_file"
              version="0.2.2">
        <doc xml:space="preserve">Gets the default source filename the instance was populated from.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source_kind"
              c:identifier="as_app_get_source_kind"
              version="0.1.4">
        <doc xml:space="preserve">Gets the source kind, i.e. where the AsApp came from.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">enumerated value</doc>
          <type name="FormatKind" c:type="AsFormatKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source_pkgname"
              c:identifier="as_app_get_source_pkgname"
              version="0.2.4">
        <doc xml:space="preserve">Gets the source package name that produced the binary package.
Only source packages producing more than one binary package will have this
entry set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_state" c:identifier="as_app_get_state" version="0.2.2">
        <doc xml:space="preserve">Gets the application state.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">enumerated value</doc>
          <type name="AppState" c:type="AsAppState"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_suggests"
              c:identifier="as_app_get_suggests"
              version="0.6.1">
        <doc xml:space="preserve">Gets any suggests the application has defined.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Suggest"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_translations"
              c:identifier="as_app_get_translations"
              version="0.5.8">
        <doc xml:space="preserve">Gets any translations the application has defined.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Translation"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_trust_flags"
              c:identifier="as_app_get_trust_flags"
              version="0.2.2">
        <doc xml:space="preserve">Gets the trust flags, i.e. how trusted the incoming data is.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">bitfield</doc>
          <type name="AppTrustFlags" c:type="AsAppTrustFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_unique_id"
              c:identifier="as_app_get_unique_id"
              version="0.6.1">
        <doc xml:space="preserve">Gets the unique ID value to represent the component.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the unique ID, e.g. `system/package/fedora/desktop/gimp.desktop/master`</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_update_contact"
              c:identifier="as_app_get_update_contact"
              version="0.1.4">
        <doc xml:space="preserve">Gets the application upstream update contact email.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url_item"
              c:identifier="as_app_get_url_item"
              version="0.1.0">
        <doc xml:space="preserve">Gets a URL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="url_kind" transfer-ownership="none">
            <doc xml:space="preserve">the URL kind, e.g. %AS_URL_KIND_HOMEPAGE.</doc>
            <type name="UrlKind" c:type="AsUrlKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_urls" c:identifier="as_app_get_urls" version="0.1.0">
        <doc xml:space="preserve">Gets the URLs set for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">hash table of URLs</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vetos" c:identifier="as_app_get_vetos" version="0.2.5">
        <doc xml:space="preserve">Gets the list of vetos.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A list of vetos</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsApp</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_category"
              c:identifier="as_app_has_category"
              version="0.1.5">
        <doc xml:space="preserve">Searches the category list for a specific item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the application has got the specified category</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="category" transfer-ownership="none">
            <doc xml:space="preserve">a category string, e.g. "DesktopSettings"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_compulsory_for_desktop"
              c:identifier="as_app_has_compulsory_for_desktop"
              version="0.5.12">
        <doc xml:space="preserve">Searches the compulsory for desktop list for a specific item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the application is compulsory for a specific desktop</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="desktop" transfer-ownership="none">
            <doc xml:space="preserve">a desktop string, e.g. "GNOME"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_kudo" c:identifier="as_app_has_kudo" version="0.2.2">
        <doc xml:space="preserve">Searches the kudo list for a specific item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the application has got the specified kudo</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="kudo" transfer-ownership="none">
            <doc xml:space="preserve">a kudo string, e.g. "SearchProvider"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_kudo_kind"
              c:identifier="as_app_has_kudo_kind"
              version="0.2.2">
        <doc xml:space="preserve">Searches the kudo list for a specific item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the application has got the specified kudo</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="kudo" transfer-ownership="none">
            <doc xml:space="preserve">a #AsKudoKind, e.g. %AS_KUDO_KIND_SEARCH_PROVIDER</doc>
            <type name="KudoKind" c:type="AsKudoKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_permission"
              c:identifier="as_app_has_permission"
              version="0.3.5">
        <doc xml:space="preserve">Searches the permission list for a specific item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the application has got the specified permission</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="permission" transfer-ownership="none">
            <doc xml:space="preserve">a permission string, e.g. "Network"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_quirk"
              c:identifier="as_app_has_quirk"
              version="0.5.10">
        <doc xml:space="preserve">Queries to see if an application has a specific attribute.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the application has the attribute</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="quirk" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppQuirk, e.g. %AS_APP_QUIRK_PROVENANCE</doc>
            <type name="AppQuirk" c:type="AsAppQuirk"/>
          </parameter>
        </parameters>
      </method>
      <method name="parse_file"
              c:identifier="as_app_parse_file"
              version="0.1.2"
              throws="1">
        <doc xml:space="preserve">Parses a desktop or AppData file and populates the application state.

Applications that are not suitable for the store will have vetos added.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">file to load.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">#AsAppParseFlags, e.g. %AS_APP_PARSE_FLAG_USE_HEURISTICS</doc>
            <type name="AppParseFlags" c:type="AsAppParseFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_category"
              c:identifier="as_app_remove_category"
              version="0.6.13">
        <doc xml:space="preserve">Removed a menu category from the application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="category" transfer-ownership="none">
            <doc xml:space="preserve">the category.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_format"
              c:identifier="as_app_remove_format"
              version="0.6.9">
        <doc xml:space="preserve">Removes a format the application has been built from.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">the #AsFormat.</doc>
            <type name="Format" c:type="AsFormat*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_kudo"
              c:identifier="as_app_remove_kudo"
              version="0.6.13">
        <doc xml:space="preserve">Remove a kudo the application has obtained.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="kudo" transfer-ownership="none">
            <doc xml:space="preserve">the kudo.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_metadata"
              c:identifier="as_app_remove_metadata"
              version="0.1.0">
        <doc xml:space="preserve">Removes a metadata item from the application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the metadata key.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_veto"
              c:identifier="as_app_remove_veto"
              version="0.4.1">
        <doc xml:space="preserve">Removes a reason to not include the application in the metadata.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsApp</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve">veto string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_matches"
              c:identifier="as_app_search_matches"
              version="0.1.0">
        <doc xml:space="preserve">Searches application data for a specific keyword.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a match scrore, where 0 is no match and 100 is the best match.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve">the search term.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_matches_all"
              c:identifier="as_app_search_matches_all"
              version="0.1.3">
        <doc xml:space="preserve">Searches application data for all the specific keywords.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a match scrore, where 0 is no match and larger numbers are better
matches.

It's probably a good idea to use as_utils_search_tokenize() to populate
search as very short or common keywords will return a lot of matches.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve">the search terms.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_branch"
              c:identifier="as_app_set_branch"
              version="0.6.1">
        <doc xml:space="preserve">Set the branch that the instance was sourced from.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="branch" transfer-ownership="none">
            <doc xml:space="preserve">the branch, e.g. "master" or "3-16".</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_comment"
              c:identifier="as_app_set_comment"
              version="0.1.0">
        <doc xml:space="preserve">Sets the application summary for a specific locale.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="comment" transfer-ownership="none">
            <doc xml:space="preserve">the application summary.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="as_app_set_description"
              version="0.1.0">
        <doc xml:space="preserve">Sets the application descrption markup for a specific locale.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve">the application description.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_developer_name"
              c:identifier="as_app_set_developer_name"
              version="0.1.0">
        <doc xml:space="preserve">Sets the application developer name for a specific locale.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="developer_name" transfer-ownership="none">
            <doc xml:space="preserve">the application developer name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_path"
              c:identifier="as_app_set_icon_path"
              version="0.1.0">
        <doc xml:space="preserve">Sets the icon path, where local icons would be found.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="icon_path" transfer-ownership="none">
            <doc xml:space="preserve">the local path.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id" c:identifier="as_app_set_id" version="0.1.0">
        <doc xml:space="preserve">Sets a new application ID. Any invalid characters will be automatically replaced.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the new _full_ application ID, e.g. "org.gnome.Software.desktop".</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id_kind"
              c:identifier="as_app_set_id_kind"
              version="0.1.0">
        <doc xml:space="preserve">Sets the application kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="id_kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppKind.</doc>
            <type name="IdKind" c:type="AsIdKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind" c:identifier="as_app_set_kind" version="0.5.10">
        <doc xml:space="preserve">Sets the application kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppKind.</doc>
            <type name="AppKind" c:type="AsAppKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_merge_kind"
              c:identifier="as_app_set_merge_kind"
              version="0.6.1">
        <doc xml:space="preserve">Sets the merge kind of the application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="merge_kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppMergeKind.</doc>
            <type name="AppMergeKind" c:type="AsAppMergeKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_metadata_license"
              c:identifier="as_app_set_metadata_license"
              version="0.1.4">
        <doc xml:space="preserve">Set the project license.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="metadata_license" transfer-ownership="none">
            <doc xml:space="preserve">the project license string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="as_app_set_name" version="0.1.0">
        <doc xml:space="preserve">Sets the application name for a specific locale.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the application name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_origin"
              c:identifier="as_app_set_origin"
              version="0.3.2">
        <doc xml:space="preserve">Sets the application origin.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="origin" transfer-ownership="none">
            <doc xml:space="preserve">the origin, e.g. "fedora-21"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_priority"
              c:identifier="as_app_set_priority"
              version="0.1.0">
        <doc xml:space="preserve">Sets the application priority, where 0 is default and positive numbers
are better than negative numbers.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:space="preserve">the priority.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_project_group"
              c:identifier="as_app_set_project_group"
              version="0.1.0">
        <doc xml:space="preserve">Set any project affiliation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="project_group" transfer-ownership="none">
            <doc xml:space="preserve">the project group, e.g. "GNOME".</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_project_license"
              c:identifier="as_app_set_project_license"
              version="0.1.0">
        <doc xml:space="preserve">Set the project license.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="project_license" transfer-ownership="none">
            <doc xml:space="preserve">the project license string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scope" c:identifier="as_app_set_scope" version="0.6.1">
        <doc xml:space="preserve">Sets the scope of the application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="scope" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppScope.</doc>
            <type name="AppScope" c:type="AsAppScope"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_match"
              c:identifier="as_app_set_search_match"
              version="0.6.13">
        <doc xml:space="preserve">Sets the token match fields. The bitfield given here is used to choose what
is included in the token cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="search_match" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppSearchMatch, e.g. %AS_APP_SEARCH_MATCH_PKGNAME</doc>
            <type name="AppSearchMatch" c:type="AsAppSearchMatch"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_source_file"
              c:identifier="as_app_set_source_file"
              version="0.2.2">
        <doc xml:space="preserve">Set the file that the instance was sourced from.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="source_file" transfer-ownership="none">
            <doc xml:space="preserve">the filename.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_source_kind"
              c:identifier="as_app_set_source_kind"
              version="0.1.4">
        <doc xml:space="preserve">Sets the source kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="source_kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsFormatKind.</doc>
            <type name="FormatKind" c:type="AsFormatKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_source_pkgname"
              c:identifier="as_app_set_source_pkgname"
              version="0.2.4">
        <doc xml:space="preserve">Set the project license.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="source_pkgname" transfer-ownership="none">
            <doc xml:space="preserve">the project license string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_state" c:identifier="as_app_set_state" version="0.2.2">
        <doc xml:space="preserve">Sets the application state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppState.</doc>
            <type name="AppState" c:type="AsAppState"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_trust_flags"
              c:identifier="as_app_set_trust_flags"
              version="0.2.2">
        <doc xml:space="preserve">Sets the check flags, where %AS_APP_TRUST_FLAG_COMPLETE is completely
trusted input.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="trust_flags" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppTrustFlags.</doc>
            <type name="AppTrustFlags" c:type="AsAppTrustFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_update_contact"
              c:identifier="as_app_set_update_contact"
              version="0.1.4">
        <doc xml:space="preserve">Set the project license.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="update_contact" transfer-ownership="none">
            <doc xml:space="preserve">the project license string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="subsume" c:identifier="as_app_subsume" version="0.1.0">
        <doc xml:space="preserve">Copies information from the donor to the application object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="donor" transfer-ownership="none">
            <doc xml:space="preserve">the donor.</doc>
            <type name="App" c:type="AsApp*"/>
          </parameter>
        </parameters>
      </method>
      <method name="subsume_full"
              c:identifier="as_app_subsume_full"
              version="0.1.4">
        <doc xml:space="preserve">Copies information from the donor to the application object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="donor" transfer-ownership="none">
            <doc xml:space="preserve">the donor.</doc>
            <type name="App" c:type="AsApp*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">any optional flags, e.g. %AS_APP_SUBSUME_FLAG_NO_OVERWRITE</doc>
            <type name="AppSubsumeFlags" c:type="AsAppSubsumeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_file"
              c:identifier="as_app_to_file"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve">Exports a DOM tree to an XML file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </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="validate"
              c:identifier="as_app_validate"
              version="0.1.4"
              throws="1">
        <doc xml:space="preserve">Validates data in the instance for style and consitency.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">A list of problems, or %NULL</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Problem"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppValidateFlags to use, e.g. %AS_APP_VALIDATE_FLAG_NONE</doc>
            <type name="AppValidateFlags" c:type="AsAppValidateFlags"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="AppClass" c:type="AsAppClass" glib:is-gtype-struct-for="App">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="AppError" c:type="AsAppError">
      <doc xml:space="preserve">The error type.</doc>
      <member name="failed" value="0" c:identifier="AS_APP_ERROR_FAILED">
        <doc xml:space="preserve">Generic failure</doc>
      </member>
      <member name="invalid_type"
              value="1"
              c:identifier="AS_APP_ERROR_INVALID_TYPE">
        <doc xml:space="preserve">Invalid type</doc>
      </member>
    </enumeration>
    <enumeration name="AppKind" c:type="AsAppKind">
      <doc xml:space="preserve">The component type.</doc>
      <member name="unknown" value="0" c:identifier="AS_APP_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="desktop" value="1" c:identifier="AS_APP_KIND_DESKTOP">
        <doc xml:space="preserve">A desktop application</doc>
      </member>
      <member name="font" value="2" c:identifier="AS_APP_KIND_FONT">
        <doc xml:space="preserve">A font add-on</doc>
      </member>
      <member name="codec" value="3" c:identifier="AS_APP_KIND_CODEC">
        <doc xml:space="preserve">A codec add-on</doc>
      </member>
      <member name="input_method"
              value="4"
              c:identifier="AS_APP_KIND_INPUT_METHOD">
        <doc xml:space="preserve">A input method add-on</doc>
      </member>
      <member name="web_app" value="5" c:identifier="AS_APP_KIND_WEB_APP">
        <doc xml:space="preserve">A web appication</doc>
      </member>
      <member name="source" value="6" c:identifier="AS_APP_KIND_SOURCE">
        <doc xml:space="preserve">A software source</doc>
      </member>
      <member name="addon" value="7" c:identifier="AS_APP_KIND_ADDON">
        <doc xml:space="preserve">An addon, e.g. a plugin</doc>
      </member>
      <member name="firmware" value="8" c:identifier="AS_APP_KIND_FIRMWARE">
        <doc xml:space="preserve">A firmware update</doc>
      </member>
      <member name="runtime" value="9" c:identifier="AS_APP_KIND_RUNTIME">
        <doc xml:space="preserve">Runtime platform</doc>
      </member>
      <member name="generic" value="10" c:identifier="AS_APP_KIND_GENERIC">
        <doc xml:space="preserve">Generic component</doc>
      </member>
      <member name="os_update" value="11" c:identifier="AS_APP_KIND_OS_UPDATE">
        <doc xml:space="preserve">Operating system update</doc>
      </member>
      <member name="os_upgrade"
              value="12"
              c:identifier="AS_APP_KIND_OS_UPGRADE">
        <doc xml:space="preserve">Operating system upgrade</doc>
      </member>
      <member name="shell_extension"
              value="13"
              c:identifier="AS_APP_KIND_SHELL_EXTENSION">
        <doc xml:space="preserve">GNOME Shell extension</doc>
      </member>
      <member name="localization"
              value="14"
              c:identifier="AS_APP_KIND_LOCALIZATION">
        <doc xml:space="preserve">Localization data</doc>
      </member>
      <member name="console" value="15" c:identifier="AS_APP_KIND_CONSOLE">
        <doc xml:space="preserve">Console program</doc>
      </member>
      <member name="driver" value="16" c:identifier="AS_APP_KIND_DRIVER">
        <doc xml:space="preserve">Driver for hardware support</doc>
      </member>
    </enumeration>
    <enumeration name="AppMergeKind" c:type="AsAppMergeKind">
      <doc xml:space="preserve">The component merge kind.</doc>
      <member name="unknown"
              value="0"
              c:identifier="AS_APP_MERGE_KIND_UNKNOWN">
        <doc xml:space="preserve">Unknown merge type</doc>
      </member>
      <member name="none" value="1" c:identifier="AS_APP_MERGE_KIND_NONE">
        <doc xml:space="preserve">No merge to be done</doc>
      </member>
      <member name="replace"
              value="2"
              c:identifier="AS_APP_MERGE_KIND_REPLACE">
        <doc xml:space="preserve">Merge components, replacing</doc>
      </member>
      <member name="append" value="3" c:identifier="AS_APP_MERGE_KIND_APPEND">
        <doc xml:space="preserve">Merge components, appending</doc>
      </member>
    </enumeration>
    <bitfield name="AppParseFlags" c:type="AsAppParseFlags">
      <doc xml:space="preserve">The flags to use when parsing resources.</doc>
      <member name="none" value="0" c:identifier="AS_APP_PARSE_FLAG_NONE">
        <doc xml:space="preserve">No special actions to use</doc>
      </member>
      <member name="use_heuristics"
              value="1"
              c:identifier="AS_APP_PARSE_FLAG_USE_HEURISTICS">
        <doc xml:space="preserve">Use heuristic to infer properties</doc>
      </member>
      <member name="keep_comments"
              value="2"
              c:identifier="AS_APP_PARSE_FLAG_KEEP_COMMENTS">
        <doc xml:space="preserve">Save comments from the file</doc>
      </member>
      <member name="convert_translatable"
              value="4"
              c:identifier="AS_APP_PARSE_FLAG_CONVERT_TRANSLATABLE">
        <doc xml:space="preserve">Allow translatable flags like &lt;_p&gt;</doc>
      </member>
      <member name="append_data"
              value="8"
              c:identifier="AS_APP_PARSE_FLAG_APPEND_DATA">
        <doc xml:space="preserve">Append new data rather than replacing</doc>
      </member>
      <member name="allow_veto"
              value="16"
              c:identifier="AS_APP_PARSE_FLAG_ALLOW_VETO">
        <doc xml:space="preserve">Do not return errors for vetoed apps</doc>
      </member>
      <member name="use_fallbacks"
              value="32"
              c:identifier="AS_APP_PARSE_FLAG_USE_FALLBACKS">
        <doc xml:space="preserve">Fall back to suboptimal data where required</doc>
      </member>
      <member name="add_all_metadata"
              value="64"
              c:identifier="AS_APP_PARSE_FLAG_ADD_ALL_METADATA">
        <doc xml:space="preserve">Add all extra metadata from the source file</doc>
      </member>
      <member name="only_native_langs"
              value="128"
              c:identifier="AS_APP_PARSE_FLAG_ONLY_NATIVE_LANGS">
        <doc xml:space="preserve">Only load native languages</doc>
      </member>
    </bitfield>
    <bitfield name="AppQuirk" c:type="AsAppQuirk">
      <doc xml:space="preserve">The component attributes.</doc>
      <member name="none" value="0" c:identifier="AS_APP_QUIRK_NONE">
        <doc xml:space="preserve">No special attributes</doc>
      </member>
      <member name="provenance"
              value="1"
              c:identifier="AS_APP_QUIRK_PROVENANCE">
        <doc xml:space="preserve">Installed by OS vendor</doc>
      </member>
      <member name="compulsory"
              value="2"
              c:identifier="AS_APP_QUIRK_COMPULSORY">
        <doc xml:space="preserve">Cannot be removed</doc>
      </member>
      <member name="has_source"
              value="4"
              c:identifier="AS_APP_QUIRK_HAS_SOURCE">
        <doc xml:space="preserve">Has a source to allow staying up-to-date</doc>
      </member>
      <member name="match_any_prefix"
              value="8"
              c:identifier="AS_APP_QUIRK_MATCH_ANY_PREFIX">
        <doc xml:space="preserve">Matches applications with any prefix</doc>
      </member>
      <member name="needs_reboot"
              value="16"
              c:identifier="AS_APP_QUIRK_NEEDS_REBOOT">
        <doc xml:space="preserve">A reboot is required after the action</doc>
      </member>
      <member name="not_reviewable"
              value="32"
              c:identifier="AS_APP_QUIRK_NOT_REVIEWABLE">
        <doc xml:space="preserve">The app is not reviewable</doc>
      </member>
      <member name="has_shortcut"
              value="64"
              c:identifier="AS_APP_QUIRK_HAS_SHORTCUT">
        <doc xml:space="preserve">The app has a shortcut in the system</doc>
      </member>
      <member name="not_launchable"
              value="128"
              c:identifier="AS_APP_QUIRK_NOT_LAUNCHABLE">
        <doc xml:space="preserve">The app is not launchable (run-able)</doc>
      </member>
      <member name="needs_user_action"
              value="256"
              c:identifier="AS_APP_QUIRK_NEEDS_USER_ACTION">
        <doc xml:space="preserve">The component requires some kind of user action</doc>
      </member>
      <member name="is_proxy" value="512" c:identifier="AS_APP_QUIRK_IS_PROXY">
        <doc xml:space="preserve">Is a proxy app that operates on other applications</doc>
      </member>
      <member name="removable_hardware"
              value="1024"
              c:identifier="AS_APP_QUIRK_REMOVABLE_HARDWARE">
        <doc xml:space="preserve">The device is unusable whilst the action is performed</doc>
      </member>
    </bitfield>
    <enumeration name="AppScope" c:type="AsAppScope">
      <doc xml:space="preserve">The application scope.</doc>
      <member name="unknown" value="0" c:identifier="AS_APP_SCOPE_UNKNOWN">
        <doc xml:space="preserve">Unknown scope</doc>
      </member>
      <member name="user" value="1" c:identifier="AS_APP_SCOPE_USER">
        <doc xml:space="preserve">User scope</doc>
      </member>
      <member name="system" value="2" c:identifier="AS_APP_SCOPE_SYSTEM">
        <doc xml:space="preserve">System scope</doc>
      </member>
    </enumeration>
    <bitfield name="AppSearchMatch" c:type="AsAppSearchMatch">
      <doc xml:space="preserve">The token match kind, which we want to be exactly 16 bits for storage
reasons.</doc>
      <member name="none" value="0" c:identifier="AS_APP_SEARCH_MATCH_NONE">
        <doc xml:space="preserve">No token matching</doc>
      </member>
      <member name="mimetype"
              value="1"
              c:identifier="AS_APP_SEARCH_MATCH_MIMETYPE">
        <doc xml:space="preserve">Use the app mimetypes</doc>
      </member>
      <member name="pkgname"
              value="2"
              c:identifier="AS_APP_SEARCH_MATCH_PKGNAME">
        <doc xml:space="preserve">Use the app package name</doc>
      </member>
      <member name="description"
              value="4"
              c:identifier="AS_APP_SEARCH_MATCH_DESCRIPTION">
        <doc xml:space="preserve">Use the app description</doc>
      </member>
      <member name="comment"
              value="8"
              c:identifier="AS_APP_SEARCH_MATCH_COMMENT">
        <doc xml:space="preserve">Use the app comment</doc>
      </member>
      <member name="name" value="16" c:identifier="AS_APP_SEARCH_MATCH_NAME">
        <doc xml:space="preserve">Use the app name</doc>
      </member>
      <member name="keyword"
              value="32"
              c:identifier="AS_APP_SEARCH_MATCH_KEYWORD">
        <doc xml:space="preserve">Use the app keyword</doc>
      </member>
      <member name="id" value="64" c:identifier="AS_APP_SEARCH_MATCH_ID">
        <doc xml:space="preserve">Use the app application ID</doc>
      </member>
      <member name="origin"
              value="128"
              c:identifier="AS_APP_SEARCH_MATCH_ORIGIN">
        <doc xml:space="preserve">Use the app origin</doc>
      </member>
    </bitfield>
    <enumeration name="AppState" c:type="AsAppState">
      <doc xml:space="preserve">The application state.</doc>
      <member name="unknown" value="0" c:identifier="AS_APP_STATE_UNKNOWN">
        <doc xml:space="preserve">Unknown state</doc>
      </member>
      <member name="installed" value="1" c:identifier="AS_APP_STATE_INSTALLED">
        <doc xml:space="preserve">Application is installed</doc>
      </member>
      <member name="available" value="2" c:identifier="AS_APP_STATE_AVAILABLE">
        <doc xml:space="preserve">Application is available</doc>
      </member>
      <member name="available_local"
              value="3"
              c:identifier="AS_APP_STATE_AVAILABLE_LOCAL">
        <doc xml:space="preserve">Application is locally available as a file</doc>
      </member>
      <member name="updatable" value="4" c:identifier="AS_APP_STATE_UPDATABLE">
        <doc xml:space="preserve">Application is installed and updatable</doc>
      </member>
      <member name="unavailable"
              value="5"
              c:identifier="AS_APP_STATE_UNAVAILABLE">
        <doc xml:space="preserve">Application is referenced, but not available</doc>
      </member>
      <member name="queued_for_install"
              value="6"
              c:identifier="AS_APP_STATE_QUEUED_FOR_INSTALL">
        <doc xml:space="preserve">Application is queued for install</doc>
      </member>
      <member name="installing"
              value="7"
              c:identifier="AS_APP_STATE_INSTALLING">
        <doc xml:space="preserve">Application is being installed</doc>
      </member>
      <member name="removing" value="8" c:identifier="AS_APP_STATE_REMOVING">
        <doc xml:space="preserve">Application is being removed</doc>
      </member>
      <member name="updatable_live"
              value="9"
              c:identifier="AS_APP_STATE_UPDATABLE_LIVE">
        <doc xml:space="preserve">Application is installed and updatable live</doc>
      </member>
      <member name="purchasable"
              value="10"
              c:identifier="AS_APP_STATE_PURCHASABLE">
        <doc xml:space="preserve">Application is available for purchasing</doc>
      </member>
      <member name="purchasing"
              value="11"
              c:identifier="AS_APP_STATE_PURCHASING">
        <doc xml:space="preserve">Application is being purchased</doc>
      </member>
    </enumeration>
    <bitfield name="AppSubsumeFlags" c:type="AsAppSubsumeFlags">
      <doc xml:space="preserve">The flags to use when subsuming applications.</doc>
      <member name="none" value="0" c:identifier="AS_APP_SUBSUME_FLAG_NONE">
        <doc xml:space="preserve">No special actions to use</doc>
      </member>
      <member name="no_overwrite"
              value="1"
              c:identifier="AS_APP_SUBSUME_FLAG_NO_OVERWRITE">
        <doc xml:space="preserve">Do not overwrite already set properties</doc>
      </member>
      <member name="both_ways"
              value="2"
              c:identifier="AS_APP_SUBSUME_FLAG_BOTH_WAYS">
        <doc xml:space="preserve">Copy unset properties both ways</doc>
      </member>
      <member name="replace"
              value="4"
              c:identifier="AS_APP_SUBSUME_FLAG_REPLACE">
      </member>
      <member name="kind" value="8" c:identifier="AS_APP_SUBSUME_FLAG_KIND">
        <doc xml:space="preserve">Copy the kind</doc>
      </member>
      <member name="state" value="16" c:identifier="AS_APP_SUBSUME_FLAG_STATE">
        <doc xml:space="preserve">Copy the state</doc>
      </member>
      <member name="bundles"
              value="32"
              c:identifier="AS_APP_SUBSUME_FLAG_BUNDLES">
        <doc xml:space="preserve">Copy the bundles</doc>
      </member>
      <member name="translations"
              value="64"
              c:identifier="AS_APP_SUBSUME_FLAG_TRANSLATIONS">
        <doc xml:space="preserve">Copy the translations</doc>
      </member>
      <member name="releases"
              value="128"
              c:identifier="AS_APP_SUBSUME_FLAG_RELEASES">
        <doc xml:space="preserve">Copy the releases</doc>
      </member>
      <member name="kudos"
              value="256"
              c:identifier="AS_APP_SUBSUME_FLAG_KUDOS">
        <doc xml:space="preserve">Copy the kudos</doc>
      </member>
      <member name="categories"
              value="512"
              c:identifier="AS_APP_SUBSUME_FLAG_CATEGORIES">
        <doc xml:space="preserve">Copy the categories</doc>
      </member>
      <member name="permissions"
              value="1024"
              c:identifier="AS_APP_SUBSUME_FLAG_PERMISSIONS">
        <doc xml:space="preserve">Copy the permissions</doc>
      </member>
      <member name="extends"
              value="2048"
              c:identifier="AS_APP_SUBSUME_FLAG_EXTENDS">
        <doc xml:space="preserve">Copy the extends</doc>
      </member>
      <member name="compulsory"
              value="4096"
              c:identifier="AS_APP_SUBSUME_FLAG_COMPULSORY">
        <doc xml:space="preserve">Copy the compulsory-for-desktop</doc>
      </member>
      <member name="screenshots"
              value="8192"
              c:identifier="AS_APP_SUBSUME_FLAG_SCREENSHOTS">
        <doc xml:space="preserve">Copy the screenshots</doc>
      </member>
      <member name="reviews"
              value="16384"
              c:identifier="AS_APP_SUBSUME_FLAG_REVIEWS">
        <doc xml:space="preserve">Copy the reviews</doc>
      </member>
      <member name="content_ratings"
              value="32768"
              c:identifier="AS_APP_SUBSUME_FLAG_CONTENT_RATINGS">
        <doc xml:space="preserve">Copy the content ratings</doc>
      </member>
      <member name="provides"
              value="65536"
              c:identifier="AS_APP_SUBSUME_FLAG_PROVIDES">
        <doc xml:space="preserve">Copy the provides</doc>
      </member>
      <member name="icons"
              value="131072"
              c:identifier="AS_APP_SUBSUME_FLAG_ICONS">
        <doc xml:space="preserve">Copy the icons</doc>
      </member>
      <member name="mimetypes"
              value="262144"
              c:identifier="AS_APP_SUBSUME_FLAG_MIMETYPES">
        <doc xml:space="preserve">Copy the mimetypes</doc>
      </member>
      <member name="vetos"
              value="524288"
              c:identifier="AS_APP_SUBSUME_FLAG_VETOS">
        <doc xml:space="preserve">Copy the vetos</doc>
      </member>
      <member name="languages"
              value="1048576"
              c:identifier="AS_APP_SUBSUME_FLAG_LANGUAGES">
        <doc xml:space="preserve">Copy the languages</doc>
      </member>
      <member name="name"
              value="2097152"
              c:identifier="AS_APP_SUBSUME_FLAG_NAME">
        <doc xml:space="preserve">Copy the name</doc>
      </member>
      <member name="comment"
              value="4194304"
              c:identifier="AS_APP_SUBSUME_FLAG_COMMENT">
        <doc xml:space="preserve">Copy the comment</doc>
      </member>
      <member name="developer_name"
              value="8388608"
              c:identifier="AS_APP_SUBSUME_FLAG_DEVELOPER_NAME">
        <doc xml:space="preserve">Copy the developer name</doc>
      </member>
      <member name="description"
              value="16777216"
              c:identifier="AS_APP_SUBSUME_FLAG_DESCRIPTION">
        <doc xml:space="preserve">Copy the description</doc>
      </member>
      <member name="metadata"
              value="33554432"
              c:identifier="AS_APP_SUBSUME_FLAG_METADATA">
        <doc xml:space="preserve">Copy the metadata</doc>
      </member>
      <member name="url"
              value="67108864"
              c:identifier="AS_APP_SUBSUME_FLAG_URL">
        <doc xml:space="preserve">Copy the urls</doc>
      </member>
      <member name="keywords"
              value="134217728"
              c:identifier="AS_APP_SUBSUME_FLAG_KEYWORDS">
        <doc xml:space="preserve">Copy the keywords</doc>
      </member>
      <member name="formats"
              value="268435456"
              c:identifier="AS_APP_SUBSUME_FLAG_FORMATS">
        <doc xml:space="preserve">Copy the source file</doc>
      </member>
      <member name="branch"
              value="536870912"
              c:identifier="AS_APP_SUBSUME_FLAG_BRANCH">
        <doc xml:space="preserve">Copy the branch</doc>
      </member>
      <member name="origin"
              value="1073741824"
              c:identifier="AS_APP_SUBSUME_FLAG_ORIGIN">
        <doc xml:space="preserve">Copy the origin</doc>
      </member>
      <member name="metadata_license"
              value="2147483648"
              c:identifier="AS_APP_SUBSUME_FLAG_METADATA_LICENSE">
        <doc xml:space="preserve">Copy the metadata license</doc>
      </member>
      <member name="project_license"
              value="4294967296"
              c:identifier="AS_APP_SUBSUME_FLAG_PROJECT_LICENSE">
        <doc xml:space="preserve">Copy the project license</doc>
      </member>
      <member name="project_group"
              value="8589934592"
              c:identifier="AS_APP_SUBSUME_FLAG_PROJECT_GROUP">
        <doc xml:space="preserve">Copy the project group</doc>
      </member>
      <member name="source_kind"
              value="17179869184"
              c:identifier="AS_APP_SUBSUME_FLAG_SOURCE_KIND">
        <doc xml:space="preserve">Copy the source kind</doc>
      </member>
      <member name="suggests"
              value="34359738368"
              c:identifier="AS_APP_SUBSUME_FLAG_SUGGESTS">
      </member>
      <member name="launchables"
              value="68719476736"
              c:identifier="AS_APP_SUBSUME_FLAG_LAUNCHABLES">
        <doc xml:space="preserve">Copy the launchables</doc>
      </member>
    </bitfield>
    <enumeration name="AppTrustFlags" c:type="AsAppTrustFlags">
      <doc xml:space="preserve">The flags to use when checking input.</doc>
      <member name="complete"
              value="0"
              c:identifier="AS_APP_TRUST_FLAG_COMPLETE">
        <doc xml:space="preserve">Trusted data with no validation</doc>
      </member>
      <member name="check_duplicates"
              value="1"
              c:identifier="AS_APP_TRUST_FLAG_CHECK_DUPLICATES">
        <doc xml:space="preserve">Check for duplicates</doc>
      </member>
      <member name="check_valid_utf8"
              value="2"
              c:identifier="AS_APP_TRUST_FLAG_CHECK_VALID_UTF8">
        <doc xml:space="preserve">Check for valid UTF-8</doc>
      </member>
    </enumeration>
    <enumeration name="AppValidateFlags" c:type="AsAppValidateFlags">
      <doc xml:space="preserve">The flags to use when validating.</doc>
      <member name="none" value="0" c:identifier="AS_APP_VALIDATE_FLAG_NONE">
        <doc xml:space="preserve">No extra flags to use</doc>
      </member>
      <member name="relax" value="1" c:identifier="AS_APP_VALIDATE_FLAG_RELAX">
        <doc xml:space="preserve">Relax the checks</doc>
      </member>
      <member name="strict"
              value="2"
              c:identifier="AS_APP_VALIDATE_FLAG_STRICT">
        <doc xml:space="preserve">Make the checks more strict</doc>
      </member>
      <member name="no_network"
              value="4"
              c:identifier="AS_APP_VALIDATE_FLAG_NO_NETWORK">
        <doc xml:space="preserve">Do not use the network</doc>
      </member>
      <member name="all_apps"
              value="8"
              c:identifier="AS_APP_VALIDATE_FLAG_ALL_APPS">
        <doc xml:space="preserve">Check all applications in a store</doc>
      </member>
    </enumeration>
    <class name="Bundle"
           c:symbol-prefix="bundle"
           c:type="AsBundle"
           parent="GObject.Object"
           glib:type-name="AsBundle"
           glib:get-type="as_bundle_get_type"
           glib:type-struct="BundleClass">
      <constructor name="new" c:identifier="as_bundle_new" version="0.3.5">
        <doc xml:space="preserve">Creates a new #AsBundle.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsBundle</doc>
          <type name="Bundle" c:type="AsBundle*"/>
        </return-value>
      </constructor>
      <function name="kind_from_string"
                c:identifier="as_bundle_kind_from_string"
                version="0.3.5">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsBundleKind, or %AS_BUNDLE_KIND_UNKNOWN for unknown.</doc>
          <type name="BundleKind" c:type="AsBundleKind"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="as_bundle_kind_to_string"
                version="0.3.5">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @kind</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsBundleKind.</doc>
            <type name="BundleKind" c:type="AsBundleKind"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_id" c:identifier="as_bundle_get_id" version="0.3.5">
        <doc xml:space="preserve">Gets the ID for this bundle.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">ID, e.g. "foobar-1.0.2"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="bundle" transfer-ownership="none">
            <doc xml:space="preserve">a #AsBundle instance.</doc>
            <type name="Bundle" c:type="AsBundle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind"
              c:identifier="as_bundle_get_kind"
              version="0.3.5">
        <doc xml:space="preserve">Gets the bundle kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsBundleKind</doc>
          <type name="BundleKind" c:type="AsBundleKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="bundle" transfer-ownership="none">
            <doc xml:space="preserve">a #AsBundle instance.</doc>
            <type name="Bundle" c:type="AsBundle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_runtime"
              c:identifier="as_bundle_get_runtime"
              version="0.5.10">
        <doc xml:space="preserve">Gets the runtime required for this bundle.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Runtime identifier, e.g. "org.gnome.Platform/i386/master"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="bundle" transfer-ownership="none">
            <doc xml:space="preserve">a #AsBundle instance.</doc>
            <type name="Bundle" c:type="AsBundle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sdk" c:identifier="as_bundle_get_sdk" version="0.5.10">
        <doc xml:space="preserve">Gets the SDK for this bundle.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">SDK identifier, e.g. "org.gnome.Sdk/i386/master"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="bundle" transfer-ownership="none">
            <doc xml:space="preserve">a #AsBundle instance.</doc>
            <type name="Bundle" c:type="AsBundle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_id" c:identifier="as_bundle_set_id" version="0.3.5">
        <doc xml:space="preserve">Sets the ID for this bundle.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bundle" transfer-ownership="none">
            <doc xml:space="preserve">a #AsBundle instance.</doc>
            <type name="Bundle" c:type="AsBundle*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind"
              c:identifier="as_bundle_set_kind"
              version="0.3.5">
        <doc xml:space="preserve">Sets the bundle kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bundle" transfer-ownership="none">
            <doc xml:space="preserve">a #AsBundle instance.</doc>
            <type name="Bundle" c:type="AsBundle*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsBundleKind, e.g. %AS_BUNDLE_KIND_FLATPAK.</doc>
            <type name="BundleKind" c:type="AsBundleKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_runtime"
              c:identifier="as_bundle_set_runtime"
              version="0.5.10">
        <doc xml:space="preserve">Sets the runtime required for this bundle.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bundle" transfer-ownership="none">
            <doc xml:space="preserve">a #AsBundle instance.</doc>
            <type name="Bundle" c:type="AsBundle*"/>
          </instance-parameter>
          <parameter name="runtime" transfer-ownership="none">
            <doc xml:space="preserve">the URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sdk" c:identifier="as_bundle_set_sdk" version="0.5.10">
        <doc xml:space="preserve">Sets the SDK for this bundle.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bundle" transfer-ownership="none">
            <doc xml:space="preserve">a #AsBundle instance.</doc>
            <type name="Bundle" c:type="AsBundle*"/>
          </instance-parameter>
          <parameter name="sdk" transfer-ownership="none">
            <doc xml:space="preserve">the URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="BundleClass"
            c:type="AsBundleClass"
            glib:is-gtype-struct-for="Bundle">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="BundleKind" c:type="AsBundleKind">
      <doc xml:space="preserve">The bundle type.</doc>
      <member name="unknown" value="0" c:identifier="AS_BUNDLE_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="limba" value="1" c:identifier="AS_BUNDLE_KIND_LIMBA">
        <doc xml:space="preserve">Limba application bundle</doc>
      </member>
      <member name="flatpak" value="2" c:identifier="AS_BUNDLE_KIND_FLATPAK">
        <doc xml:space="preserve">Flatpak application deployment</doc>
      </member>
      <member name="snap" value="3" c:identifier="AS_BUNDLE_KIND_SNAP">
        <doc xml:space="preserve">Snap application deployment</doc>
      </member>
      <member name="package" value="4" c:identifier="AS_BUNDLE_KIND_PACKAGE">
        <doc xml:space="preserve">Package-based application deployment</doc>
      </member>
      <member name="cabinet" value="5" c:identifier="AS_BUNDLE_KIND_CABINET">
        <doc xml:space="preserve">Cabinet firmware deployment</doc>
      </member>
      <member name="appimage" value="6" c:identifier="AS_BUNDLE_KIND_APPIMAGE">
        <doc xml:space="preserve">AppImage application bundle</doc>
      </member>
    </enumeration>
    <class name="Checksum"
           c:symbol-prefix="checksum"
           c:type="AsChecksum"
           parent="GObject.Object"
           glib:type-name="AsChecksum"
           glib:get-type="as_checksum_get_type"
           glib:type-struct="ChecksumClass">
      <constructor name="new" c:identifier="as_checksum_new" version="0.4.2">
        <doc xml:space="preserve">Creates a new #AsChecksum.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsChecksum</doc>
          <type name="Checksum" c:type="AsChecksum*"/>
        </return-value>
      </constructor>
      <function name="target_from_string"
                c:identifier="as_checksum_target_from_string"
                version="0.4.2">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsChecksumTarget, e.g. %AS_CHECKSUM_TARGET_CONTAINER.</doc>
          <type name="ChecksumTarget" c:type="AsChecksumTarget"/>
        </return-value>
        <parameters>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">a source kind string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="target_to_string"
                c:identifier="as_checksum_target_to_string"
                version="0.4.2">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @target, or %NULL for unknown</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">the #AsChecksumTarget.</doc>
            <type name="ChecksumTarget" c:type="AsChecksumTarget"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_filename"
              c:identifier="as_checksum_get_filename"
              version="0.4.2">
        <doc xml:space="preserve">Gets the full qualified URL for the checksum, usually pointing at some mirror.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">URL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve">a #AsChecksum instance.</doc>
            <type name="Checksum" c:type="AsChecksum*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind"
              c:identifier="as_checksum_get_kind"
              version="0.4.2">
        <doc xml:space="preserve">Gets the checksum kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GChecksumType</doc>
          <type name="GLib.ChecksumType" c:type="GChecksumType"/>
        </return-value>
        <parameters>
          <instance-parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve">a #AsChecksum instance.</doc>
            <type name="Checksum" c:type="AsChecksum*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_target"
              c:identifier="as_checksum_get_target"
              version="0.4.2">
        <doc xml:space="preserve">Gets the checksum target.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GChecksumType</doc>
          <type name="ChecksumTarget" c:type="AsChecksumTarget"/>
        </return-value>
        <parameters>
          <instance-parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve">a #AsChecksum instance.</doc>
            <type name="Checksum" c:type="AsChecksum*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value"
              c:identifier="as_checksum_get_value"
              version="0.4.2">
        <doc xml:space="preserve">Gets the suggested value the checksum, including file extension.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">filename</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve">a #AsChecksum instance.</doc>
            <type name="Checksum" c:type="AsChecksum*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_filename"
              c:identifier="as_checksum_set_filename"
              version="0.4.2">
        <doc xml:space="preserve">Sets the filename used to generate the checksum.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve">a #AsChecksum instance.</doc>
            <type name="Checksum" c:type="AsChecksum*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">the URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind"
              c:identifier="as_checksum_set_kind"
              version="0.4.2">
        <doc xml:space="preserve">Sets the checksum kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve">a #AsChecksum instance.</doc>
            <type name="Checksum" c:type="AsChecksum*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #GChecksumType, e.g. %G_CHECKSUM_SHA1.</doc>
            <type name="GLib.ChecksumType" c:type="GChecksumType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_target"
              c:identifier="as_checksum_set_target"
              version="0.4.2">
        <doc xml:space="preserve">Sets the checksum target.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve">a #AsChecksum instance.</doc>
            <type name="Checksum" c:type="AsChecksum*"/>
          </instance-parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">the #GChecksumType, e.g. %AS_CHECKSUM_TARGET_CONTAINER.</doc>
            <type name="ChecksumTarget" c:type="AsChecksumTarget"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value"
              c:identifier="as_checksum_set_value"
              version="0.4.2">
        <doc xml:space="preserve">Sets the checksum value filename.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve">a #AsChecksum instance.</doc>
            <type name="Checksum" c:type="AsChecksum*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the new filename value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ChecksumClass"
            c:type="AsChecksumClass"
            glib:is-gtype-struct-for="Checksum">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ChecksumTarget" c:type="AsChecksumTarget">
      <doc xml:space="preserve">The checksum target type.</doc>
      <member name="unknown"
              value="0"
              c:identifier="AS_CHECKSUM_TARGET_UNKNOWN">
        <doc xml:space="preserve">Unknown state</doc>
      </member>
      <member name="container"
              value="1"
              c:identifier="AS_CHECKSUM_TARGET_CONTAINER">
        <doc xml:space="preserve">Container file, e.g. ".cab"</doc>
      </member>
      <member name="content"
              value="2"
              c:identifier="AS_CHECKSUM_TARGET_CONTENT">
        <doc xml:space="preserve">Extracted file, e.g. ".bin"</doc>
      </member>
    </enumeration>
    <class name="ContentRating"
           c:symbol-prefix="content_rating"
           c:type="AsContentRating"
           parent="GObject.Object"
           glib:type-name="AsContentRating"
           glib:get-type="as_content_rating_get_type"
           glib:type-struct="ContentRatingClass">
      <constructor name="new"
                   c:identifier="as_content_rating_new"
                   version="0.5.12">
        <doc xml:space="preserve">Creates a new #AsContentRating.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsContentRating</doc>
          <type name="ContentRating" c:type="AsContentRating*"/>
        </return-value>
      </constructor>
      <function name="value_from_string"
                c:identifier="as_content_rating_value_from_string"
                version="0.5.12">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsContentRatingValue or %AS_CONTENT_RATING_VALUE_UNKNOWN for unknown</doc>
          <type name="ContentRatingValue" c:type="AsContentRatingValue"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="value_to_string"
                c:identifier="as_content_rating_value_to_string"
                version="0.5.12">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @value</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the #AsContentRatingValue.</doc>
            <type name="ContentRatingValue" c:type="AsContentRatingValue"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_kind"
              c:identifier="as_content_rating_get_kind"
              version="0.5.12">
        <doc xml:space="preserve">Gets the content_rating kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, e.g. "oars-1.0", or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_rating" transfer-ownership="none">
            <doc xml:space="preserve">a #AsContentRating instance.</doc>
            <type name="ContentRating" c:type="AsContentRating*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_minimum_age"
              c:identifier="as_content_rating_get_minimum_age"
              version="0.5.12">
        <doc xml:space="preserve">Gets the lowest Common Sense Media approved age for the content_rating block.
NOTE: these numbers are based on the data and descriptions available from
https://www.commonsensemedia.org/about-us/our-mission/about-our-ratings and
you may disagree with them.

You're free to disagree with these, and of course you should use your own
brain to work our if your child is able to cope with the concepts enumerated
here. Some 13 year olds mey be fine with the concept of mutilation of body
parts, others may get nightmares.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The age in years, 0 for no rating, or G_MAXUINT for no details.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_rating" transfer-ownership="none">
            <doc xml:space="preserve">a #AsContentRating</doc>
            <type name="ContentRating" c:type="AsContentRating*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value"
              c:identifier="as_content_rating_get_value"
              version="0.6.4">
        <doc xml:space="preserve">Gets the set value of a content rating key.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsContentRatingValue, or %AS_CONTENT_RATING_VALUE_UNKNOWN</doc>
          <type name="ContentRatingValue" c:type="AsContentRatingValue"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_rating" transfer-ownership="none">
            <doc xml:space="preserve">a #AsContentRating</doc>
            <type name="ContentRating" c:type="AsContentRating*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">A ratings ID, e.g. `violence-bloodshed`.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind"
              c:identifier="as_content_rating_set_kind"
              version="0.5.12">
        <doc xml:space="preserve">Sets the content rating kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_rating" transfer-ownership="none">
            <doc xml:space="preserve">a #AsContentRating instance.</doc>
            <type name="ContentRating" c:type="AsContentRating*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the rating kind, e.g. "oars-1.0"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ContentRatingClass"
            c:type="AsContentRatingClass"
            glib:is-gtype-struct-for="ContentRating">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ContentRatingValue" c:type="AsContentRatingValue">
      <doc xml:space="preserve">The specified level of an content_rating rating ID.</doc>
      <member name="unknown"
              value="0"
              c:identifier="AS_CONTENT_RATING_VALUE_UNKNOWN">
        <doc xml:space="preserve">Unknown value</doc>
      </member>
      <member name="none"
              value="1"
              c:identifier="AS_CONTENT_RATING_VALUE_NONE">
        <doc xml:space="preserve">None</doc>
      </member>
      <member name="mild"
              value="2"
              c:identifier="AS_CONTENT_RATING_VALUE_MILD">
        <doc xml:space="preserve">A small amount</doc>
      </member>
      <member name="moderate"
              value="3"
              c:identifier="AS_CONTENT_RATING_VALUE_MODERATE">
        <doc xml:space="preserve">A moderate amount</doc>
      </member>
      <member name="intense"
              value="4"
              c:identifier="AS_CONTENT_RATING_VALUE_INTENSE">
        <doc xml:space="preserve">An intense amount</doc>
      </member>
    </enumeration>
    <class name="Format"
           c:symbol-prefix="format"
           c:type="AsFormat"
           parent="GObject.Object"
           glib:type-name="AsFormat"
           glib:get-type="as_format_get_type"
           glib:type-struct="FormatClass">
      <constructor name="new" c:identifier="as_format_new" version="0.6.9">
        <doc xml:space="preserve">Creates a new #AsFormat.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsFormat</doc>
          <type name="Format" c:type="AsFormat*"/>
        </return-value>
      </constructor>
      <function name="guess_kind"
                c:identifier="as_format_guess_kind"
                version="0.6.9">
        <doc xml:space="preserve">Guesses the source kind based from the filename.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsFormatKind, e.g. %AS_FORMAT_KIND_APPSTREAM.</doc>
          <type name="FormatKind" c:type="AsFormatKind"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">a file name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_from_string"
                c:identifier="as_format_kind_from_string"
                version="0.6.9">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsFormatKind, or %AS_FORMAT_KIND_UNKNOWN for unknown.</doc>
          <type name="FormatKind" c:type="AsFormatKind"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string" c:identifier="as_format_kind_to_string">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <type name="FormatKind" c:type="AsFormatKind"/>
          </parameter>
        </parameters>
      </function>
      <method name="equal" c:identifier="as_format_equal" version="0.6.9">
        <doc xml:space="preserve">Checks if two formats are the same.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="format1" transfer-ownership="none">
            <doc xml:space="preserve">a #AsFormat instance.</doc>
            <type name="Format" c:type="AsFormat*"/>
          </instance-parameter>
          <parameter name="format2" transfer-ownership="none">
            <doc xml:space="preserve">a #AsFormat instance.</doc>
            <type name="Format" c:type="AsFormat*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_filename"
              c:identifier="as_format_get_filename"
              version="0.6.9">
        <doc xml:space="preserve">Gets the filename required for this format.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Runtime identifier, e.g. "org.gnome.Platform/i386/master"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">a #AsFormat instance.</doc>
            <type name="Format" c:type="AsFormat*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind"
              c:identifier="as_format_get_kind"
              version="0.6.9">
        <doc xml:space="preserve">Gets the format kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsFormatKind</doc>
          <type name="FormatKind" c:type="AsFormatKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">a #AsFormat instance.</doc>
            <type name="Format" c:type="AsFormat*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_filename"
              c:identifier="as_format_set_filename"
              version="0.6.9">
        <doc xml:space="preserve">Sets the filename required for this format.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">a #AsFormat instance.</doc>
            <type name="Format" c:type="AsFormat*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">the URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind"
              c:identifier="as_format_set_kind"
              version="0.6.9">
        <doc xml:space="preserve">Sets the format kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">a #AsFormat instance.</doc>
            <type name="Format" c:type="AsFormat*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsFormatKind, e.g. %AS_FORMAT_KIND_APPDATA.</doc>
            <type name="FormatKind" c:type="AsFormatKind"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="FormatClass"
            c:type="AsFormatClass"
            glib:is-gtype-struct-for="Format">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="FormatKind" c:type="AsFormatKind">
      <doc xml:space="preserve">The format kind.</doc>
      <member name="unknown" value="0" c:identifier="AS_FORMAT_KIND_UNKNOWN">
        <doc xml:space="preserve">Not formatd from a file</doc>
      </member>
      <member name="appstream"
              value="1"
              c:identifier="AS_FORMAT_KIND_APPSTREAM">
        <doc xml:space="preserve">AppStream file</doc>
      </member>
      <member name="desktop" value="2" c:identifier="AS_FORMAT_KIND_DESKTOP">
        <doc xml:space="preserve">Desktop file</doc>
      </member>
      <member name="appdata" value="3" c:identifier="AS_FORMAT_KIND_APPDATA">
        <doc xml:space="preserve">AppData file</doc>
      </member>
      <member name="metainfo" value="4" c:identifier="AS_FORMAT_KIND_METAINFO">
        <doc xml:space="preserve">MetaInfo file</doc>
      </member>
    </enumeration>
    <constant name="IMAGE_ALPHA_FLAG_BOTTOM"
              value="2"
              c:type="AS_IMAGE_ALPHA_FLAG_BOTTOM">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="IMAGE_ALPHA_FLAG_INTERNAL"
              value="16"
              c:type="AS_IMAGE_ALPHA_FLAG_INTERNAL">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="IMAGE_ALPHA_FLAG_LEFT"
              value="4"
              c:type="AS_IMAGE_ALPHA_FLAG_LEFT">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="IMAGE_ALPHA_FLAG_NONE"
              value="0"
              c:type="AS_IMAGE_ALPHA_FLAG_NONE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="IMAGE_ALPHA_FLAG_RIGHT"
              value="8"
              c:type="AS_IMAGE_ALPHA_FLAG_RIGHT">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="IMAGE_ALPHA_FLAG_TOP"
              value="1"
              c:type="AS_IMAGE_ALPHA_FLAG_TOP">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="IMAGE_LARGE_HEIGHT"
              value="423"
              c:type="AS_IMAGE_LARGE_HEIGHT">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="IMAGE_LARGE_WIDTH"
              value="752"
              c:type="AS_IMAGE_LARGE_WIDTH">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="IMAGE_NORMAL_HEIGHT"
              value="351"
              c:type="AS_IMAGE_NORMAL_HEIGHT">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="IMAGE_NORMAL_WIDTH"
              value="624"
              c:type="AS_IMAGE_NORMAL_WIDTH">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="IMAGE_THUMBNAIL_HEIGHT"
              value="63"
              c:type="AS_IMAGE_THUMBNAIL_HEIGHT">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="IMAGE_THUMBNAIL_WIDTH"
              value="112"
              c:type="AS_IMAGE_THUMBNAIL_WIDTH">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Icon"
           c:symbol-prefix="icon"
           c:type="AsIcon"
           parent="GObject.Object"
           glib:type-name="AsIcon"
           glib:get-type="as_icon_get_type"
           glib:type-struct="IconClass">
      <constructor name="new" c:identifier="as_icon_new" version="0.3.1">
        <doc xml:space="preserve">Creates a new #AsIcon.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsIcon</doc>
          <type name="Icon" c:type="AsIcon*"/>
        </return-value>
      </constructor>
      <function name="error_quark"
                c:identifier="as_icon_error_quark"
                version="0.3.1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <function name="kind_from_string"
                c:identifier="as_icon_kind_from_string"
                version="0.1.0">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsIconKind or %AS_ICON_KIND_UNKNOWN for unknown</doc>
          <type name="IconKind" c:type="AsIconKind"/>
        </return-value>
        <parameters>
          <parameter name="icon_kind" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="as_icon_kind_to_string"
                version="0.1.0">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @icon_kind</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="icon_kind" transfer-ownership="none">
            <doc xml:space="preserve">the @AsIconKind.</doc>
            <type name="IconKind" c:type="AsIconKind"/>
          </parameter>
        </parameters>
      </function>
      <method name="convert_to_kind"
              c:identifier="as_icon_convert_to_kind"
              version="0.3.1"
              throws="1">
        <doc xml:space="preserve">Converts the icon from one kind to another.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">a %AsIconKind, e.g. #AS_ICON_KIND_EMBEDDED</doc>
            <type name="IconKind" c:type="AsIconKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_filename"
              c:identifier="as_icon_get_filename"
              version="0.3.2">
        <doc xml:space="preserve">Gets the absolute path on disk of the icon.
NOTE: This is only set for icons of type %AS_ICON_KIND_LOCAL</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the absolute filename on disk</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_height"
              c:identifier="as_icon_get_height"
              version="0.3.1">
        <doc xml:space="preserve">Gets the icon height.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">height in pixels</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind" c:identifier="as_icon_get_kind" version="0.3.1">
        <doc xml:space="preserve">Gets the icon kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsIconKind</doc>
          <type name="IconKind" c:type="AsIconKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="as_icon_get_name" version="0.3.1">
        <doc xml:space="preserve">Gets the name of the icon, e.g. "epiphany.png"</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the basename of the icon</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixbuf"
              c:identifier="as_icon_get_pixbuf"
              version="0.3.1">
        <doc xml:space="preserve">Gets the icon pixbuf if set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GdkPixbuf, or %NULL</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_prefix"
              c:identifier="as_icon_get_prefix"
              version="0.1.6">
        <doc xml:space="preserve">Gets the suggested prefix of the icon.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">filename</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_scale"
              c:identifier="as_icon_get_scale"
              version="0.6.13">
        <doc xml:space="preserve">Gets the icon scale.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">scale factor</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="as_icon_get_url" version="0.3.2">
        <doc xml:space="preserve">Gets the full qualified URL for the icon, usually pointing at some mirror.
NOTE: This is only set for icons of type %AS_ICON_KIND_REMOTE</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the fully qualified URL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width"
              c:identifier="as_icon_get_width"
              version="0.3.1">
        <doc xml:space="preserve">Gets the icon width.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">width in pixels</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load"
              c:identifier="as_icon_load"
              version="0.3.1"
              throws="1">
        <doc xml:space="preserve">Loads the icon into a local pixbuf.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIconLoadFlags, e.g. %AS_ICON_LOAD_FLAG_SEARCH_SIZE</doc>
            <type name="IconLoadFlags" c:type="AsIconLoadFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filename"
              c:identifier="as_icon_set_filename"
              version="0.3.2">
        <doc xml:space="preserve">Sets the icon absolute filename.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">the new icon URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_height"
              c:identifier="as_icon_set_height"
              version="0.3.1">
        <doc xml:space="preserve">Sets the icon height.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">the height in pixels.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind" c:identifier="as_icon_set_kind" version="0.3.1">
        <doc xml:space="preserve">Sets the icon kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsIconKind, e.g. %AS_ICON_KIND_STOCK.</doc>
            <type name="IconKind" c:type="AsIconKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="as_icon_set_name" version="0.3.1">
        <doc xml:space="preserve">Sets the basename to use for the icon.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the icon name, e.g. "gimp.png"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pixbuf"
              c:identifier="as_icon_set_pixbuf"
              version="0.3.1">
        <doc xml:space="preserve">Sets the icon pixbuf.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
          <parameter name="pixbuf" transfer-ownership="none">
            <doc xml:space="preserve">the #GdkPixbuf, or %NULL</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_prefix"
              c:identifier="as_icon_set_prefix"
              version="0.1.6">
        <doc xml:space="preserve">Sets the icon prefix filename.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
          <parameter name="prefix" transfer-ownership="none">
            <doc xml:space="preserve">the new filename prefix.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scale"
              c:identifier="as_icon_set_scale"
              version="0.6.13">
        <doc xml:space="preserve">Sets the icon scale.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
          <parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve">the scale as a factor.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_url" c:identifier="as_icon_set_url" version="0.3.2">
        <doc xml:space="preserve">Sets the icon URL.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">the new icon URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_width"
              c:identifier="as_icon_set_width"
              version="0.3.1">
        <doc xml:space="preserve">Sets the icon width.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">a #AsIcon instance.</doc>
            <type name="Icon" c:type="AsIcon*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">the width in pixels.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="IconClass"
            c:type="AsIconClass"
            glib:is-gtype-struct-for="Icon">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="IconError" c:type="AsIconError">
      <doc xml:space="preserve">The error type.</doc>
      <member name="failed" value="0" c:identifier="AS_ICON_ERROR_FAILED">
        <doc xml:space="preserve">Generic failure</doc>
      </member>
    </enumeration>
    <enumeration name="IconKind" c:type="AsIconKind">
      <doc xml:space="preserve">The icon type.</doc>
      <member name="unknown" value="0" c:identifier="AS_ICON_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="stock" value="1" c:identifier="AS_ICON_KIND_STOCK">
        <doc xml:space="preserve">Stock icon or present in the generic icon theme</doc>
      </member>
      <member name="cached" value="2" c:identifier="AS_ICON_KIND_CACHED">
        <doc xml:space="preserve">An icon shipped with the AppStream metadata</doc>
      </member>
      <member name="remote" value="3" c:identifier="AS_ICON_KIND_REMOTE">
        <doc xml:space="preserve">An icon referenced by a remote URL</doc>
      </member>
      <member name="embedded" value="4" c:identifier="AS_ICON_KIND_EMBEDDED">
        <doc xml:space="preserve">An embedded Base64 icon</doc>
      </member>
      <member name="local" value="5" c:identifier="AS_ICON_KIND_LOCAL">
        <doc xml:space="preserve">An icon with absolute path and filename</doc>
      </member>
    </enumeration>
    <enumeration name="IconLoadFlags" c:type="AsIconLoadFlags">
      <doc xml:space="preserve">The flags to use when loading icons.</doc>
      <member name="none" value="0" c:identifier="AS_ICON_LOAD_FLAG_NONE">
        <doc xml:space="preserve">No extra flags to use</doc>
      </member>
      <member name="search_size"
              value="1"
              c:identifier="AS_ICON_LOAD_FLAG_SEARCH_SIZE">
        <doc xml:space="preserve">Search first in a size-specific directory</doc>
      </member>
    </enumeration>
    <enumeration name="IdKind" c:type="AsIdKind">
      <doc xml:space="preserve">The component type.</doc>
      <member name="unknown" value="0" c:identifier="AS_ID_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="desktop" value="1" c:identifier="AS_ID_KIND_DESKTOP">
        <doc xml:space="preserve">A desktop application</doc>
      </member>
      <member name="font" value="2" c:identifier="AS_ID_KIND_FONT">
        <doc xml:space="preserve">A font add-on</doc>
      </member>
      <member name="codec" value="3" c:identifier="AS_ID_KIND_CODEC">
        <doc xml:space="preserve">A codec add-on</doc>
      </member>
      <member name="input_method"
              value="4"
              c:identifier="AS_ID_KIND_INPUT_METHOD">
        <doc xml:space="preserve">A input method add-on</doc>
      </member>
      <member name="web_app" value="5" c:identifier="AS_ID_KIND_WEB_APP">
        <doc xml:space="preserve">A web appication</doc>
      </member>
      <member name="source" value="6" c:identifier="AS_ID_KIND_SOURCE">
        <doc xml:space="preserve">A software source</doc>
      </member>
      <member name="addon" value="7" c:identifier="AS_ID_KIND_ADDON">
        <doc xml:space="preserve">An addon, e.g. a plugin</doc>
      </member>
      <member name="firmware" value="8" c:identifier="AS_ID_KIND_FIRMWARE">
        <doc xml:space="preserve">A firmware update</doc>
      </member>
      <member name="runtime" value="9" c:identifier="AS_ID_KIND_RUNTIME">
        <doc xml:space="preserve">Runtime platform</doc>
      </member>
      <member name="generic" value="10" c:identifier="AS_ID_KIND_GENERIC">
        <doc xml:space="preserve">Generic component</doc>
      </member>
    </enumeration>
    <class name="Image"
           c:symbol-prefix="image"
           c:type="AsImage"
           parent="GObject.Object"
           glib:type-name="AsImage"
           glib:get-type="as_image_get_type"
           glib:type-struct="ImageClass">
      <constructor name="new" c:identifier="as_image_new" version="0.1.0">
        <doc xml:space="preserve">Creates a new #AsImage.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsImage</doc>
          <type name="Image" c:type="AsImage*"/>
        </return-value>
      </constructor>
      <function name="kind_from_string"
                c:identifier="as_image_kind_from_string"
                version="0.1.0">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsImageKind, or %AS_IMAGE_KIND_UNKNOWN for unknown.</doc>
          <type name="ImageKind" c:type="AsImageKind"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="as_image_kind_to_string"
                version="0.1.0">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @kind</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsImageKind.</doc>
            <type name="ImageKind" c:type="AsImageKind"/>
          </parameter>
        </parameters>
      </function>
      <method name="equal" c:identifier="as_image_equal" version="0.5.7">
        <doc xml:space="preserve">Checks if two images are the same.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="image1" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
          <parameter name="image2" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alpha_flags"
              c:identifier="as_image_get_alpha_flags"
              version="0.2.2"
              introspectable="0">
        <doc xml:space="preserve">Gets the alpha flags for the image. The following image would have all flags
set, where 'x' is alpha and '@' is non-alpha.

xxxxxxxxxxxxxxxxxxxxxxxxxxxx
xx@@@@@@@@@@@@@@@@@@@@@@@@xx
xx@@@@@@@xxxxxx@@@@@@@@@@@xx
xx@@@@@@@xxxxxx@@@@@@@@@@@xx
xx@@@@@@@@@@@@@@@@@@@@@@@@xx
xxxxxxxxxxxxxxxxxxxxxxxxxxxx</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#AsImageAlphaFlags, e.g. %AS_IMAGE_ALPHA_FLAG_LEFT</doc>
          <type name="ImageAlphaFlags" c:type="AsImageAlphaFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_basename"
              c:identifier="as_image_get_basename"
              version="0.1.6">
        <doc xml:space="preserve">Gets the suggested basename the image, including file extension.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">filename</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_height"
              c:identifier="as_image_get_height"
              version="0.1.0">
        <doc xml:space="preserve">Gets the image height.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">height in pixels</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind" c:identifier="as_image_get_kind" version="0.1.0">
        <doc xml:space="preserve">Gets the image kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsImageKind</doc>
          <type name="ImageKind" c:type="AsImageKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_locale"
              c:identifier="as_image_get_locale"
              version="0.5.14">
        <doc xml:space="preserve">Gets the locale of the image.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">locale, or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_md5" c:identifier="as_image_get_md5" version="0.1.6">
        <doc xml:space="preserve">Gets the string representation of the pixbuf hash value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string representing the MD5 sum, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixbuf"
              c:identifier="as_image_get_pixbuf"
              version="0.1.6">
        <doc xml:space="preserve">Gets the image pixbuf if set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GdkPixbuf, or %NULL</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="as_image_get_url" version="0.1.0">
        <doc xml:space="preserve">Gets the full qualified URL for the image, usually pointing at some mirror.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">URL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width"
              c:identifier="as_image_get_width"
              version="0.1.0">
        <doc xml:space="preserve">Gets the image width.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">width in pixels</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_filename"
              c:identifier="as_image_load_filename"
              version="0.1.6"
              throws="1">
        <doc xml:space="preserve">Reads a pixbuf from a file.

NOTE: This function also sets the suggested filename which can be retrieved
using as_image_get_basename(). This can be overridden if required.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">filename to read from</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_filename_full"
              c:identifier="as_image_load_filename_full"
              version="0.5.6"
              throws="1">
        <doc xml:space="preserve">Reads an image from a file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">filename to read from</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="dest_size" transfer-ownership="none">
            <doc xml:space="preserve">The size of the constructed pixbuf, or 0 for the native size</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="src_size_min" transfer-ownership="none">
            <doc xml:space="preserve">The smallest source size allowed, or 0 for none</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImageLoadFlags, e.g. %AS_IMAGE_LOAD_FLAG_NONE</doc>
            <type name="ImageLoadFlags" c:type="AsImageLoadFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_filename"
              c:identifier="as_image_save_filename"
              version="0.1.6"
              throws="1">
        <doc xml:space="preserve">Saves a pixbuf to a file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">filename to write to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">target width, or 0 for default</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">target height, or 0 for default</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">some #AsImageSaveFlags values, e.g. %AS_IMAGE_SAVE_FLAG_PAD_16_9</doc>
            <type name="ImageSaveFlags" c:type="AsImageSaveFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_pixbuf"
              c:identifier="as_image_save_pixbuf"
              version="0.1.6">
        <doc xml:space="preserve">Resamples a pixbuf to a specific size.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GdkPixbuf of the specified size</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">target width, or 0 for default</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">target height, or 0 for default</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">some #AsImageSaveFlags values, e.g. %AS_IMAGE_SAVE_FLAG_PAD_16_9</doc>
            <type name="ImageSaveFlags" c:type="AsImageSaveFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_basename"
              c:identifier="as_image_set_basename"
              version="0.1.6">
        <doc xml:space="preserve">Sets the image basename filename.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
          <parameter name="basename" transfer-ownership="none">
            <doc xml:space="preserve">the new filename basename.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_height"
              c:identifier="as_image_set_height"
              version="0.1.0">
        <doc xml:space="preserve">Sets the image height.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">the height in pixels.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind" c:identifier="as_image_set_kind" version="0.1.0">
        <doc xml:space="preserve">Sets the image kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsImageKind, e.g. %AS_IMAGE_KIND_THUMBNAIL.</doc>
            <type name="ImageKind" c:type="AsImageKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_locale"
              c:identifier="as_image_set_locale"
              version="0.5.14">
        <doc xml:space="preserve">Sets the image locale.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the new image locale, e.g. "en_GB" or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pixbuf"
              c:identifier="as_image_set_pixbuf"
              version="0.1.6">
        <doc xml:space="preserve">Sets the image pixbuf.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
          <parameter name="pixbuf" transfer-ownership="none">
            <doc xml:space="preserve">the #GdkPixbuf, or %NULL</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_url" c:identifier="as_image_set_url" version="0.1.0">
        <doc xml:space="preserve">Sets the fully-qualified mirror URL to use for the image.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">the URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_width"
              c:identifier="as_image_set_width"
              version="0.1.0">
        <doc xml:space="preserve">Sets the image width.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">the width in pixels.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ImageClass"
            c:type="AsImageClass"
            glib:is-gtype-struct-for="Image">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ImageKind" c:type="AsImageKind">
      <doc xml:space="preserve">The image type.</doc>
      <member name="unknown" value="0" c:identifier="AS_IMAGE_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="source" value="1" c:identifier="AS_IMAGE_KIND_SOURCE">
        <doc xml:space="preserve">The source image at full resolution</doc>
      </member>
      <member name="thumbnail"
              value="2"
              c:identifier="AS_IMAGE_KIND_THUMBNAIL">
        <doc xml:space="preserve">A thumbnail at reduced resolution</doc>
      </member>
    </enumeration>
    <enumeration name="ImageLoadFlags" c:type="AsImageLoadFlags">
      <doc xml:space="preserve">The flags used for loading images.</doc>
      <member name="none" value="0" c:identifier="AS_IMAGE_LOAD_FLAG_NONE">
        <doc xml:space="preserve">No special flags set</doc>
      </member>
      <member name="sharpen"
              value="1"
              c:identifier="AS_IMAGE_LOAD_FLAG_SHARPEN">
        <doc xml:space="preserve">Sharpen the resulting image</doc>
      </member>
      <member name="set_basename"
              value="2"
              c:identifier="AS_IMAGE_LOAD_FLAG_SET_BASENAME">
        <doc xml:space="preserve">Set the image basename</doc>
      </member>
      <member name="set_checksum"
              value="4"
              c:identifier="AS_IMAGE_LOAD_FLAG_SET_CHECKSUM">
        <doc xml:space="preserve">Set the image checksum</doc>
      </member>
      <member name="only_supported"
              value="8"
              c:identifier="AS_IMAGE_LOAD_FLAG_ONLY_SUPPORTED">
        <doc xml:space="preserve">Only load supported formats like PNG and JPG</doc>
      </member>
    </enumeration>
    <enumeration name="ImageSaveFlags" c:type="AsImageSaveFlags">
      <doc xml:space="preserve">The flags used for saving images.</doc>
      <member name="none" value="0" c:identifier="AS_IMAGE_SAVE_FLAG_NONE">
        <doc xml:space="preserve">No special flags set</doc>
      </member>
      <member name="pad_16_9"
              value="1"
              c:identifier="AS_IMAGE_SAVE_FLAG_PAD_16_9">
        <doc xml:space="preserve">Pad with alpha to 16:9 aspect</doc>
      </member>
      <member name="sharpen"
              value="2"
              c:identifier="AS_IMAGE_SAVE_FLAG_SHARPEN">
        <doc xml:space="preserve">Sharpen the image to clarify detail</doc>
      </member>
      <member name="blur" value="4" c:identifier="AS_IMAGE_SAVE_FLAG_BLUR">
        <doc xml:space="preserve">Blur the image to clear detail</doc>
      </member>
    </enumeration>
    <enumeration name="InfError"
                 c:type="AsInfError"
                 glib:error-domain="as-inf-error-quark">
      <doc xml:space="preserve">The error type.</doc>
      <member name="failed" value="0" c:identifier="AS_INF_ERROR_FAILED">
        <doc xml:space="preserve">Generic failure</doc>
      </member>
      <member name="invalid_type"
              value="1"
              c:identifier="AS_INF_ERROR_INVALID_TYPE">
        <doc xml:space="preserve">Invalid type</doc>
      </member>
      <member name="not_found" value="2" c:identifier="AS_INF_ERROR_NOT_FOUND">
        <doc xml:space="preserve">Data not found</doc>
      </member>
    </enumeration>
    <bitfield name="InfLoadFlags" c:type="AsInfLoadFlags">
      <doc xml:space="preserve">The flags used when loading INF files.</doc>
      <member name="none" value="0" c:identifier="AS_INF_LOAD_FLAG_NONE">
        <doc xml:space="preserve">No flags set</doc>
      </member>
      <member name="strict" value="1" c:identifier="AS_INF_LOAD_FLAG_STRICT">
        <doc xml:space="preserve">Be strict when loading the file</doc>
      </member>
      <member name="case_insensitive"
              value="2"
              c:identifier="AS_INF_LOAD_FLAG_CASE_INSENSITIVE">
        <doc xml:space="preserve">Load keys and groups case insensitive</doc>
      </member>
    </bitfield>
    <enumeration name="KudoKind" c:type="AsKudoKind">
      <doc xml:space="preserve">The kudo type.</doc>
      <member name="unknown" value="0" c:identifier="AS_KUDO_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="search_provider"
              value="1"
              c:identifier="AS_KUDO_KIND_SEARCH_PROVIDER">
        <doc xml:space="preserve">Installs a search provider</doc>
      </member>
      <member name="user_docs" value="2" c:identifier="AS_KUDO_KIND_USER_DOCS">
        <doc xml:space="preserve">Installs user documentation</doc>
      </member>
      <member name="app_menu" value="3" c:identifier="AS_KUDO_KIND_APP_MENU">
        <doc xml:space="preserve">Uses the GNOME application menu</doc>
      </member>
      <member name="modern_toolkit"
              value="4"
              c:identifier="AS_KUDO_KIND_MODERN_TOOLKIT">
        <doc xml:space="preserve">Uses a modern toolkit like GTK3 or QT5</doc>
      </member>
      <member name="notifications"
              value="5"
              c:identifier="AS_KUDO_KIND_NOTIFICATIONS">
        <doc xml:space="preserve">Registers notifications with KDE or GNOME</doc>
      </member>
      <member name="high_contrast"
              value="6"
              c:identifier="AS_KUDO_KIND_HIGH_CONTRAST">
        <doc xml:space="preserve">Installs a high contrast icon</doc>
      </member>
      <member name="hi_dpi_icon"
              value="7"
              c:identifier="AS_KUDO_KIND_HI_DPI_ICON">
        <doc xml:space="preserve">Installs a high DPI icon</doc>
      </member>
    </enumeration>
    <class name="Launchable"
           c:symbol-prefix="launchable"
           c:type="AsLaunchable"
           parent="GObject.Object"
           glib:type-name="AsLaunchable"
           glib:get-type="as_launchable_get_type"
           glib:type-struct="LaunchableClass">
      <constructor name="new"
                   c:identifier="as_launchable_new"
                   version="0.6.13">
        <doc xml:space="preserve">Creates a new #AsLaunchable.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsLaunchable</doc>
          <type name="Launchable" c:type="AsLaunchable*"/>
        </return-value>
      </constructor>
      <function name="kind_from_string"
                c:identifier="as_launchable_kind_from_string"
                version="0.6.13">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsLaunchableKind, or %AS_LAUNCHABLE_KIND_UNKNOWN for unknown.</doc>
          <type name="LaunchableKind" c:type="AsLaunchableKind"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="as_launchable_kind_to_string"
                version="0.6.13">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @kind</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsLaunchableKind.</doc>
            <type name="LaunchableKind" c:type="AsLaunchableKind"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_kind"
              c:identifier="as_launchable_get_kind"
              version="0.6.13">
        <doc xml:space="preserve">Gets the launchable kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsLaunchableKind</doc>
          <type name="LaunchableKind" c:type="AsLaunchableKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="launchable" transfer-ownership="none">
            <doc xml:space="preserve">a #AsLaunchable instance.</doc>
            <type name="Launchable" c:type="AsLaunchable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value"
              c:identifier="as_launchable_get_value"
              version="0.6.13">
        <doc xml:space="preserve">Gets the value to use for the launchable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">usually a desktop ID, e.g. "gimp.desktop"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="launchable" transfer-ownership="none">
            <doc xml:space="preserve">a #AsLaunchable instance.</doc>
            <type name="Launchable" c:type="AsLaunchable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_kind"
              c:identifier="as_launchable_set_kind"
              version="0.6.13">
        <doc xml:space="preserve">Sets the launchable kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="launchable" transfer-ownership="none">
            <doc xml:space="preserve">a #AsLaunchable instance.</doc>
            <type name="Launchable" c:type="AsLaunchable*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsLaunchableKind, e.g. %AS_LAUNCHABLE_KIND_DESKTOP_ID.</doc>
            <type name="LaunchableKind" c:type="AsLaunchableKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value"
              c:identifier="as_launchable_set_value"
              version="0.6.13">
        <doc xml:space="preserve">Sets the fully-qualified mirror URL to use for the launchable.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="launchable" transfer-ownership="none">
            <doc xml:space="preserve">a #AsLaunchable instance.</doc>
            <type name="Launchable" c:type="AsLaunchable*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="LaunchableClass"
            c:type="AsLaunchableClass"
            glib:is-gtype-struct-for="Launchable">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="LaunchableKind" c:type="AsLaunchableKind">
      <doc xml:space="preserve">The launchable type.</doc>
      <member name="unknown"
              value="0"
              c:identifier="AS_LAUNCHABLE_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="desktop_id"
              value="1"
              c:identifier="AS_LAUNCHABLE_KIND_DESKTOP_ID">
        <doc xml:space="preserve">A desktop ID</doc>
      </member>
      <member name="service"
              value="2"
              c:identifier="AS_LAUNCHABLE_KIND_SERVICE">
        <doc xml:space="preserve">A system service</doc>
      </member>
      <member name="cockpit_manifest"
              value="3"
              c:identifier="AS_LAUNCHABLE_KIND_COCKPIT_MANIFEST">
        <doc xml:space="preserve">A manifest run by the cockpit project</doc>
      </member>
      <member name="url" value="4" c:identifier="AS_LAUNCHABLE_KIND_URL">
        <doc xml:space="preserve">A web-app</doc>
      </member>
    </enumeration>
    <enumeration name="NodeError"
                 c:type="AsNodeError"
                 glib:error-domain="as-node-error-quark">
      <doc xml:space="preserve">The error type.</doc>
      <member name="failed" value="0" c:identifier="AS_NODE_ERROR_FAILED">
        <doc xml:space="preserve">Generic failure</doc>
      </member>
      <member name="invalid_markup"
              value="1"
              c:identifier="AS_NODE_ERROR_INVALID_MARKUP">
        <doc xml:space="preserve">XML markup was invalid</doc>
      </member>
      <member name="no_support"
              value="2"
              c:identifier="AS_NODE_ERROR_NO_SUPPORT">
        <doc xml:space="preserve">No support for parsing</doc>
      </member>
    </enumeration>
    <bitfield name="NodeFromXmlFlags" c:type="AsNodeFromXmlFlags">
      <doc xml:space="preserve">The flags for converting from XML.</doc>
      <member name="none" value="0" c:identifier="AS_NODE_FROM_XML_FLAG_NONE">
        <doc xml:space="preserve">No extra flags to use</doc>
      </member>
      <member name="literal_text"
              value="1"
              c:identifier="AS_NODE_FROM_XML_FLAG_LITERAL_TEXT">
        <doc xml:space="preserve">Treat the text as an exact string</doc>
      </member>
      <member name="keep_comments"
              value="2"
              c:identifier="AS_NODE_FROM_XML_FLAG_KEEP_COMMENTS">
        <doc xml:space="preserve">Retain comments in the XML file</doc>
      </member>
      <member name="only_native_langs"
              value="4"
              c:identifier="AS_NODE_FROM_XML_FLAG_ONLY_NATIVE_LANGS">
        <doc xml:space="preserve">Only load native languages</doc>
      </member>
    </bitfield>
    <enumeration name="NodeInsertFlags" c:type="AsNodeInsertFlags">
      <doc xml:space="preserve">The flags to use when inserting a node.</doc>
      <member name="none" value="0" c:identifier="AS_NODE_INSERT_FLAG_NONE">
        <doc xml:space="preserve">No extra flags to use</doc>
      </member>
      <member name="pre_escaped"
              value="1"
              c:identifier="AS_NODE_INSERT_FLAG_PRE_ESCAPED">
        <doc xml:space="preserve">The data is already XML escaped</doc>
      </member>
      <member name="swapped"
              value="2"
              c:identifier="AS_NODE_INSERT_FLAG_SWAPPED">
        <doc xml:space="preserve">The name and key should be swapped</doc>
      </member>
      <member name="no_markup"
              value="4"
              c:identifier="AS_NODE_INSERT_FLAG_NO_MARKUP">
        <doc xml:space="preserve">Preformat the 'description' markup</doc>
      </member>
      <member name="dedupe_lang"
              value="8"
              c:identifier="AS_NODE_INSERT_FLAG_DEDUPE_LANG">
        <doc xml:space="preserve">No xml:lang keys where text matches 'C'</doc>
      </member>
      <member name="mark_translatable"
              value="16"
              c:identifier="AS_NODE_INSERT_FLAG_MARK_TRANSLATABLE">
        <doc xml:space="preserve">Mark the tag name as translatable</doc>
      </member>
      <member name="base64_encoded"
              value="32"
              c:identifier="AS_NODE_INSERT_FLAG_BASE64_ENCODED">
        <doc xml:space="preserve">The data is Base64 enoded</doc>
      </member>
    </enumeration>
    <enumeration name="NodeToXmlFlags" c:type="AsNodeToXmlFlags">
      <doc xml:space="preserve">The flags for converting to XML.</doc>
      <member name="none" value="0" c:identifier="AS_NODE_TO_XML_FLAG_NONE">
        <doc xml:space="preserve">No extra flags to use</doc>
      </member>
      <member name="add_header"
              value="1"
              c:identifier="AS_NODE_TO_XML_FLAG_ADD_HEADER">
        <doc xml:space="preserve">Add an XML header to the data</doc>
      </member>
      <member name="format_multiline"
              value="2"
              c:identifier="AS_NODE_TO_XML_FLAG_FORMAT_MULTILINE">
        <doc xml:space="preserve">Split up children with a newline</doc>
      </member>
      <member name="format_indent"
              value="4"
              c:identifier="AS_NODE_TO_XML_FLAG_FORMAT_INDENT">
        <doc xml:space="preserve">Indent the XML by child depth</doc>
      </member>
      <member name="include_siblings"
              value="8"
              c:identifier="AS_NODE_TO_XML_FLAG_INCLUDE_SIBLINGS">
        <doc xml:space="preserve">Include the siblings when converting</doc>
      </member>
      <member name="sort_children"
              value="16"
              c:identifier="AS_NODE_TO_XML_FLAG_SORT_CHILDREN">
        <doc xml:space="preserve">Sort the tags by alphabetical order</doc>
      </member>
    </enumeration>
    <class name="Problem"
           c:symbol-prefix="problem"
           c:type="AsProblem"
           parent="GObject.Object"
           glib:type-name="AsProblem"
           glib:get-type="as_problem_get_type"
           glib:type-struct="ProblemClass">
      <constructor name="new" c:identifier="as_problem_new" version="0.1.4">
        <doc xml:space="preserve">Creates a new #AsProblem.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsProblem</doc>
          <type name="Problem" c:type="AsProblem*"/>
        </return-value>
      </constructor>
      <function name="kind_to_string"
                c:identifier="as_problem_kind_to_string"
                version="0.1.4">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @kind</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsProblemKind.</doc>
            <type name="ProblemKind" c:type="AsProblemKind"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_kind"
              c:identifier="as_problem_get_kind"
              version="0.1.4">
        <doc xml:space="preserve">Gets the problem kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsProblemKind, e.g. %AS_PROBLEM_KIND_TAG_MISSING</doc>
          <type name="ProblemKind" c:type="AsProblemKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="problem" transfer-ownership="none">
            <doc xml:space="preserve">a #AsProblem instance.</doc>
            <type name="Problem" c:type="AsProblem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_line_number"
              c:identifier="as_problem_get_line_number"
              version="0.1.4">
        <doc xml:space="preserve">Gets the line number of the problem if known.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a line number, where 0 is unknown</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="problem" transfer-ownership="none">
            <doc xml:space="preserve">a #AsProblem instance.</doc>
            <type name="Problem" c:type="AsProblem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_message"
              c:identifier="as_problem_get_message"
              version="0.1.4">
        <doc xml:space="preserve">Gets the specific message for the problem.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the message</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="problem" transfer-ownership="none">
            <doc xml:space="preserve">a #AsProblem instance.</doc>
            <type name="Problem" c:type="AsProblem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_kind"
              c:identifier="as_problem_set_kind"
              version="0.1.4">
        <doc xml:space="preserve">Sets the problem kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="problem" transfer-ownership="none">
            <doc xml:space="preserve">a #AsProblem instance.</doc>
            <type name="Problem" c:type="AsProblem*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsProblemKind.</doc>
            <type name="ProblemKind" c:type="AsProblemKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_line_number"
              c:identifier="as_problem_set_line_number"
              version="0.1.4">
        <doc xml:space="preserve">Adds an line_number to the problem.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="problem" transfer-ownership="none">
            <doc xml:space="preserve">a #AsProblem instance.</doc>
            <type name="Problem" c:type="AsProblem*"/>
          </instance-parameter>
          <parameter name="line_number" transfer-ownership="none">
            <doc xml:space="preserve">a #guint instance.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_message"
              c:identifier="as_problem_set_message"
              version="0.1.4">
        <doc xml:space="preserve">Sets a message on the problem.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="problem" transfer-ownership="none">
            <doc xml:space="preserve">a #AsProblem instance.</doc>
            <type name="Problem" c:type="AsProblem*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve">the message text.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ProblemClass"
            c:type="AsProblemClass"
            glib:is-gtype-struct-for="Problem">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ProblemKind" c:type="AsProblemKind">
      <doc xml:space="preserve">The problem type.</doc>
      <member name="unknown" value="0" c:identifier="AS_PROBLEM_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="tag_duplicated"
              value="1"
              c:identifier="AS_PROBLEM_KIND_TAG_DUPLICATED">
        <doc xml:space="preserve">A tag is duplicated</doc>
      </member>
      <member name="tag_missing"
              value="2"
              c:identifier="AS_PROBLEM_KIND_TAG_MISSING">
        <doc xml:space="preserve">A required tag is missing</doc>
      </member>
      <member name="tag_invalid"
              value="3"
              c:identifier="AS_PROBLEM_KIND_TAG_INVALID">
        <doc xml:space="preserve">A tag value is invalid</doc>
      </member>
      <member name="attribute_missing"
              value="4"
              c:identifier="AS_PROBLEM_KIND_ATTRIBUTE_MISSING">
        <doc xml:space="preserve">A required attribute is missing</doc>
      </member>
      <member name="attribute_invalid"
              value="5"
              c:identifier="AS_PROBLEM_KIND_ATTRIBUTE_INVALID">
        <doc xml:space="preserve">An attribute is invalid</doc>
      </member>
      <member name="markup_invalid"
              value="6"
              c:identifier="AS_PROBLEM_KIND_MARKUP_INVALID">
        <doc xml:space="preserve">The XML markup is invalid</doc>
      </member>
      <member name="style_incorrect"
              value="7"
              c:identifier="AS_PROBLEM_KIND_STYLE_INCORRECT">
        <doc xml:space="preserve">Style guidelines are incorrect</doc>
      </member>
      <member name="translations_required"
              value="8"
              c:identifier="AS_PROBLEM_KIND_TRANSLATIONS_REQUIRED">
        <doc xml:space="preserve">Translations are required</doc>
      </member>
      <member name="duplicate_data"
              value="9"
              c:identifier="AS_PROBLEM_KIND_DUPLICATE_DATA">
        <doc xml:space="preserve">Some data is duplicated</doc>
      </member>
      <member name="value_missing"
              value="10"
              c:identifier="AS_PROBLEM_KIND_VALUE_MISSING">
        <doc xml:space="preserve">A value is required</doc>
      </member>
      <member name="url_not_found"
              value="11"
              c:identifier="AS_PROBLEM_KIND_URL_NOT_FOUND">
        <doc xml:space="preserve">The URL is not found</doc>
      </member>
      <member name="file_invalid"
              value="12"
              c:identifier="AS_PROBLEM_KIND_FILE_INVALID">
        <doc xml:space="preserve">The file is invalid</doc>
      </member>
      <member name="aspect_ratio_incorrect"
              value="13"
              c:identifier="AS_PROBLEM_KIND_ASPECT_RATIO_INCORRECT">
        <doc xml:space="preserve">The image aspect ratio is wrong</doc>
      </member>
      <member name="resolution_incorrect"
              value="14"
              c:identifier="AS_PROBLEM_KIND_RESOLUTION_INCORRECT">
        <doc xml:space="preserve">The image resolution is wrong</doc>
      </member>
    </enumeration>
    <class name="Provide"
           c:symbol-prefix="provide"
           c:type="AsProvide"
           parent="GObject.Object"
           glib:type-name="AsProvide"
           glib:get-type="as_provide_get_type"
           glib:type-struct="ProvideClass">
      <constructor name="new" c:identifier="as_provide_new" version="0.1.6">
        <doc xml:space="preserve">Creates a new #AsProvide.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsProvide</doc>
          <type name="Provide" c:type="AsProvide*"/>
        </return-value>
      </constructor>
      <function name="kind_from_string"
                c:identifier="as_provide_kind_from_string"
                version="0.1.6">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsProvideKind, or %AS_PROVIDE_KIND_UNKNOWN for unknown.</doc>
          <type name="ProvideKind" c:type="AsProvideKind"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="as_provide_kind_to_string"
                version="0.1.6">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @kind</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsProvideKind.</doc>
            <type name="ProvideKind" c:type="AsProvideKind"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_kind"
              c:identifier="as_provide_get_kind"
              version="0.1.6">
        <doc xml:space="preserve">Gets the provide kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsProvideKind</doc>
          <type name="ProvideKind" c:type="AsProvideKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="provide" transfer-ownership="none">
            <doc xml:space="preserve">a #AsProvide instance.</doc>
            <type name="Provide" c:type="AsProvide*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value"
              c:identifier="as_provide_get_value"
              version="0.1.6">
        <doc xml:space="preserve">Gets the full qualified URL for the provide, usually pointing at some mirror.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">URL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provide" transfer-ownership="none">
            <doc xml:space="preserve">a #AsProvide instance.</doc>
            <type name="Provide" c:type="AsProvide*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_kind"
              c:identifier="as_provide_set_kind"
              version="0.1.6">
        <doc xml:space="preserve">Sets the provide kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provide" transfer-ownership="none">
            <doc xml:space="preserve">a #AsProvide instance.</doc>
            <type name="Provide" c:type="AsProvide*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsProvideKind, e.g. %AS_PROVIDE_KIND_LIBRARY.</doc>
            <type name="ProvideKind" c:type="AsProvideKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value"
              c:identifier="as_provide_set_value"
              version="0.1.6">
        <doc xml:space="preserve">Sets the fully-qualified mirror URL to use for the provide.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provide" transfer-ownership="none">
            <doc xml:space="preserve">a #AsProvide instance.</doc>
            <type name="Provide" c:type="AsProvide*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ProvideClass"
            c:type="AsProvideClass"
            glib:is-gtype-struct-for="Provide">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ProvideKind" c:type="AsProvideKind">
      <doc xml:space="preserve">The provide type.</doc>
      <member name="unknown" value="0" c:identifier="AS_PROVIDE_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="library" value="1" c:identifier="AS_PROVIDE_KIND_LIBRARY">
        <doc xml:space="preserve">A library file</doc>
      </member>
      <member name="binary" value="2" c:identifier="AS_PROVIDE_KIND_BINARY">
        <doc xml:space="preserve">A binary file</doc>
      </member>
      <member name="font" value="3" c:identifier="AS_PROVIDE_KIND_FONT">
        <doc xml:space="preserve">A font file</doc>
      </member>
      <member name="modalias"
              value="4"
              c:identifier="AS_PROVIDE_KIND_MODALIAS">
        <doc xml:space="preserve">A hardware modalias</doc>
      </member>
      <member name="firmware_runtime"
              value="5"
              c:identifier="AS_PROVIDE_KIND_FIRMWARE_RUNTIME">
        <doc xml:space="preserve">A runtime-loadable firmware file</doc>
      </member>
      <member name="python2" value="6" c:identifier="AS_PROVIDE_KIND_PYTHON2">
        <doc xml:space="preserve">A Python 2 module</doc>
      </member>
      <member name="python3" value="7" c:identifier="AS_PROVIDE_KIND_PYTHON3">
        <doc xml:space="preserve">A Python 3 module</doc>
      </member>
      <member name="dbus_session"
              value="8"
              c:identifier="AS_PROVIDE_KIND_DBUS_SESSION">
        <doc xml:space="preserve">A D-Bus session service</doc>
      </member>
      <member name="dbus_system"
              value="9"
              c:identifier="AS_PROVIDE_KIND_DBUS_SYSTEM">
        <doc xml:space="preserve">A D-Bus system service</doc>
      </member>
      <member name="firmware_flashed"
              value="10"
              c:identifier="AS_PROVIDE_KIND_FIRMWARE_FLASHED">
        <doc xml:space="preserve">A flashed firmware GUID</doc>
      </member>
      <member name="id" value="11" c:identifier="AS_PROVIDE_KIND_ID">
        <doc xml:space="preserve">An AppStream component ID</doc>
      </member>
    </enumeration>
    <class name="Release"
           c:symbol-prefix="release"
           c:type="AsRelease"
           parent="GObject.Object"
           glib:type-name="AsRelease"
           glib:get-type="as_release_get_type"
           glib:type-struct="ReleaseClass">
      <constructor name="new" c:identifier="as_release_new" version="0.1.0">
        <doc xml:space="preserve">Creates a new #AsRelease.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsRelease</doc>
          <type name="Release" c:type="AsRelease*"/>
        </return-value>
      </constructor>
      <function name="state_from_string"
                c:identifier="as_release_state_from_string"
                version="0.6.6">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #AsReleaseState, e.g. %AS_RELEASE_STATE_INSTALLED.</doc>
          <type name="ReleaseState" c:type="AsReleaseState"/>
        </return-value>
        <parameters>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">a string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="state_to_string"
                c:identifier="as_release_state_to_string"
                version="0.6.6">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @state, or %NULL for unknown</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">the #AsReleaseState, e.g. %AS_RELEASE_STATE_INSTALLED</doc>
            <type name="ReleaseState" c:type="AsReleaseState"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_checksum"
              c:identifier="as_release_add_checksum"
              version="0.4.2">
        <doc xml:space="preserve">Adds a release checksum.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve">a #AsChecksum instance.</doc>
            <type name="Checksum" c:type="AsChecksum*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_location"
              c:identifier="as_release_add_location"
              version="0.3.5">
        <doc xml:space="preserve">Adds a release location.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">the location string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_blob"
              c:identifier="as_release_get_blob"
              version="0.5.2">
        <doc xml:space="preserve">Gets the release blob, which is typically firmware file data.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GBytes, or %NULL for not set</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">a filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_checksum_by_fn"
              c:identifier="as_release_get_checksum_by_fn"
              version="0.4.2">
        <doc xml:space="preserve">Gets the checksum for a release.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #AsChecksum, or %NULL for not found</doc>
          <type name="Checksum" c:type="AsChecksum*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="fn" transfer-ownership="none">
            <doc xml:space="preserve">a file basename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_checksum_by_target"
              c:identifier="as_release_get_checksum_by_target"
              version="0.4.2">
        <doc xml:space="preserve">Gets the checksum for a release.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #AsChecksum, or %NULL for not found</doc>
          <type name="Checksum" c:type="AsChecksum*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">a #AsChecksumTarget, e.g. %AS_CHECKSUM_TARGET_CONTAINER</doc>
            <type name="ChecksumTarget" c:type="AsChecksumTarget"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_checksums"
              c:identifier="as_release_get_checksums"
              version="0.4.2">
        <doc xml:space="preserve">Gets the release checksums.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">list of checksums</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Checksum"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="as_release_get_description"
              version="0.1.0">
        <doc xml:space="preserve">Gets the release description markup for a given locale.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">markup, or %NULL for not set or invalid</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_location_default"
              c:identifier="as_release_get_location_default"
              version="0.3.5">
        <doc xml:space="preserve">Gets the default release location, typically a URL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL for not set or invalid</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_locations"
              c:identifier="as_release_get_locations"
              version="0.3.5">
        <doc xml:space="preserve">Gets the release locations, typically URLs.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">list of locations</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size"
              c:identifier="as_release_get_size"
              version="0.5.2">
        <doc xml:space="preserve">Gets the release size.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The size in bytes, or 0 for unknown.</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">a #AsSizeKind, e.g. #AS_SIZE_KIND_DOWNLOAD</doc>
            <type name="SizeKind" c:type="AsSizeKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_state"
              c:identifier="as_release_get_state"
              version="0.5.8">
        <doc xml:space="preserve">Gets the release state.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">enumberated value, or %AS_RELEASE_STATE_UNKNOWN for not set or invalid</doc>
          <type name="ReleaseState" c:type="AsReleaseState"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_timestamp"
              c:identifier="as_release_get_timestamp"
              version="0.1.0">
        <doc xml:space="preserve">Gets the release timestamp.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">timestamp, or 0 for unset</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_urgency"
              c:identifier="as_release_get_urgency"
              version="0.5.1">
        <doc xml:space="preserve">Gets the release urgency.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">enumberated value, or %AS_URGENCY_KIND_UNKNOWN for not set or invalid</doc>
          <type name="UrgencyKind" c:type="AsUrgencyKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version"
              c:identifier="as_release_get_version"
              version="0.1.0">
        <doc xml:space="preserve">Gets the release version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string, or %NULL for not set or invalid</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_blob"
              c:identifier="as_release_set_blob"
              version="0.5.2">
        <doc xml:space="preserve">Sets a release blob, which is typically firmware data or a detached signature.

NOTE: This is not stored in the XML file, and is only available in-memory.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">a filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="blob" transfer-ownership="none">
            <doc xml:space="preserve">the #GBytes data blob</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="as_release_set_description"
              version="0.1.0">
        <doc xml:space="preserve">Sets the description release markup.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve">the description markup.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size"
              c:identifier="as_release_set_size"
              version="0.5.2">
        <doc xml:space="preserve">Sets the release size.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">a #AsSizeKind, e.g. #AS_SIZE_KIND_DOWNLOAD</doc>
            <type name="SizeKind" c:type="AsSizeKind"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">a size in bytes, or 0 for unknown</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_state"
              c:identifier="as_release_set_state"
              version="0.5.8">
        <doc xml:space="preserve">Sets the release state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">the release state, e.g. %AS_RELEASE_STATE_INSTALLED</doc>
            <type name="ReleaseState" c:type="AsReleaseState"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_timestamp"
              c:identifier="as_release_set_timestamp"
              version="0.1.0">
        <doc xml:space="preserve">Sets the release timestamp.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve">the timestamp value.</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_urgency"
              c:identifier="as_release_set_urgency"
              version="0.5.1">
        <doc xml:space="preserve">Sets the release urgency.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="urgency" transfer-ownership="none">
            <doc xml:space="preserve">the release urgency, e.g. %AS_URGENCY_KIND_CRITICAL</doc>
            <type name="UrgencyKind" c:type="AsUrgencyKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_version"
              c:identifier="as_release_set_version"
              version="0.1.0">
        <doc xml:space="preserve">Sets the release version.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">the version string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="vercmp" c:identifier="as_release_vercmp" version="0.4.2">
        <doc xml:space="preserve">Compares two release.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">-1 if rel1 &gt; rel2, +1 if rel1 &lt; rel2, 0 otherwise</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="rel1" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </instance-parameter>
          <parameter name="rel2" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRelease instance.</doc>
            <type name="Release" c:type="AsRelease*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ReleaseClass"
            c:type="AsReleaseClass"
            glib:is-gtype-struct-for="Release">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ReleaseState" c:type="AsReleaseState">
      <doc xml:space="preserve">The release state.</doc>
      <member name="unknown" value="0" c:identifier="AS_RELEASE_STATE_UNKNOWN">
        <doc xml:space="preserve">Unknown state</doc>
      </member>
      <member name="installed"
              value="1"
              c:identifier="AS_RELEASE_STATE_INSTALLED">
        <doc xml:space="preserve">Release is installed</doc>
      </member>
      <member name="available"
              value="2"
              c:identifier="AS_RELEASE_STATE_AVAILABLE">
        <doc xml:space="preserve">Release is available</doc>
      </member>
    </enumeration>
    <class name="Require"
           c:symbol-prefix="require"
           c:type="AsRequire"
           parent="GObject.Object"
           glib:type-name="AsRequire"
           glib:get-type="as_require_get_type"
           glib:type-struct="RequireClass">
      <constructor name="new" c:identifier="as_require_new" version="0.6.7">
        <doc xml:space="preserve">Creates a new #AsRequire.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsRequire</doc>
          <type name="Require" c:type="AsRequire*"/>
        </return-value>
      </constructor>
      <function name="compare_from_string"
                c:identifier="as_require_compare_from_string"
                version="0.6.7">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsRequireCompare, or
		     %AS_REQUIRE_COMPARE_UNKNOWN for unknown.</doc>
          <type name="RequireCompare" c:type="AsRequireCompare"/>
        </return-value>
        <parameters>
          <parameter name="compare" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="compare_to_string"
                c:identifier="as_require_compare_to_string"
                version="0.6.7">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @compare</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="compare" transfer-ownership="none">
            <doc xml:space="preserve">the #AsRequireCompare.</doc>
            <type name="RequireCompare" c:type="AsRequireCompare"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_from_string"
                c:identifier="as_require_kind_from_string"
                version="0.6.7">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsRequireKind, or %AS_REQUIRE_KIND_UNKNOWN for unknown.</doc>
          <type name="RequireKind" c:type="AsRequireKind"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="as_require_kind_to_string"
                version="0.6.7">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @kind</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsRequireKind.</doc>
            <type name="RequireKind" c:type="AsRequireKind"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_compare"
              c:identifier="as_require_get_compare"
              version="0.6.7">
        <doc xml:space="preserve">Gets the require version comparison type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsRequireKind</doc>
          <type name="RequireCompare" c:type="AsRequireCompare"/>
        </return-value>
        <parameters>
          <instance-parameter name="require" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRequire instance.</doc>
            <type name="Require" c:type="AsRequire*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind"
              c:identifier="as_require_get_kind"
              version="0.6.7">
        <doc xml:space="preserve">Gets the require kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsRequireKind</doc>
          <type name="RequireKind" c:type="AsRequireKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="require" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRequire instance.</doc>
            <type name="Require" c:type="AsRequire*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value"
              c:identifier="as_require_get_value"
              version="0.6.7">
        <doc xml:space="preserve">Gets the require value if set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the value, e.g. "bootloader"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="require" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRequire instance.</doc>
            <type name="Require" c:type="AsRequire*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version"
              c:identifier="as_require_get_version"
              version="0.6.7">
        <doc xml:space="preserve">Gets the require version if set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the version, e.g. "0.1.2"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="require" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRequire instance.</doc>
            <type name="Require" c:type="AsRequire*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_compare"
              c:identifier="as_require_set_compare"
              version="0.6.7">
        <doc xml:space="preserve">Sets the require version comparison type.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="require" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRequire instance.</doc>
            <type name="Require" c:type="AsRequire*"/>
          </instance-parameter>
          <parameter name="compare" transfer-ownership="none">
            <doc xml:space="preserve">the #AsRequireKind, e.g. %AS_REQUIRE_KIND_ID.</doc>
            <type name="RequireCompare" c:type="AsRequireCompare"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind"
              c:identifier="as_require_set_kind"
              version="0.6.7">
        <doc xml:space="preserve">Sets the require kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="require" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRequire instance.</doc>
            <type name="Require" c:type="AsRequire*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsRequireKind, e.g. %AS_REQUIRE_KIND_ID.</doc>
            <type name="RequireKind" c:type="AsRequireKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value"
              c:identifier="as_require_set_value"
              version="0.6.7">
        <doc xml:space="preserve">Sets the require value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="require" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRequire instance.</doc>
            <type name="Require" c:type="AsRequire*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">an require version, e.g. `firmware`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_version"
              c:identifier="as_require_set_version"
              version="0.6.7">
        <doc xml:space="preserve">Sets the require version.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="require" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRequire instance.</doc>
            <type name="Require" c:type="AsRequire*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">an version number, e.g. `0.1.2`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="version_compare"
              c:identifier="as_require_version_compare"
              version="0.6.7"
              throws="1">
        <doc xml:space="preserve">Compares the version number of the requirement with a predicate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the predicate was true</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="require" transfer-ownership="none">
            <doc xml:space="preserve">a #AsRequire instance.</doc>
            <type name="Require" c:type="AsRequire*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">a version number, e.g. `0.1.3`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="RequireClass"
            c:type="AsRequireClass"
            glib:is-gtype-struct-for="Require">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="RequireCompare" c:type="AsRequireCompare">
      <doc xml:space="preserve">The relational comparison type.</doc>
      <member name="unknown"
              value="0"
              c:identifier="AS_REQUIRE_COMPARE_UNKNOWN">
        <doc xml:space="preserve">Comparison predicate invalid or not known</doc>
      </member>
      <member name="eq" value="1" c:identifier="AS_REQUIRE_COMPARE_EQ">
        <doc xml:space="preserve">Equal to</doc>
      </member>
      <member name="ne" value="2" c:identifier="AS_REQUIRE_COMPARE_NE">
        <doc xml:space="preserve">Not equal to</doc>
      </member>
      <member name="lt" value="3" c:identifier="AS_REQUIRE_COMPARE_LT">
        <doc xml:space="preserve">Less than</doc>
      </member>
      <member name="gt" value="4" c:identifier="AS_REQUIRE_COMPARE_GT">
        <doc xml:space="preserve">Greater than</doc>
      </member>
      <member name="le" value="5" c:identifier="AS_REQUIRE_COMPARE_LE">
        <doc xml:space="preserve">Less than or equal to</doc>
      </member>
      <member name="ge" value="6" c:identifier="AS_REQUIRE_COMPARE_GE">
        <doc xml:space="preserve">Greater than or equal to</doc>
      </member>
      <member name="glob" value="7" c:identifier="AS_REQUIRE_COMPARE_GLOB">
        <doc xml:space="preserve">Filename glob, e.g. `test*`</doc>
      </member>
      <member name="regex" value="8" c:identifier="AS_REQUIRE_COMPARE_REGEX">
        <doc xml:space="preserve">A regular expression, e.g. `fw[0-255]`</doc>
      </member>
    </enumeration>
    <enumeration name="RequireKind" c:type="AsRequireKind">
      <doc xml:space="preserve">The require type.</doc>
      <member name="unknown" value="0" c:identifier="AS_REQUIRE_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="id" value="1" c:identifier="AS_REQUIRE_KIND_ID">
        <doc xml:space="preserve">Component ID</doc>
      </member>
      <member name="firmware"
              value="2"
              c:identifier="AS_REQUIRE_KIND_FIRMWARE">
        <doc xml:space="preserve">Device firmware version</doc>
      </member>
      <member name="hardware"
              value="3"
              c:identifier="AS_REQUIRE_KIND_HARDWARE">
        <doc xml:space="preserve">Hardware device, typically a GUID</doc>
      </member>
    </enumeration>
    <class name="Review"
           c:symbol-prefix="review"
           c:type="AsReview"
           parent="GObject.Object"
           glib:type-name="AsReview"
           glib:get-type="as_review_get_type"
           glib:type-struct="ReviewClass">
      <constructor name="new" c:identifier="as_review_new" version="0.6.1">
        <doc xml:space="preserve">Creates a new #AsReview.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsReview</doc>
          <type name="Review" c:type="AsReview*"/>
        </return-value>
      </constructor>
      <method name="add_flags"
              c:identifier="as_review_add_flags"
              version="0.6.1">
        <doc xml:space="preserve">Adds flags to an existing review without replacing the other flags.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReviewFlags, e.g. %AS_REVIEW_FLAG_SELF</doc>
            <type name="ReviewFlags" c:type="AsReviewFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_metadata"
              c:identifier="as_review_add_metadata"
              version="0.6.1">
        <doc xml:space="preserve">Adds metadata to the review object.
It is left for the the plugin to use this method as required, but a
typical use would be to store some secure authentication token.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">a string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">a string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="as_review_equal" version="0.6.1">
        <doc xml:space="preserve">Checks if two reviews are the same.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="review1" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview instance.</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="review2" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview instance.</doc>
            <type name="Review" c:type="AsReview*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_date"
              c:identifier="as_review_get_date"
              version="0.6.1">
        <doc xml:space="preserve">Gets the date the review was originally submitted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GDateTime, or %NULL for unset</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="as_review_get_description"
              version="0.6.1">
        <doc xml:space="preserve">Gets the multi-line review text that forms the body of the review.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the string, or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags"
              c:identifier="as_review_get_flags"
              version="0.6.1">
        <doc xml:space="preserve">Gets any flags set on the review, for example if the user has already
voted on the review or if the user wrote the review themselves.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsReviewFlags, e.g. %AS_REVIEW_FLAG_SELF</doc>
          <type name="ReviewFlags" c:type="AsReviewFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="as_review_get_id" version="0.6.1">
        <doc xml:space="preserve">Gets the review id.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the review identifier, e.g. "deadbeef"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_locale"
              c:identifier="as_review_get_locale"
              version="0.6.1">
        <doc xml:space="preserve">Gets the locale for the review.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the string, or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata_item"
              c:identifier="as_review_get_metadata_item"
              version="0.6.1">
        <doc xml:space="preserve">Gets some metadata from a review object.
It is left for the the plugin to use this method as required, but a
typical use would be to retrieve some secure authentication token.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string value, or %NULL for not found</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">a string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_priority"
              c:identifier="as_review_get_priority"
              version="0.6.1">
        <doc xml:space="preserve">This allows the UI to sort reviews into the correct order.
Higher numbers indicate a more important or relevant review.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the review priority, or 0 for unset.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rating"
              c:identifier="as_review_get_rating"
              version="0.6.1">
        <doc xml:space="preserve">Gets the star rating of the review, where 100 is 5 stars.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">integer as a percentage, or 0 for unset</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reviewer_id"
              c:identifier="as_review_get_reviewer_id"
              version="0.6.1">
        <doc xml:space="preserve">Gets the name of the reviewer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the reviewer ID, e.g. "deadbeef", or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reviewer_name"
              c:identifier="as_review_get_reviewer_name"
              version="0.6.1">
        <doc xml:space="preserve">Gets the name of the reviewer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the reviewer name, e.g. "David Smith", or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_summary"
              c:identifier="as_review_get_summary"
              version="0.6.1">
        <doc xml:space="preserve">Gets the review summary.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the one-line summary, e.g. "Awesome application"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version"
              c:identifier="as_review_get_version"
              version="0.6.1">
        <doc xml:space="preserve">Gets the version string for the application being reviewed..</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the version string, e.g. "0.1.2", or %NULL for unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_date"
              c:identifier="as_review_set_date"
              version="0.6.1">
        <doc xml:space="preserve">Sets the date the review was originally submitted.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="date" transfer-ownership="none">
            <doc xml:space="preserve">a #GDateTime, or %NULL</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="as_review_set_description"
              version="0.6.1">
        <doc xml:space="preserve">Sets the multi-line review text that forms the body of the review.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve">multi-line description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags"
              c:identifier="as_review_set_flags"
              version="0.6.1">
        <doc xml:space="preserve">Gets any flags set on the review, for example if the user has already
voted on the review or if the user wrote the review themselves.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReviewFlags, e.g. %AS_REVIEW_FLAG_SELF</doc>
            <type name="ReviewFlags" c:type="AsReviewFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id" c:identifier="as_review_set_id" version="0.6.1">
        <doc xml:space="preserve">Sets the review identifier that is unique to each review.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">review identifier, e.g. "deadbeef"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_locale"
              c:identifier="as_review_set_locale"
              version="0.6.1">
        <doc xml:space="preserve">Sets the locale for the review.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">locale, e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_priority"
              c:identifier="as_review_set_priority"
              version="0.6.1">
        <doc xml:space="preserve">Sets the priority for the review, where positive numbers indicate
a better review for the specific user.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:space="preserve">a priority value</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rating"
              c:identifier="as_review_set_rating"
              version="0.6.1">
        <doc xml:space="preserve">Sets the star rating of the review, where 100 is 5 stars..</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="rating" transfer-ownership="none">
            <doc xml:space="preserve">a integer as a percentage, or 0 for unset</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reviewer_id"
              c:identifier="as_review_set_reviewer_id"
              version="0.6.1">
        <doc xml:space="preserve">Sets the name of the reviewer, which can be left unset.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="reviewer_id" transfer-ownership="none">
            <doc xml:space="preserve">the reviewer ID, e.g. "deadbeef"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reviewer_name"
              c:identifier="as_review_set_reviewer_name"
              version="0.6.1">
        <doc xml:space="preserve">Sets the name of the reviewer, which can be left unset.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="reviewer_name" transfer-ownership="none">
            <doc xml:space="preserve">the reviewer name, e.g. "David Smith"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_summary"
              c:identifier="as_review_set_summary"
              version="0.6.1">
        <doc xml:space="preserve">Sets the one-line summary that may be displayed in bold.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="summary" transfer-ownership="none">
            <doc xml:space="preserve">a one-line summary, e.g. "Awesome application"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_version"
              c:identifier="as_review_set_version"
              version="0.6.1">
        <doc xml:space="preserve">Sets the version string for the application being reviewed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="review" transfer-ownership="none">
            <doc xml:space="preserve">a #AsReview</doc>
            <type name="Review" c:type="AsReview*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">a version string, e.g. "0.1.2"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="date"
                version="0.6.1"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="Review"/>
      </property>
      <property name="description"
                version="0.6.1"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="flags"
                version="0.6.1"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="id"
                version="0.6.1"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="locale"
                version="0.6.1"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="rating"
                version="0.6.1"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="reviewer-id"
                version="0.6.1"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="reviewer-name"
                version="0.6.1"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="summary"
                version="0.6.1"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="version"
                version="0.6.1"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ReviewClass"
            c:type="AsReviewClass"
            glib:is-gtype-struct-for="Review">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <bitfield name="ReviewFlags" version="0.6.1" c:type="AsReviewFlags">
      <doc xml:space="preserve">The flags for the review.</doc>
      <member name="none" value="0" c:identifier="AS_REVIEW_FLAG_NONE">
        <doc xml:space="preserve">No special flags set</doc>
      </member>
      <member name="self" value="1" c:identifier="AS_REVIEW_FLAG_SELF">
        <doc xml:space="preserve">The user wrote the review themselves</doc>
      </member>
      <member name="voted" value="2" c:identifier="AS_REVIEW_FLAG_VOTED">
        <doc xml:space="preserve">The user voted on the review</doc>
      </member>
    </bitfield>
    <class name="Screenshot"
           c:symbol-prefix="screenshot"
           c:type="AsScreenshot"
           parent="GObject.Object"
           glib:type-name="AsScreenshot"
           glib:get-type="as_screenshot_get_type"
           glib:type-struct="ScreenshotClass">
      <constructor name="new" c:identifier="as_screenshot_new" version="0.1.0">
        <doc xml:space="preserve">Creates a new #AsScreenshot.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsScreenshot</doc>
          <type name="Screenshot" c:type="AsScreenshot*"/>
        </return-value>
      </constructor>
      <function name="kind_from_string"
                c:identifier="as_screenshot_kind_from_string"
                version="0.1.0">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a %AsScreenshotKind, or
                          %AS_SCREENSHOT_KIND_UNKNOWN if not known.</doc>
          <type name="ScreenshotKind" c:type="AsScreenshotKind"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="as_screenshot_kind_to_string"
                version="0.1.0">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @kind</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsScreenshotKind.</doc>
            <type name="ScreenshotKind" c:type="AsScreenshotKind"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_image"
              c:identifier="as_screenshot_add_image"
              version="0.1.0">
        <doc xml:space="preserve">Adds an image to the screenshot.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
          <parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">a #AsImage instance.</doc>
            <type name="Image" c:type="AsImage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="as_screenshot_equal" version="0.5.7">
        <doc xml:space="preserve">Checks if two screenshots are the same.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot1" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
          <parameter name="screenshot2" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_caption"
              c:identifier="as_screenshot_get_caption"
              version="0.1.0">
        <doc xml:space="preserve">Gets the image caption for a specific locale.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the caption</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_image"
              c:identifier="as_screenshot_get_image"
              version="0.2.2">
        <doc xml:space="preserve">Gets the AsImage closest to the target size. The #AsImage may not actually
be the requested size, and the application may have to pad / rescale the
image to make it fit.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #AsImage, or %NULL</doc>
          <type name="Image" c:type="AsImage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">target width</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">target height</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_image_for_locale"
              c:identifier="as_screenshot_get_image_for_locale"
              version="0.5.14">
        <doc xml:space="preserve">Gets the AsImage closest to the target size with the specified locale.
The #AsImage may not actually be the requested size, and the application may
have to pad / rescale the image to make it fit.

FIXME: This function assumes the images are ordered in preference order, e.g.
"en_GB -&gt; en -&gt; NULL"</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #AsImage, or %NULL</doc>
          <type name="Image" c:type="AsImage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">locale, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">target width</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">target height</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_images"
              c:identifier="as_screenshot_get_images"
              version="0.1.0">
        <doc xml:space="preserve">Gets the images included in the screenshot of all sizes and locales.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Image"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_images_for_locale"
              c:identifier="as_screenshot_get_images_for_locale"
              version="0.5.14">
        <doc xml:space="preserve">Returns all images of all sizes that are compatible with a specific locale.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Image"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">a locale, e.g. `en_GB`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_kind"
              c:identifier="as_screenshot_get_kind"
              version="0.1.0">
        <doc xml:space="preserve">Gets the screenshot kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsScreenshotKind</doc>
          <type name="ScreenshotKind" c:type="AsScreenshotKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_priority"
              c:identifier="as_screenshot_get_priority"
              version="0.3.1">
        <doc xml:space="preserve">Gets the screenshot priority.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a priority value</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source"
              c:identifier="as_screenshot_get_source"
              version="0.1.6">
        <doc xml:space="preserve">Gets the source image (the unscaled version) for the screenshot</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #AsImage, or %NULL</doc>
          <type name="Image" c:type="AsImage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_caption"
              c:identifier="as_screenshot_set_caption"
              version="0.1.0">
        <doc xml:space="preserve">Sets a caption on the screenshot for a specific locale.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">the locale, or %NULL. e.g. "en_GB"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="caption" transfer-ownership="none">
            <doc xml:space="preserve">the caption text.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind"
              c:identifier="as_screenshot_set_kind"
              version="0.1.0">
        <doc xml:space="preserve">Sets the screenshot kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsScreenshotKind.</doc>
            <type name="ScreenshotKind" c:type="AsScreenshotKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_priority"
              c:identifier="as_screenshot_set_priority"
              version="0.3.1">
        <doc xml:space="preserve">Sets the screenshot priority. Higher numbers are better.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve">a #AsScreenshot instance.</doc>
            <type name="Screenshot" c:type="AsScreenshot*"/>
          </instance-parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:space="preserve">the priority value.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ScreenshotClass"
            c:type="AsScreenshotClass"
            glib:is-gtype-struct-for="Screenshot">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ScreenshotKind" c:type="AsScreenshotKind">
      <doc xml:space="preserve">The screenshot type.</doc>
      <member name="unknown"
              value="0"
              c:identifier="AS_SCREENSHOT_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="normal" value="1" c:identifier="AS_SCREENSHOT_KIND_NORMAL">
        <doc xml:space="preserve">Optional screenshot</doc>
      </member>
      <member name="default"
              value="2"
              c:identifier="AS_SCREENSHOT_KIND_DEFAULT">
        <doc xml:space="preserve">Screenshot to show by default</doc>
      </member>
    </enumeration>
    <enumeration name="SizeKind" c:type="AsSizeKind">
      <doc xml:space="preserve">The release size kind.</doc>
      <member name="unknown" value="0" c:identifier="AS_SIZE_KIND_UNKNOWN">
        <doc xml:space="preserve">Not known</doc>
      </member>
      <member name="installed" value="1" c:identifier="AS_SIZE_KIND_INSTALLED">
        <doc xml:space="preserve">Installed size</doc>
      </member>
      <member name="download" value="2" c:identifier="AS_SIZE_KIND_DOWNLOAD">
        <doc xml:space="preserve">Download size</doc>
      </member>
    </enumeration>
    <class name="Store"
           c:symbol-prefix="store"
           c:type="AsStore"
           parent="GObject.Object"
           glib:type-name="AsStore"
           glib:get-type="as_store_get_type"
           glib:type-struct="StoreClass">
      <constructor name="new" c:identifier="as_store_new" version="0.1.0">
        <doc xml:space="preserve">Creates a new #AsStore.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsStore</doc>
          <type name="Store" c:type="AsStore*"/>
        </return-value>
      </constructor>
      <function name="error_quark"
                c:identifier="as_store_error_quark"
                version="0.1.2">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="app_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <type name="App" c:type="AsApp*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="app_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <type name="App" c:type="AsApp*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="app_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <type name="App" c:type="AsApp*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="add_app" c:identifier="as_store_add_app" version="0.1.0">
        <doc xml:space="preserve">Adds an application to the store. If a lower priority application has already
been added then this new application will replace it.

Additionally only applications where the kind is known will be added.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_apps" c:identifier="as_store_add_apps" version="0.6.4">
        <doc xml:space="preserve">Adds several applications to the store.

Additionally only applications where the kind is known will be added.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="apps" transfer-ownership="none">
            <doc xml:space="preserve">an array of apps</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="App"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="add_filter"
              c:identifier="as_store_add_filter"
              version="0.3.5">
        <doc xml:space="preserve">Adds a filter to the store so that only components of this type are
loaded into the store. This may be useful if the client is only interested
in certain types of component, or not interested in loading components
it cannot process.

If no filter is set then all types of components are loaded.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">a #AsAppKind, e.g. %AS_APP_KIND_FIRMWARE</doc>
            <type name="AppKind" c:type="AsAppKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_metadata_index"
              c:identifier="as_store_add_metadata_index"
              version="0.3.0">
        <doc xml:space="preserve">Adds a metadata index key.

NOTE: if applications are removed *all* the indexes will be invalid and
will have to be re-added.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the metadata key.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_icons"
              c:identifier="as_store_convert_icons"
              version="0.3.1"
              throws="1">
        <doc xml:space="preserve">Converts all the icons in the store to a specific kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the AsIconKind, e.g. %AS_ICON_KIND_EMBEDDED.</doc>
            <type name="IconKind" c:type="AsIconKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="from_bytes"
              c:identifier="as_store_from_bytes"
              version="0.5.2"
              throws="1">
        <doc xml:space="preserve">Parses an appstream store presented as an archive. This is typically
a .cab file containing firmware files.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="bytes" transfer-ownership="none">
            <doc xml:space="preserve">a #GBytes.</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="from_file"
              c:identifier="as_store_from_file"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve">Parses an AppStream XML or DEP-11 YAML file and adds any valid applications
to the store.

If the root node does not have a 'origin' attribute, then the method
as_store_set_origin() should be called *before* this function if cached
icons are required.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="icon_root" transfer-ownership="none">
            <doc xml:space="preserve">the icon path, or %NULL for the default (unused)</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.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="from_xml"
              c:identifier="as_store_from_xml"
              version="0.1.1"
              throws="1">
        <doc xml:space="preserve">Parses AppStream XML file and adds any valid applications to the store.

If the root node does not have a 'origin' attribute, then the method
as_store_set_origin() should be called *before* this function if cached
icons are required.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">XML data</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="icon_root" transfer-ownership="none">
            <doc xml:space="preserve">the icon path, or %NULL for the default.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_add_flags"
              c:identifier="as_store_get_add_flags"
              version="0.2.2">
        <doc xml:space="preserve">Gets the flags used for adding applications to the store.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsStoreAddFlags, or 0 if unset</doc>
          <type name="StoreAddFlags" c:type="AsStoreAddFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_api_version"
              c:identifier="as_store_get_api_version"
              version="0.1.1">
        <doc xml:space="preserve">Gets the AppStream API version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsNodeInsertFlags, or 0 if unset</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_app_by_id"
              c:identifier="as_store_get_app_by_id"
              version="0.1.0">
        <doc xml:space="preserve">Finds an application in the store by ID.
If more than one application exists matching the specific ID,
(for instance when using %AS_STORE_ADD_FLAG_USE_UNIQUE_ID) then the
first item that was added is returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsApp or %NULL</doc>
          <type name="App" c:type="AsApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the application full ID.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_app_by_id_ignore_prefix"
              c:identifier="as_store_get_app_by_id_ignore_prefix"
              version="0.5.12">
        <doc xml:space="preserve">Finds an application in the store ignoring the prefix type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsApp or %NULL</doc>
          <type name="App" c:type="AsApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the application full ID.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_app_by_id_with_fallbacks"
              c:identifier="as_store_get_app_by_id_with_fallbacks"
              version="0.4.1">
        <doc xml:space="preserve">Finds an application in the store by either by the current desktop ID
or a desktop ID that it has used previously. This allows upstream software
to change their ID (e.g. from cheese.desktop to org.gnome.Cheese.desktop)
without us duplicating entries in the software center.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsApp or %NULL</doc>
          <type name="App" c:type="AsApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the application full ID.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_app_by_pkgname"
              c:identifier="as_store_get_app_by_pkgname"
              version="0.1.0">
        <doc xml:space="preserve">Finds an application in the store by package name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsApp or %NULL</doc>
          <type name="App" c:type="AsApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="pkgname" transfer-ownership="none">
            <doc xml:space="preserve">the package name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_app_by_pkgnames"
              c:identifier="as_store_get_app_by_pkgnames"
              version="0.4.1">
        <doc xml:space="preserve">Finds an application in the store by any of the possible package names.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsApp or %NULL</doc>
          <type name="App" c:type="AsApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="pkgnames" transfer-ownership="none">
            <doc xml:space="preserve">the package names to find.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_app_by_provide"
              c:identifier="as_store_get_app_by_provide"
              version="0.5.0">
        <doc xml:space="preserve">Finds an application in the store by something that it provides.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsApp or %NULL</doc>
          <type name="App" c:type="AsApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsProvideKind</doc>
            <type name="ProvideKind" c:type="AsProvideKind"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the provide value, e.g. "com.hughski.ColorHug2.firmware"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_app_by_unique_id"
              c:identifier="as_store_get_app_by_unique_id"
              version="0.6.1">
        <doc xml:space="preserve">Finds an application in the store by matching the unique ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsApp or %NULL</doc>
          <type name="App" c:type="AsApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="unique_id" transfer-ownership="none">
            <doc xml:space="preserve">the application unique ID, e.g.
     `user/flatpak/gnome-apps-nightly/app/gimp.desktop/master`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="search_flags" transfer-ownership="none">
            <doc xml:space="preserve">the search flags, e.g. %AS_STORE_SEARCH_FLAG_USE_WILDCARDS</doc>
            <type name="StoreSearchFlags" c:type="AsStoreSearchFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_apps" c:identifier="as_store_get_apps" version="0.1.0">
        <doc xml:space="preserve">Gets an array of all the valid applications in the store.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="App"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_apps_by_id"
              c:identifier="as_store_get_apps_by_id"
              version="0.5.12">
        <doc xml:space="preserve">Gets an array of all the applications that match a specific ID,
ignoring the prefix type.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="App"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the application full ID.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_apps_by_id_merge"
              c:identifier="as_store_get_apps_by_id_merge"
              version="0.7.0">
        <doc xml:space="preserve">Gets an array of all the merge applications that match a specific ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="App"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the application full ID.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_apps_by_metadata"
              c:identifier="as_store_get_apps_by_metadata"
              version="0.1.4">
        <doc xml:space="preserve">Gets an array of all the applications that match a specific metadata element.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">an array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="App"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">metadata key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">metadata value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_builder_id"
              c:identifier="as_store_get_builder_id"
              version="0.2.5">
        <doc xml:space="preserve">Gets the metadata builder identifier, which is used to work out if old
metadata is compatible with this builder.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the builder_id string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_destdir"
              c:identifier="as_store_get_destdir"
              version="0.2.4">
        <doc xml:space="preserve">Gets the destdir, which is used to prefix usr.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the destdir path, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_origin"
              c:identifier="as_store_get_origin"
              version="0.1.1">
        <doc xml:space="preserve">Gets the metadata origin, which is used to locate icons.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the origin string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_match"
              c:identifier="as_store_get_search_match"
              version="0.6.13">
        <doc xml:space="preserve">Gets the token match fields. The bitfield given here is used to choose what
is included in the token cache.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsAppSearchMatch, e.g. %AS_APP_SEARCH_MATCH_PKGNAME</doc>
          <type name="AppSearchMatch" c:type="AsAppSearchMatch"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="as_store_get_size" version="0.1.0">
        <doc xml:space="preserve">Gets the size of the store after deduplication and prioritization has
taken place.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of usable applications in the store</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_watch_flags"
              c:identifier="as_store_get_watch_flags"
              version="0.4.2">
        <doc xml:space="preserve">Gets the flags used for adding files to the store.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsStoreWatchFlags, or 0 if unset</doc>
          <type name="StoreWatchFlags" c:type="AsStoreWatchFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load"
              c:identifier="as_store_load"
              version="0.1.2"
              throws="1">
        <doc xml:space="preserve">Loads the store from the default locations.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">#AsStoreLoadFlags, e.g. %AS_STORE_LOAD_FLAG_APP_INFO_SYSTEM</doc>
            <type name="StoreLoadFlags" c:type="AsStoreLoadFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_path"
              c:identifier="as_store_load_path"
              version="0.2.2"
              throws="1">
        <doc xml:space="preserve">Loads the store from a specific path.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">A path to load</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.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_search_cache"
              c:identifier="as_store_load_search_cache"
              version="0.6.5">
        <doc xml:space="preserve">Populates the token cache for all applications in the store. This allows
all the search keywords for all applications in the store to be
pre-processed at one time in multiple threads rather than on demand.

Note: Calling as_app_search_matches() automatically generates the search
cache for the #AsApp object if it has not already been generated.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_all"
              c:identifier="as_store_remove_all"
              version="0.2.5">
        <doc xml:space="preserve">Removes all applications from the store.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_app"
              c:identifier="as_store_remove_app"
              version="0.1.0">
        <doc xml:space="preserve">Removes an application from the store if it exists.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #AsApp instance.</doc>
            <type name="App" c:type="AsApp*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_app_by_id"
              c:identifier="as_store_remove_app_by_id"
              version="0.3.0">
        <doc xml:space="preserve">Removes an application from the store if it exists.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">an application id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_apps_with_veto"
              c:identifier="as_store_remove_apps_with_veto"
              version="0.5.13">
        <doc xml:space="preserve">Removes any applications from the store if they have any vetos.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_filter"
              c:identifier="as_store_remove_filter"
              version="0.3.5">
        <doc xml:space="preserve">Removed a filter from the store so that components of this type are no longer
loaded into the store. This may be useful if the client is only interested
in certain types of component.

If all filters are removed then all types of components are loaded.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">a #AsAppKind, e.g. %AS_APP_KIND_FIRMWARE</doc>
            <type name="AppKind" c:type="AsAppKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_add_flags"
              c:identifier="as_store_set_add_flags"
              version="0.2.2">
        <doc xml:space="preserve">Sets the flags used when adding applications to the store.

NOTE: Using %AS_STORE_ADD_FLAG_PREFER_LOCAL may be a privacy risk depending on
your level of paranoia, and should not be used by default.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="add_flags" transfer-ownership="none">
            <doc xml:space="preserve">the #AsStoreAddFlags, e.g. %AS_STORE_ADD_FLAG_NONE</doc>
            <type name="StoreAddFlags" c:type="AsStoreAddFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_api_version"
              c:identifier="as_store_set_api_version"
              version="0.1.1">
        <doc xml:space="preserve">Sets the AppStream API version.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="api_version" transfer-ownership="none">
            <doc xml:space="preserve">the API version</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_builder_id"
              c:identifier="as_store_set_builder_id"
              version="0.2.5">
        <doc xml:space="preserve">Sets the metadata builder identifier, which is used to work out if old
metadata can be used.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="builder_id" transfer-ownership="none">
            <doc xml:space="preserve">the builder_id, e.g. "appstream-glib:1"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_destdir"
              c:identifier="as_store_set_destdir"
              version="0.2.4">
        <doc xml:space="preserve">Sets the destdir, which is used to prefix usr.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="destdir" transfer-ownership="none">
            <doc xml:space="preserve">the destdir, e.g. "/tmp"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_origin"
              c:identifier="as_store_set_origin"
              version="0.1.1">
        <doc xml:space="preserve">Sets the metadata origin, which is used to locate icons.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="origin" transfer-ownership="none">
            <doc xml:space="preserve">the origin, e.g. "fedora-21"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_match"
              c:identifier="as_store_set_search_match"
              version="0.6.5">
        <doc xml:space="preserve">Sets the token match fields. The bitfield given here is used to choose what
is included in the token cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="search_match" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppSearchMatch, e.g. %AS_APP_SEARCH_MATCH_PKGNAME</doc>
            <type name="AppSearchMatch" c:type="AsAppSearchMatch"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_watch_flags"
              c:identifier="as_store_set_watch_flags"
              version="0.4.2">
        <doc xml:space="preserve">Sets the flags used when adding files to the store.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="watch_flags" transfer-ownership="none">
            <doc xml:space="preserve">the #AsStoreWatchFlags, e.g. %AS_STORE_WATCH_FLAG_NONE</doc>
            <type name="StoreWatchFlags" c:type="AsStoreWatchFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_file"
              c:identifier="as_store_to_file"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve">Outputs an optionally compressed XML file of all the applications in the store.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GString</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">file</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the AsNodeToXmlFlags, e.g. %AS_NODE_INSERT_FLAG_NONE.</doc>
            <type name="NodeToXmlFlags" c:type="AsNodeToXmlFlags"/>
          </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="to_xml" c:identifier="as_store_to_xml" version="0.1.0">
        <doc xml:space="preserve">Outputs an XML representation of all the applications in the store.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GString</doc>
          <type name="GLib.String" c:type="GString*"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the AsNodeToXmlFlags, e.g. %AS_NODE_INSERT_FLAG_NONE.</doc>
            <type name="NodeToXmlFlags" c:type="AsNodeToXmlFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="validate"
              c:identifier="as_store_validate"
              version="0.2.4"
              throws="1">
        <doc xml:space="preserve">Validates infomation in the store for data applicable to the defined
metadata version.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">A list of problems, or %NULL</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Problem"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #AsStore instance.</doc>
            <type name="Store" c:type="AsStore*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the #AsAppValidateFlags to use, e.g. %AS_APP_VALIDATE_FLAG_NONE</doc>
            <type name="AppValidateFlags" c:type="AsAppValidateFlags"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="app-added" when="last" version="0.6.5">
        <doc xml:space="preserve">The ::app-added signal is emitted when a component has been added to
the store.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">the #AsApp instance</doc>
            <type name="App"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="app-changed" when="last" version="0.6.5">
        <doc xml:space="preserve">The ::app-changed signal is emitted when a component has been changed
in the store.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">the #AsApp instance</doc>
            <type name="App"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="app-removed" when="last" version="0.6.5">
        <doc xml:space="preserve">The ::app-removed signal is emitted when a component has been removed
from the store.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">the #AsApp instance</doc>
            <type name="App"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="changed" when="last" version="0.1.2">
        <doc xml:space="preserve">The ::changed signal is emitted when components have been added
or removed from the store.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <bitfield name="StoreAddFlags" c:type="AsStoreAddFlags">
      <doc xml:space="preserve">The flags to use when adding applications to the store.</doc>
      <member name="none" value="0" c:identifier="AS_STORE_ADD_FLAG_NONE">
        <doc xml:space="preserve">No extra flags to use</doc>
      </member>
      <member name="prefer_local"
              value="1"
              c:identifier="AS_STORE_ADD_FLAG_PREFER_LOCAL">
        <doc xml:space="preserve">Local files will be used by default</doc>
      </member>
      <member name="use_unique_id"
              value="2"
              c:identifier="AS_STORE_ADD_FLAG_USE_UNIQUE_ID">
        <doc xml:space="preserve">Allow multiple apps with the same AppStream ID</doc>
      </member>
      <member name="use_merge_heuristic"
              value="4"
              c:identifier="AS_STORE_ADD_FLAG_USE_MERGE_HEURISTIC">
        <doc xml:space="preserve">Use a heuristic when adding merge components</doc>
      </member>
      <member name="only_native_langs"
              value="8"
              c:identifier="AS_STORE_ADD_FLAG_ONLY_NATIVE_LANGS">
        <doc xml:space="preserve">Only load native languages</doc>
      </member>
    </bitfield>
    <record name="StoreClass"
            c:type="AsStoreClass"
            glib:is-gtype-struct-for="Store">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="store" transfer-ownership="none">
              <type name="Store" c:type="AsStore*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="app_added">
        <callback name="app_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="store" transfer-ownership="none">
              <type name="Store" c:type="AsStore*"/>
            </parameter>
            <parameter name="app" transfer-ownership="none">
              <type name="App" c:type="AsApp*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="app_removed">
        <callback name="app_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="store" transfer-ownership="none">
              <type name="Store" c:type="AsStore*"/>
            </parameter>
            <parameter name="app" transfer-ownership="none">
              <type name="App" c:type="AsApp*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="app_changed">
        <callback name="app_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="store" transfer-ownership="none">
              <type name="Store" c:type="AsStore*"/>
            </parameter>
            <parameter name="app" transfer-ownership="none">
              <type name="App" c:type="AsApp*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="StoreError" c:type="AsStoreError">
      <doc xml:space="preserve">The error type.</doc>
      <member name="failed" value="0" c:identifier="AS_STORE_ERROR_FAILED">
        <doc xml:space="preserve">Generic failure</doc>
      </member>
    </enumeration>
    <bitfield name="StoreLoadFlags" c:type="AsStoreLoadFlags">
      <doc xml:space="preserve">The flags to use when loading the store.</doc>
      <member name="none" value="0" c:identifier="AS_STORE_LOAD_FLAG_NONE">
        <doc xml:space="preserve">No extra flags to use</doc>
      </member>
      <member name="app_info_system"
              value="1"
              c:identifier="AS_STORE_LOAD_FLAG_APP_INFO_SYSTEM">
        <doc xml:space="preserve">The system app-info AppStream data</doc>
      </member>
      <member name="app_info_user"
              value="2"
              c:identifier="AS_STORE_LOAD_FLAG_APP_INFO_USER">
        <doc xml:space="preserve">The per-user app-info AppStream data</doc>
      </member>
      <member name="app_install"
              value="4"
              c:identifier="AS_STORE_LOAD_FLAG_APP_INSTALL">
        <doc xml:space="preserve">The ubuntu-specific app-install data (obsolete)</doc>
      </member>
      <member name="appdata"
              value="8"
              c:identifier="AS_STORE_LOAD_FLAG_APPDATA">
        <doc xml:space="preserve">The installed AppData files</doc>
      </member>
      <member name="desktop"
              value="16"
              c:identifier="AS_STORE_LOAD_FLAG_DESKTOP">
        <doc xml:space="preserve">The installed desktop files</doc>
      </member>
      <member name="allow_veto"
              value="32"
              c:identifier="AS_STORE_LOAD_FLAG_ALLOW_VETO">
        <doc xml:space="preserve">Add vetoed applications</doc>
      </member>
      <member name="flatpak_user"
              value="64"
              c:identifier="AS_STORE_LOAD_FLAG_FLATPAK_USER">
        <doc xml:space="preserve">Add flatpak user applications (obsolete)</doc>
      </member>
      <member name="flatpak_system"
              value="128"
              c:identifier="AS_STORE_LOAD_FLAG_FLATPAK_SYSTEM">
        <doc xml:space="preserve">Add flatpak system applications (obsolete)</doc>
      </member>
      <member name="ignore_invalid"
              value="256"
              c:identifier="AS_STORE_LOAD_FLAG_IGNORE_INVALID">
        <doc xml:space="preserve">Ignore invalid files</doc>
      </member>
      <member name="only_uncompressed"
              value="512"
              c:identifier="AS_STORE_LOAD_FLAG_ONLY_UNCOMPRESSED">
        <doc xml:space="preserve">Ignore compressed files</doc>
      </member>
      <member name="only_merge_apps"
              value="1024"
              c:identifier="AS_STORE_LOAD_FLAG_ONLY_MERGE_APPS">
        <doc xml:space="preserve">Ignore non-wildcard matches</doc>
      </member>
    </bitfield>
    <enumeration name="StoreSearchFlags" c:type="AsStoreSearchFlags">
      <doc xml:space="preserve">The flags to use when searching in the store.</doc>
      <member name="none" value="0" c:identifier="AS_STORE_SEARCH_FLAG_NONE">
        <doc xml:space="preserve">No extra flags to use</doc>
      </member>
      <member name="use_wildcards"
              value="1"
              c:identifier="AS_STORE_SEARCH_FLAG_USE_WILDCARDS">
        <doc xml:space="preserve">Process the globs</doc>
      </member>
    </enumeration>
    <enumeration name="StoreWatchFlags" c:type="AsStoreWatchFlags">
      <doc xml:space="preserve">The flags to use when local files are added or removed from the store.</doc>
      <member name="none" value="0" c:identifier="AS_STORE_WATCH_FLAG_NONE">
        <doc xml:space="preserve">No extra flags to use</doc>
      </member>
      <member name="added" value="1" c:identifier="AS_STORE_WATCH_FLAG_ADDED">
        <doc xml:space="preserve">Add applications if files change or are added</doc>
      </member>
      <member name="removed"
              value="2"
              c:identifier="AS_STORE_WATCH_FLAG_REMOVED">
        <doc xml:space="preserve">Remove applications if files are changed or deleted</doc>
      </member>
    </enumeration>
    <class name="Suggest"
           c:symbol-prefix="suggest"
           c:type="AsSuggest"
           parent="GObject.Object"
           glib:type-name="AsSuggest"
           glib:get-type="as_suggest_get_type"
           glib:type-struct="SuggestClass">
      <constructor name="new" c:identifier="as_suggest_new" version="0.6.1">
        <doc xml:space="preserve">Creates a new #AsSuggest.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsSuggest</doc>
          <type name="Suggest" c:type="AsSuggest*"/>
        </return-value>
      </constructor>
      <function name="kind_from_string"
                c:identifier="as_suggest_kind_from_string"
                version="0.6.1">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsSuggestKind, or %AS_SUGGEST_KIND_UNKNOWN for unknown.</doc>
          <type name="SuggestKind" c:type="AsSuggestKind"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="as_suggest_kind_to_string"
                version="0.6.1">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @kind</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsSuggestKind.</doc>
            <type name="SuggestKind" c:type="AsSuggestKind"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_id" c:identifier="as_suggest_add_id" version="0.6.1">
        <doc xml:space="preserve">Add a the suggest application ID.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="suggest" transfer-ownership="none">
            <doc xml:space="preserve">a #AsSuggest instance.</doc>
            <type name="Suggest" c:type="AsSuggest*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">an application ID, e.g. `gimp.desktop`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_ids" c:identifier="as_suggest_get_ids" version="0.6.1">
        <doc xml:space="preserve">Gets the suggest ids if set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GPtrArray, or %NULL</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="suggest" transfer-ownership="none">
            <doc xml:space="preserve">a #AsSuggest instance.</doc>
            <type name="Suggest" c:type="AsSuggest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind"
              c:identifier="as_suggest_get_kind"
              version="0.6.1">
        <doc xml:space="preserve">Gets the suggest kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsSuggestKind</doc>
          <type name="SuggestKind" c:type="AsSuggestKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="suggest" transfer-ownership="none">
            <doc xml:space="preserve">a #AsSuggest instance.</doc>
            <type name="Suggest" c:type="AsSuggest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_kind"
              c:identifier="as_suggest_set_kind"
              version="0.6.1">
        <doc xml:space="preserve">Sets the suggest kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="suggest" transfer-ownership="none">
            <doc xml:space="preserve">a #AsSuggest instance.</doc>
            <type name="Suggest" c:type="AsSuggest*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsSuggestKind, e.g. %AS_SUGGEST_KIND_UPSTREAM.</doc>
            <type name="SuggestKind" c:type="AsSuggestKind"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="SuggestClass"
            c:type="AsSuggestClass"
            glib:is-gtype-struct-for="Suggest">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="SuggestKind" c:type="AsSuggestKind">
      <doc xml:space="preserve">The suggest type.</doc>
      <member name="unknown" value="0" c:identifier="AS_SUGGEST_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="upstream"
              value="1"
              c:identifier="AS_SUGGEST_KIND_UPSTREAM">
        <doc xml:space="preserve">Upstream-specified suggestion</doc>
      </member>
      <member name="heuristic"
              value="2"
              c:identifier="AS_SUGGEST_KIND_HEURISTIC">
        <doc xml:space="preserve">Suggestion from a heuristic</doc>
      </member>
    </enumeration>
    <enumeration name="Tag" c:type="AsTag">
      <doc xml:space="preserve">The tag type.</doc>
      <member name="unknown" value="0" c:identifier="AS_TAG_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="components" value="1" c:identifier="AS_TAG_COMPONENTS">
        <doc xml:space="preserve">`components`</doc>
      </member>
      <member name="component" value="2" c:identifier="AS_TAG_COMPONENT">
        <doc xml:space="preserve">`component`</doc>
      </member>
      <member name="id" value="3" c:identifier="AS_TAG_ID">
        <doc xml:space="preserve">`id`</doc>
      </member>
      <member name="pkgname" value="4" c:identifier="AS_TAG_PKGNAME">
        <doc xml:space="preserve">`pkgname`</doc>
      </member>
      <member name="name" value="5" c:identifier="AS_TAG_NAME">
        <doc xml:space="preserve">`name`</doc>
      </member>
      <member name="summary" value="6" c:identifier="AS_TAG_SUMMARY">
        <doc xml:space="preserve">`summary`</doc>
      </member>
      <member name="description" value="7" c:identifier="AS_TAG_DESCRIPTION">
        <doc xml:space="preserve">`description`</doc>
      </member>
      <member name="url" value="8" c:identifier="AS_TAG_URL">
        <doc xml:space="preserve">`url`</doc>
      </member>
      <member name="icon" value="9" c:identifier="AS_TAG_ICON">
        <doc xml:space="preserve">`icon`</doc>
      </member>
      <member name="categories" value="10" c:identifier="AS_TAG_CATEGORIES">
        <doc xml:space="preserve">`categories`</doc>
      </member>
      <member name="category" value="11" c:identifier="AS_TAG_CATEGORY">
        <doc xml:space="preserve">`category`</doc>
      </member>
      <member name="keywords" value="12" c:identifier="AS_TAG_KEYWORDS">
        <doc xml:space="preserve">`keywords`</doc>
      </member>
      <member name="keyword" value="13" c:identifier="AS_TAG_KEYWORD">
        <doc xml:space="preserve">`keyword`</doc>
      </member>
      <member name="mimetypes" value="14" c:identifier="AS_TAG_MIMETYPES">
        <doc xml:space="preserve">`mimetypes`</doc>
      </member>
      <member name="mimetype" value="15" c:identifier="AS_TAG_MIMETYPE">
        <doc xml:space="preserve">`mimetype`</doc>
      </member>
      <member name="project_group"
              value="16"
              c:identifier="AS_TAG_PROJECT_GROUP">
        <doc xml:space="preserve">`project_group`</doc>
      </member>
      <member name="project_license"
              value="17"
              c:identifier="AS_TAG_PROJECT_LICENSE">
        <doc xml:space="preserve">`project_license`</doc>
      </member>
      <member name="screenshot" value="18" c:identifier="AS_TAG_SCREENSHOT">
        <doc xml:space="preserve">`screenshot`</doc>
      </member>
      <member name="screenshots" value="19" c:identifier="AS_TAG_SCREENSHOTS">
        <doc xml:space="preserve">`screenshots`</doc>
      </member>
      <member name="update_contact"
              value="20"
              c:identifier="AS_TAG_UPDATE_CONTACT">
        <doc xml:space="preserve">`update_contact`</doc>
      </member>
      <member name="image" value="21" c:identifier="AS_TAG_IMAGE">
        <doc xml:space="preserve">`image`</doc>
      </member>
      <member name="compulsory_for_desktop"
              value="22"
              c:identifier="AS_TAG_COMPULSORY_FOR_DESKTOP">
        <doc xml:space="preserve">`compulsory_for_desktop`</doc>
      </member>
      <member name="priority" value="23" c:identifier="AS_TAG_PRIORITY">
        <doc xml:space="preserve">`priority`</doc>
      </member>
      <member name="caption" value="24" c:identifier="AS_TAG_CAPTION">
        <doc xml:space="preserve">`caption`</doc>
      </member>
      <member name="languages" value="25" c:identifier="AS_TAG_LANGUAGES">
        <doc xml:space="preserve">`languages`</doc>
      </member>
      <member name="lang" value="26" c:identifier="AS_TAG_LANG">
        <doc xml:space="preserve">`lang`</doc>
      </member>
      <member name="metadata" value="27" c:identifier="AS_TAG_METADATA">
        <doc xml:space="preserve">`metadata`</doc>
      </member>
      <member name="value" value="28" c:identifier="AS_TAG_VALUE">
        <doc xml:space="preserve">`value`</doc>
      </member>
      <member name="releases" value="29" c:identifier="AS_TAG_RELEASES">
        <doc xml:space="preserve">`releases`</doc>
      </member>
      <member name="release" value="30" c:identifier="AS_TAG_RELEASE">
        <doc xml:space="preserve">`release`</doc>
      </member>
      <member name="architectures"
              value="31"
              c:identifier="AS_TAG_ARCHITECTURES">
        <doc xml:space="preserve">`architectures`</doc>
      </member>
      <member name="arch" value="32" c:identifier="AS_TAG_ARCH">
        <doc xml:space="preserve">`arch`</doc>
      </member>
      <member name="metadata_license"
              value="33"
              c:identifier="AS_TAG_METADATA_LICENSE">
        <doc xml:space="preserve">`metadata_license`</doc>
      </member>
      <member name="provides" value="34" c:identifier="AS_TAG_PROVIDES">
        <doc xml:space="preserve">`provides`</doc>
      </member>
      <member name="extends" value="35" c:identifier="AS_TAG_EXTENDS">
        <doc xml:space="preserve">`extends`</doc>
      </member>
      <member name="developer_name"
              value="36"
              c:identifier="AS_TAG_DEVELOPER_NAME">
        <doc xml:space="preserve">`developer_name`</doc>
      </member>
      <member name="kudos" value="37" c:identifier="AS_TAG_KUDOS">
        <doc xml:space="preserve">`kudos`</doc>
      </member>
      <member name="kudo" value="38" c:identifier="AS_TAG_KUDO">
        <doc xml:space="preserve">`kudo`</doc>
      </member>
      <member name="source_pkgname"
              value="39"
              c:identifier="AS_TAG_SOURCE_PKGNAME">
        <doc xml:space="preserve">`source_pkgname`</doc>
      </member>
      <member name="vetos" value="40" c:identifier="AS_TAG_VETOS">
        <doc xml:space="preserve">`vetos`</doc>
      </member>
      <member name="veto" value="41" c:identifier="AS_TAG_VETO">
        <doc xml:space="preserve">`veto`</doc>
      </member>
      <member name="bundle" value="42" c:identifier="AS_TAG_BUNDLE">
        <doc xml:space="preserve">`bundle`</doc>
      </member>
      <member name="permissions" value="43" c:identifier="AS_TAG_PERMISSIONS">
        <doc xml:space="preserve">`permissions`</doc>
      </member>
      <member name="permission" value="44" c:identifier="AS_TAG_PERMISSION">
        <doc xml:space="preserve">`permission`</doc>
      </member>
      <member name="location" value="45" c:identifier="AS_TAG_LOCATION">
        <doc xml:space="preserve">`location`</doc>
      </member>
      <member name="checksum" value="46" c:identifier="AS_TAG_CHECKSUM">
        <doc xml:space="preserve">`checksum`</doc>
      </member>
      <member name="size" value="47" c:identifier="AS_TAG_SIZE">
        <doc xml:space="preserve">`size`</doc>
      </member>
      <member name="translation" value="48" c:identifier="AS_TAG_TRANSLATION">
        <doc xml:space="preserve">`translation`</doc>
      </member>
      <member name="content_rating"
              value="49"
              c:identifier="AS_TAG_CONTENT_RATING">
        <doc xml:space="preserve">`content_rating`</doc>
      </member>
      <member name="content_attribute"
              value="50"
              c:identifier="AS_TAG_CONTENT_ATTRIBUTE">
        <doc xml:space="preserve">`content_attribute`</doc>
      </member>
      <member name="version" value="51" c:identifier="AS_TAG_VERSION">
        <doc xml:space="preserve">`version`</doc>
      </member>
      <member name="reviews" value="52" c:identifier="AS_TAG_REVIEWS">
        <doc xml:space="preserve">`reviews`</doc>
      </member>
      <member name="review" value="53" c:identifier="AS_TAG_REVIEW">
        <doc xml:space="preserve">`review`</doc>
      </member>
      <member name="reviewer_name"
              value="54"
              c:identifier="AS_TAG_REVIEWER_NAME">
        <doc xml:space="preserve">`reviewer_name`</doc>
      </member>
      <member name="reviewer_id" value="55" c:identifier="AS_TAG_REVIEWER_ID">
        <doc xml:space="preserve">`reviewer_id`</doc>
      </member>
      <member name="suggests" value="56" c:identifier="AS_TAG_SUGGESTS">
        <doc xml:space="preserve">`suggests`</doc>
      </member>
      <member name="requires" value="57" c:identifier="AS_TAG_REQUIRES">
        <doc xml:space="preserve">`requires`</doc>
      </member>
      <member name="custom" value="58" c:identifier="AS_TAG_CUSTOM">
        <doc xml:space="preserve">`custom`</doc>
      </member>
      <member name="launchable" value="59" c:identifier="AS_TAG_LAUNCHABLE">
        <doc xml:space="preserve">`launchable`</doc>
      </member>
    </enumeration>
    <enumeration name="TagFlags" c:type="AsTagFlags">
      <doc xml:space="preserve">The flags to use when matching %AsTag's.</doc>
      <member name="none" value="0" c:identifier="AS_TAG_FLAG_NONE">
        <doc xml:space="preserve">No special actions to use</doc>
      </member>
      <member name="use_fallbacks"
              value="1"
              c:identifier="AS_TAG_FLAG_USE_FALLBACKS">
        <doc xml:space="preserve">Use fallback tag names</doc>
      </member>
      <member name="use_translated"
              value="2"
              c:identifier="AS_TAG_FLAG_USE_TRANSLATED">
        <doc xml:space="preserve">Use translated tag names</doc>
      </member>
    </enumeration>
    <class name="Translation"
           c:symbol-prefix="translation"
           c:type="AsTranslation"
           parent="GObject.Object"
           glib:type-name="AsTranslation"
           glib:get-type="as_translation_get_type"
           glib:type-struct="TranslationClass">
      <constructor name="new"
                   c:identifier="as_translation_new"
                   version="0.5.8">
        <doc xml:space="preserve">Creates a new #AsTranslation.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsTranslation</doc>
          <type name="Translation" c:type="AsTranslation*"/>
        </return-value>
      </constructor>
      <function name="kind_from_string"
                c:identifier="as_translation_kind_from_string"
                version="0.5.8">
        <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsTranslationKind, or %AS_TRANSLATION_KIND_UNKNOWN for unknown.</doc>
          <type name="TranslationKind" c:type="AsTranslationKind"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="as_translation_kind_to_string"
                version="0.5.8">
        <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string version of @kind</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsTranslationKind.</doc>
            <type name="TranslationKind" c:type="AsTranslationKind"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_id"
              c:identifier="as_translation_get_id"
              version="0.5.8">
        <doc xml:space="preserve">Gets the ID for this translation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">ID, e.g. "foobar-1.0.2"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="translation" transfer-ownership="none">
            <doc xml:space="preserve">a #AsTranslation instance.</doc>
            <type name="Translation" c:type="AsTranslation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind"
              c:identifier="as_translation_get_kind"
              version="0.5.8">
        <doc xml:space="preserve">Gets the translation kind.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #AsTranslationKind</doc>
          <type name="TranslationKind" c:type="AsTranslationKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="translation" transfer-ownership="none">
            <doc xml:space="preserve">a #AsTranslation instance.</doc>
            <type name="Translation" c:type="AsTranslation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_id"
              c:identifier="as_translation_set_id"
              version="0.5.8">
        <doc xml:space="preserve">Sets the ID for this translation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="translation" transfer-ownership="none">
            <doc xml:space="preserve">a #AsTranslation instance.</doc>
            <type name="Translation" c:type="AsTranslation*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind"
              c:identifier="as_translation_set_kind"
              version="0.5.8">
        <doc xml:space="preserve">Sets the translation kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="translation" transfer-ownership="none">
            <doc xml:space="preserve">a #AsTranslation instance.</doc>
            <type name="Translation" c:type="AsTranslation*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">the #AsTranslationKind, e.g. %AS_TRANSLATION_KIND_THUMBNAIL.</doc>
            <type name="TranslationKind" c:type="AsTranslationKind"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="TranslationClass"
            c:type="AsTranslationClass"
            glib:is-gtype-struct-for="Translation">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved5" introspectable="0">
        <callback name="_as_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved6" introspectable="0">
        <callback name="_as_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved7" introspectable="0">
        <callback name="_as_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved8" introspectable="0">
        <callback name="_as_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="TranslationKind" c:type="AsTranslationKind">
      <doc xml:space="preserve">The translation type.</doc>
      <member name="unknown"
              value="0"
              c:identifier="AS_TRANSLATION_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="gettext"
              value="1"
              c:identifier="AS_TRANSLATION_KIND_GETTEXT">
        <doc xml:space="preserve">Gettext translation system</doc>
      </member>
      <member name="qt" value="2" c:identifier="AS_TRANSLATION_KIND_QT">
        <doc xml:space="preserve">QT translation system</doc>
      </member>
    </enumeration>
    <enumeration name="UrgencyKind" c:type="AsUrgencyKind">
      <doc xml:space="preserve">The urgency of a release.</doc>
      <member name="unknown" value="0" c:identifier="AS_URGENCY_KIND_UNKNOWN">
        <doc xml:space="preserve">Urgency invalid or not known</doc>
      </member>
      <member name="low" value="1" c:identifier="AS_URGENCY_KIND_LOW">
        <doc xml:space="preserve">Low urgency release</doc>
      </member>
      <member name="medium" value="2" c:identifier="AS_URGENCY_KIND_MEDIUM">
        <doc xml:space="preserve">Medium urgency release</doc>
      </member>
      <member name="high" value="3" c:identifier="AS_URGENCY_KIND_HIGH">
        <doc xml:space="preserve">High urgency release</doc>
      </member>
      <member name="critical"
              value="4"
              c:identifier="AS_URGENCY_KIND_CRITICAL">
        <doc xml:space="preserve">Critically urgent release</doc>
      </member>
    </enumeration>
    <enumeration name="UrlKind" c:type="AsUrlKind">
      <doc xml:space="preserve">The URL type.</doc>
      <member name="unknown" value="0" c:identifier="AS_URL_KIND_UNKNOWN">
        <doc xml:space="preserve">Type invalid or not known</doc>
      </member>
      <member name="homepage" value="1" c:identifier="AS_URL_KIND_HOMEPAGE">
        <doc xml:space="preserve">Application project homepage</doc>
      </member>
      <member name="bugtracker"
              value="2"
              c:identifier="AS_URL_KIND_BUGTRACKER">
        <doc xml:space="preserve">Application bugtracker</doc>
      </member>
      <member name="faq" value="3" c:identifier="AS_URL_KIND_FAQ">
        <doc xml:space="preserve">Application FAQ page</doc>
      </member>
      <member name="donation" value="4" c:identifier="AS_URL_KIND_DONATION">
        <doc xml:space="preserve">Application donation page</doc>
      </member>
      <member name="help" value="5" c:identifier="AS_URL_KIND_HELP">
        <doc xml:space="preserve">Application help manual</doc>
      </member>
      <member name="missing" value="6" c:identifier="AS_URL_KIND_MISSING">
        <doc xml:space="preserve">The package is available, but missing</doc>
      </member>
      <member name="translate" value="7" c:identifier="AS_URL_KIND_TRANSLATE">
        <doc xml:space="preserve">Application translation page</doc>
      </member>
    </enumeration>
    <enumeration name="UtilsError"
                 c:type="AsUtilsError"
                 glib:error-domain="as-utils-error-quark">
      <doc xml:space="preserve">The error type.</doc>
      <member name="failed" value="0" c:identifier="AS_UTILS_ERROR_FAILED">
        <doc xml:space="preserve">Generic failure</doc>
      </member>
      <member name="invalid_type"
              value="1"
              c:identifier="AS_UTILS_ERROR_INVALID_TYPE">
        <doc xml:space="preserve">Invalid type</doc>
      </member>
    </enumeration>
    <bitfield name="UtilsFindIconFlag" c:type="AsUtilsFindIconFlag">
      <doc xml:space="preserve">The flags used when finding icons.</doc>
      <member name="none" value="0" c:identifier="AS_UTILS_FIND_ICON_NONE">
        <doc xml:space="preserve">No flags set</doc>
      </member>
      <member name="hi_dpi" value="1" c:identifier="AS_UTILS_FIND_ICON_HI_DPI">
        <doc xml:space="preserve">Prefer a HiDPI icon</doc>
      </member>
    </bitfield>
    <enumeration name="UtilsLocation" c:type="AsUtilsLocation">
      <doc xml:space="preserve">The flags used when installing and removing metadata files.</doc>
      <member name="shared" value="0" c:identifier="AS_UTILS_LOCATION_SHARED">
        <doc xml:space="preserve">Installed by the vendor, shared</doc>
      </member>
      <member name="cache" value="1" c:identifier="AS_UTILS_LOCATION_CACHE">
        <doc xml:space="preserve">Installed as metadata, shared</doc>
      </member>
      <member name="user" value="2" c:identifier="AS_UTILS_LOCATION_USER">
        <doc xml:space="preserve">Installed by the user</doc>
      </member>
    </enumeration>
    <bitfield name="VersionParseFlag" c:type="AsVersionParseFlag">
      <doc xml:space="preserve">The flags used when parsing version numbers.</doc>
      <member name="none" value="0" c:identifier="AS_VERSION_PARSE_FLAG_NONE">
        <doc xml:space="preserve">No flags set</doc>
      </member>
      <member name="use_triplet"
              value="1"
              c:identifier="AS_VERSION_PARSE_FLAG_USE_TRIPLET">
        <doc xml:space="preserve">Use Microsoft-style version numbers</doc>
      </member>
      <member name="use_bcd"
              value="2"
              c:identifier="AS_VERSION_PARSE_FLAG_USE_BCD">
        <doc xml:space="preserve">Use binary coded decimal notation</doc>
      </member>
    </bitfield>
    <function name="id_kind_from_string"
              c:identifier="as_id_kind_from_string"
              version="0.1.0">
      <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #AsIdKind or %AS_ID_KIND_UNKNOWN for unknown</doc>
        <type name="IdKind" c:type="AsIdKind"/>
      </return-value>
      <parameters>
        <parameter name="id_kind" transfer-ownership="none">
          <doc xml:space="preserve">the string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="id_kind_to_string"
              c:identifier="as_id_kind_to_string"
              version="0.1.0">
      <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">string version of @id_kind</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="id_kind" transfer-ownership="none">
          <doc xml:space="preserve">the #AsIdKind.</doc>
          <type name="IdKind" c:type="AsIdKind"/>
        </parameter>
      </parameters>
    </function>
    <function name="inf_error_quark"
              c:identifier="as_inf_error_quark"
              version="0.3.7">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">An error quark.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="inf_get_driver_version"
              c:identifier="as_inf_get_driver_version"
              version="0.3.5"
              throws="1">
      <doc xml:space="preserve">Parses the DriverVer string into a recognisable version and timestamp;</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">the version string, or %NULL for error.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="keyfile" transfer-ownership="none">
          <doc xml:space="preserve">a #GKeyFile</doc>
          <type name="GLib.KeyFile" c:type="GKeyFile*"/>
        </parameter>
        <parameter name="timestamp" transfer-ownership="none">
          <doc xml:space="preserve">the returned driverver timestamp, or %NULL</doc>
          <type name="guint64" c:type="guint64*"/>
        </parameter>
      </parameters>
    </function>
    <function name="inf_load_data"
              c:identifier="as_inf_load_data"
              version="0.3.5"
              throws="1">
      <doc xml:space="preserve">Repairs .inf file data and opens it as a keyfile.

Important: The group and keynames are all forced to lower case as INF files
are specified as case insensitve and GKeyFile *is* case sensitive.
Any backslashes or spaces in the key name are also converted to '_'.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE for success</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="keyfile" transfer-ownership="none">
          <doc xml:space="preserve">a #GKeyFile</doc>
          <type name="GLib.KeyFile" c:type="GKeyFile*"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve">the .inf file date to parse</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">#AsInfLoadFlags, e.g. %AS_INF_LOAD_FLAG_NONE</doc>
          <type name="InfLoadFlags" c:type="AsInfLoadFlags"/>
        </parameter>
      </parameters>
    </function>
    <function name="inf_load_file"
              c:identifier="as_inf_load_file"
              version="0.3.5"
              throws="1">
      <doc xml:space="preserve">Repairs an .inf file and opens it as a keyfile.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE for success</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="keyfile" transfer-ownership="none">
          <doc xml:space="preserve">a #GKeyFile</doc>
          <type name="GLib.KeyFile" c:type="GKeyFile*"/>
        </parameter>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:space="preserve">the .inf file to open</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">#AsInfLoadFlags, e.g. %AS_INF_LOAD_FLAG_NONE</doc>
          <type name="InfLoadFlags" c:type="AsInfLoadFlags"/>
        </parameter>
      </parameters>
    </function>
    <function name="kudo_kind_from_string"
              c:identifier="as_kudo_kind_from_string"
              version="0.2.2">
      <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #AsKudoKind or %AS_KUDO_KIND_UNKNOWN for unknown</doc>
        <type name="KudoKind" c:type="AsKudoKind"/>
      </return-value>
      <parameters>
        <parameter name="kudo_kind" transfer-ownership="none">
          <doc xml:space="preserve">the string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="kudo_kind_to_string"
              c:identifier="as_kudo_kind_to_string"
              version="0.2.2">
      <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">string version of @kudo_kind</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="kudo_kind" transfer-ownership="none">
          <doc xml:space="preserve">the @AsKudoKind.</doc>
          <type name="KudoKind" c:type="AsKudoKind"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_add_attribute"
              c:identifier="as_node_add_attribute"
              version="0.1.1"
              introspectable="0">
      <doc xml:space="preserve">Adds a new attribute to a node.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve">the attribute key</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve">new data</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_add_attribute_as_int"
              c:identifier="as_node_add_attribute_as_int"
              version="0.3.1"
              introspectable="0">
      <doc xml:space="preserve">Adds a new attribute to a node.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve">the attribute key</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve">new data</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_add_attribute_as_uint"
              c:identifier="as_node_add_attribute_as_uint"
              version="0.6.1"
              introspectable="0">
      <doc xml:space="preserve">Adds a new attribute to a node.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve">the attribute key</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve">new data</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_error_quark"
              c:identifier="as_node_error_quark"
              version="0.1.0">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">An error quark.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="node_find"
              c:identifier="as_node_find"
              version="0.1.0"
              introspectable="0">
      <doc xml:space="preserve">Gets a node from the DOM tree.</doc>
      <return-value>
        <doc xml:space="preserve">A #AsNode, or %NULL if not found</doc>
        <type name="GLib.Node" c:type="GNode*"/>
      </return-value>
      <parameters>
        <parameter name="root" transfer-ownership="none">
          <doc xml:space="preserve">a root node, or %NULL</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve">a path in the DOM, e.g. "html/body"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_find_with_attribute"
              c:identifier="as_node_find_with_attribute"
              version="0.1.0"
              introspectable="0">
      <doc xml:space="preserve">Gets a node from the DOM tree with a specified attribute.</doc>
      <return-value>
        <doc xml:space="preserve">A #AsNode, or %NULL if not found</doc>
        <type name="GLib.Node" c:type="GNode*"/>
      </return-value>
      <parameters>
        <parameter name="root" transfer-ownership="none">
          <doc xml:space="preserve">a root node, or %NULL</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve">a path in the DOM, e.g. "html/body"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="attr_key" transfer-ownership="none">
          <doc xml:space="preserve">the attribute key</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="attr_value" transfer-ownership="none">
          <doc xml:space="preserve">the attribute value</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_from_file"
              c:identifier="as_node_from_file"
              version="0.1.0"
              introspectable="0"
              throws="1">
      <doc xml:space="preserve">Parses an XML file into a DOM tree.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">A populated #AsNode tree</doc>
        <type name="GLib.Node" c:type="GNode*"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <doc xml:space="preserve">file</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">#AsNodeFromXmlFlags, e.g. %AS_NODE_FROM_XML_FLAG_NONE</doc>
          <type name="NodeFromXmlFlags" c:type="AsNodeFromXmlFlags"/>
        </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>
    <function name="node_from_xml"
              c:identifier="as_node_from_xml"
              version="0.1.0"
              introspectable="0"
              throws="1">
      <doc xml:space="preserve">Parses XML data into a DOM tree.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">A populated #AsNode tree</doc>
        <type name="GLib.Node" c:type="GNode*"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve">XML data</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">#AsNodeFromXmlFlags, e.g. %AS_NODE_FROM_XML_FLAG_NONE</doc>
          <type name="NodeFromXmlFlags" c:type="AsNodeFromXmlFlags"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_get_attribute"
              c:identifier="as_node_get_attribute"
              version="0.1.0">
      <doc xml:space="preserve">Gets a node attribute, e.g. "false"</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">string value</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="const GNode*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve">the attribute key</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_get_attribute_as_int"
              c:identifier="as_node_get_attribute_as_int"
              version="0.1.0">
      <doc xml:space="preserve">Gets a node attribute, e.g. 34</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">integer value, or %G_MAXINT for error</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="const GNode*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve">the attribute key</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_get_attribute_as_uint"
              c:identifier="as_node_get_attribute_as_uint"
              version="0.6.1">
      <doc xml:space="preserve">Gets a node attribute, e.g. 34</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">integer value, or %G_MAXINT for error</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="const GNode*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve">the attribute key</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_get_comment"
              c:identifier="as_node_get_comment"
              version="0.1.6">
      <doc xml:space="preserve">Gets the node data, e.g. "Copyright 2014 Richard Hughes"</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">string value, or %NULL</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="const GNode*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_get_data"
              c:identifier="as_node_get_data"
              version="0.1.0">
      <doc xml:space="preserve">Gets the node data, e.g. "paragraph text"</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">string value</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="const GNode*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_get_localized"
              c:identifier="as_node_get_localized"
              version="0.1.0">
      <doc xml:space="preserve">Extracts localized values from the DOM tree</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A hash table with the locale (e.g. en_GB) as the key</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer" c:type="gpointer"/>
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="const GNode*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve">the key to use, e.g. "copyright"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_get_localized_best"
              c:identifier="as_node_get_localized_best"
              version="0.1.0">
      <doc xml:space="preserve">Gets the 'best' locale version of a specific data value.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">the string value, or %NULL if there was no data</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode.</doc>
          <type name="GLib.Node" c:type="const GNode*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve">the tag name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_get_localized_unwrap"
              c:identifier="as_node_get_localized_unwrap"
              version="0.1.0"
              throws="1">
      <doc xml:space="preserve">Denormalize AppData data like this:

|[
&lt;description&gt;
 &lt;p&gt;Hi&lt;/p&gt;
 &lt;p xml:lang="pl"&gt;Czesc&lt;/p&gt;
 &lt;ul&gt;
  &lt;li&gt;First&lt;/li&gt;
  &lt;li xml:lang="pl"&gt;Pierwszy&lt;/li&gt;
 &lt;/ul&gt;
&lt;/description&gt;
]|

into a hash that contains:

|[
"C"  -&gt;  "&lt;p&gt;Hi&lt;/p&gt;&lt;ul&gt;&lt;li&gt;First&lt;/li&gt;&lt;/ul&gt;"
"pl" -&gt;  "&lt;p&gt;Czesc&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Pierwszy&lt;/li&gt;&lt;/ul&gt;"
]|</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a hash table of data</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer" c:type="gpointer"/>
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode.</doc>
          <type name="GLib.Node" c:type="const GNode*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_get_name"
              c:identifier="as_node_get_name"
              version="0.1.0">
      <doc xml:space="preserve">Gets the node name, e.g. "body"</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">string value</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="const GNode*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_get_tag"
              c:identifier="as_node_get_tag"
              version="0.1.2">
      <doc xml:space="preserve">Gets the node tag enum.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">#AsTag, e.g. %AS_TAG_PKGNAME</doc>
        <type name="Tag" c:type="AsTag"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="const GNode*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_insert"
              c:identifier="as_node_insert"
              version="0.1.0"
              introspectable="0">
      <doc xml:space="preserve">Inserts a node into the DOM.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">A populated #AsNode</doc>
        <type name="GLib.Node" c:type="GNode*"/>
      </return-value>
      <parameters>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:space="preserve">a parent #AsNode.</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">the tag name, e.g. "id".</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cdata" transfer-ownership="none">
          <doc xml:space="preserve">the tag data, or %NULL, e.g. "org.gnome.Software.desktop".</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="insert_flags" transfer-ownership="none">
          <doc xml:space="preserve">any %AsNodeInsertFlags.</doc>
          <type name="NodeInsertFlags" c:type="AsNodeInsertFlags"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">any attributes to add to the node, terminated by %NULL</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="node_insert_hash"
              c:identifier="as_node_insert_hash"
              version="0.1.0">
      <doc xml:space="preserve">Inserts a hash table of data into the DOM.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:space="preserve">a parent #AsNode.</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">the tag name, e.g. "id".</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="attr_key" transfer-ownership="none">
          <doc xml:space="preserve">the key to use as the attribute in the XML, e.g. "key".</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="hash" transfer-ownership="none">
          <doc xml:space="preserve">the hash table with the key as the key to use in the XML.</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
        <parameter name="insert_flags" transfer-ownership="none">
          <doc xml:space="preserve">any %AsNodeInsertFlags.</doc>
          <type name="NodeInsertFlags" c:type="AsNodeInsertFlags"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_insert_localized"
              c:identifier="as_node_insert_localized"
              version="0.1.0">
      <doc xml:space="preserve">Inserts a localized key into the DOM.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:space="preserve">a parent #AsNode.</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">the tag name, e.g. "id".</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="localized" transfer-ownership="none">
          <doc xml:space="preserve">the hash table of data, with the locale as the key.</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
        <parameter name="insert_flags" transfer-ownership="none">
          <doc xml:space="preserve">any %AsNodeInsertFlags.</doc>
          <type name="NodeInsertFlags" c:type="AsNodeInsertFlags"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_new"
              c:identifier="as_node_new"
              version="0.1.0"
              introspectable="0">
      <doc xml:space="preserve">Creates a new empty tree whicah can have nodes appended to it.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new empty tree</doc>
        <type name="GLib.Node" c:type="GNode*"/>
      </return-value>
    </function>
    <function name="node_remove_attribute"
              c:identifier="as_node_remove_attribute"
              version="0.2.0"
              introspectable="0">
      <doc xml:space="preserve">Removes a node attribute, e.g. "type"</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve">the attribute key</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_set_comment"
              c:identifier="as_node_set_comment"
              version="0.1.6"
              introspectable="0">
      <doc xml:space="preserve">Sets new comment for the node.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
        <parameter name="comment" transfer-ownership="none">
          <doc xml:space="preserve">new comment</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_set_data"
              c:identifier="as_node_set_data"
              version="0.1.1"
              introspectable="0">
      <doc xml:space="preserve">Sets new data on a node.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
        <parameter name="cdata" transfer-ownership="none">
          <doc xml:space="preserve">new data</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="insert_flags" transfer-ownership="none">
          <doc xml:space="preserve">any %AsNodeInsertFlags.</doc>
          <type name="NodeInsertFlags" c:type="AsNodeInsertFlags"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_set_name"
              c:identifier="as_node_set_name"
              version="0.1.4"
              introspectable="0">
      <doc xml:space="preserve">Sets the node name, e.g. "body"</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">the new name</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_to_file"
              c:identifier="as_node_to_file"
              version="0.2.0"
              introspectable="0"
              throws="1">
      <doc xml:space="preserve">Exports a DOM tree to an XML file.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE for success</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="root" transfer-ownership="none">
          <doc xml:space="preserve">A populated #AsNode tree</doc>
          <type name="GLib.Node" c:type="const GNode*"/>
        </parameter>
        <parameter name="file" transfer-ownership="none">
          <doc xml:space="preserve">a #GFile</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">#AsNodeToXmlFlags, e.g. %AS_NODE_TO_XML_FLAG_NONE</doc>
          <type name="NodeToXmlFlags" c:type="AsNodeToXmlFlags"/>
        </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>
    <function name="node_to_xml" c:identifier="as_node_to_xml" version="0.1.0">
      <doc xml:space="preserve">Converts a node and it's children to XML.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a #GString</doc>
        <type name="GLib.String" c:type="GString*"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode.</doc>
          <type name="GLib.Node" c:type="const GNode*"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">the AsNodeToXmlFlags, e.g. %AS_NODE_INSERT_FLAG_PRE_ESCAPED.</doc>
          <type name="NodeToXmlFlags" c:type="AsNodeToXmlFlags"/>
        </parameter>
      </parameters>
    </function>
    <function name="node_unref" c:identifier="as_node_unref" version="0.1.0">
      <doc xml:space="preserve">Deallocates all notes in the tree.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve">a #AsNode.</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </parameter>
      </parameters>
    </function>
    <function name="size_kind_from_string"
              c:identifier="as_size_kind_from_string"
              version="0.5.2">
      <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #AsSizeKind or %AS_SIZE_KIND_UNKNOWN for unknown</doc>
        <type name="SizeKind" c:type="AsSizeKind"/>
      </return-value>
      <parameters>
        <parameter name="size_kind" transfer-ownership="none">
          <doc xml:space="preserve">the string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="size_kind_to_string"
              c:identifier="as_size_kind_to_string"
              version="0.5.2">
      <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">string version of @size_kind</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="size_kind" transfer-ownership="none">
          <doc xml:space="preserve">the #AsSizeKind.</doc>
          <type name="SizeKind" c:type="AsSizeKind"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_from_string"
              c:identifier="as_tag_from_string"
              version="0.1.0">
      <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a %AsTag, or %AS_TAG_UNKNOWN if not known.</doc>
        <type name="Tag" c:type="AsTag"/>
      </return-value>
      <parameters>
        <parameter name="tag" transfer-ownership="none">
          <doc xml:space="preserve">the string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_from_string_full"
              c:identifier="as_tag_from_string_full"
              version="0.1.2">
      <doc xml:space="preserve">Converts the text representation to an enumerated value also converting
legacy key names.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a %AsTag, or %AS_TAG_UNKNOWN if not known.</doc>
        <type name="Tag" c:type="AsTag"/>
      </return-value>
      <parameters>
        <parameter name="tag" transfer-ownership="none">
          <doc xml:space="preserve">the string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">the #AsTagFlags e.g. %AS_TAG_FLAG_USE_FALLBACKS</doc>
          <type name="TagFlags" c:type="AsTagFlags"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_to_string"
              c:identifier="as_tag_to_string"
              version="0.1.0">
      <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">string version of @tag</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="tag" transfer-ownership="none">
          <doc xml:space="preserve">the %AsTag value.</doc>
          <type name="Tag" c:type="AsTag"/>
        </parameter>
      </parameters>
    </function>
    <function name="urgency_kind_from_string"
              c:identifier="as_urgency_kind_from_string"
              version="0.5.1">
      <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #AsUrgencyKind or %AS_URGENCY_KIND_UNKNOWN for unknown</doc>
        <type name="UrgencyKind" c:type="AsUrgencyKind"/>
      </return-value>
      <parameters>
        <parameter name="urgency_kind" transfer-ownership="none">
          <doc xml:space="preserve">the string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="urgency_kind_to_string"
              c:identifier="as_urgency_kind_to_string"
              version="0.5.1">
      <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">string version of @urgency_kind</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="urgency_kind" transfer-ownership="none">
          <doc xml:space="preserve">the #AsUrgencyKind.</doc>
          <type name="UrgencyKind" c:type="AsUrgencyKind"/>
        </parameter>
      </parameters>
    </function>
    <function name="url_kind_from_string"
              c:identifier="as_url_kind_from_string"
              version="0.1.0">
      <doc xml:space="preserve">Converts the text representation to an enumerated value.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #AsUrlKind or %AS_URL_KIND_UNKNOWN for unknown</doc>
        <type name="UrlKind" c:type="AsUrlKind"/>
      </return-value>
      <parameters>
        <parameter name="url_kind" transfer-ownership="none">
          <doc xml:space="preserve">the string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="url_kind_to_string"
              c:identifier="as_url_kind_to_string"
              version="0.1.0">
      <doc xml:space="preserve">Converts the enumerated value to an text representation.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">string version of @url_kind</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="url_kind" transfer-ownership="none">
          <doc xml:space="preserve">the @AsUrlKind.</doc>
          <type name="UrlKind" c:type="AsUrlKind"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_appstream_id_build"
              c:identifier="as_utils_appstream_id_build"
              version="0.6.4">
      <doc xml:space="preserve">Fixes a string to be a valid AppStream ID.

This function replaces any invalid chars with an underscore.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a valid AppStream ID, or %NULL if @str is invalid</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve">a string to build the AppStream ID from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_appstream_id_valid"
              c:identifier="as_utils_appstream_id_valid"
              version="0.6.4">
      <doc xml:space="preserve">Checks to see if a string is a valid AppStream ID. A valid AppStream ID only
contains alpha-numeric chars, dots and dashes.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the string is a valid AppStream ID</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve">a string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_error_quark"
              c:identifier="as_utils_error_quark"
              version="0.3.7">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">An error quark.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="utils_find_icon_filename"
              c:identifier="as_utils_find_icon_filename"
              version="0.2.5"
              throws="1">
      <doc xml:space="preserve">Finds an icon filename from a filesystem root.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a newly allocated %NULL terminated string</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="destdir" transfer-ownership="none">
          <doc xml:space="preserve">the destdir.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="search" transfer-ownership="none">
          <doc xml:space="preserve">the icon search name, e.g. "microphone.svg"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_find_icon_filename_full"
              c:identifier="as_utils_find_icon_filename_full"
              version="0.3.1"
              throws="1">
      <doc xml:space="preserve">Finds an icon filename from a filesystem root.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a newly allocated %NULL terminated string</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="destdir" transfer-ownership="none">
          <doc xml:space="preserve">the destdir.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="search" transfer-ownership="none">
          <doc xml:space="preserve">the icon search name, e.g. "microphone.svg"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">A #AsUtilsFindIconFlag bitfield</doc>
          <type name="UtilsFindIconFlag" c:type="AsUtilsFindIconFlag"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_guid_from_data"
              c:identifier="as_utils_guid_from_data"
              version="0.6.13"
              throws="1">
      <doc xml:space="preserve">Returns a GUID for some data. This uses a hash and so even small
differences in the @data will produce radically different return values.

The implementation is taken from RFC4122, Section 4.1.3; specifically
using a type-5 SHA-1 hash.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A new GUID, or %NULL if the namespace_id was invalid</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="namespace_id" transfer-ownership="none">
          <doc xml:space="preserve">A namespace ID, e.g. "6ba7b810-9dad-11d1-80b4-00c04fd430c8"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve">data to hash</doc>
          <type name="guint8" c:type="const guint8*"/>
        </parameter>
        <parameter name="data_len" transfer-ownership="none">
          <doc xml:space="preserve">length of @data</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_guid_from_string"
              c:identifier="as_utils_guid_from_string"
              version="0.5.0">
      <doc xml:space="preserve">Returns a GUID for a given string. This uses a hash and so even small
differences in the @str will produce radically different return values.

The implementation is taken from RFC4122, Section 4.1.3; specifically
using a type-5 SHA-1 hash with a DNS namespace.
The same result can be obtained with this simple python program:

   #!/usr/bin/python
   import uuid
   print uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A new GUID, or %NULL if the string was invalid</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve">A source string to use as a key</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_guid_is_valid"
              c:identifier="as_utils_guid_is_valid"
              version="0.5.0">
      <doc xml:space="preserve">Checks the source string is a valid string GUID descriptor.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if @guid was a valid GUID, %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="guid" transfer-ownership="none">
          <doc xml:space="preserve">string to check</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_install_filename"
              c:identifier="as_utils_install_filename"
              version="0.3.4"
              throws="1">
      <doc xml:space="preserve">Installs an AppData, MetaInfo, AppStream XML or AppStream Icon metadata file.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE for success, %FALSE if error is set</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="location" transfer-ownership="none">
          <doc xml:space="preserve">the #AsUtilsLocation, e.g. %AS_UTILS_LOCATION_CACHE</doc>
          <type name="UtilsLocation" c:type="AsUtilsLocation"/>
        </parameter>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:space="preserve">the full path of the file to install</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="origin" transfer-ownership="none">
          <doc xml:space="preserve">the origin to use for the installation, or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="destdir" transfer-ownership="none">
          <doc xml:space="preserve">the destdir to use, or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_is_blacklisted_id"
              c:identifier="as_utils_is_blacklisted_id"
              version="0.2.2">
      <doc xml:space="preserve">Searches the known list of blacklisted desktop IDs.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the desktop ID is blacklisted</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="desktop_id" transfer-ownership="none">
          <doc xml:space="preserve">a desktop ID, e.g. "gimp.desktop"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_is_category_id"
              c:identifier="as_utils_is_category_id"
              version="0.2.4">
      <doc xml:space="preserve">Searches the known list of registered category IDs.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the category ID is valid</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="category_id" transfer-ownership="none">
          <doc xml:space="preserve">a desktop ID, e.g. "AudioVideoEditing"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_is_environment_id"
              c:identifier="as_utils_is_environment_id"
              version="0.2.4">
      <doc xml:space="preserve">Searches the known list of registered environment IDs.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the environment ID is valid</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="environment_id" transfer-ownership="none">
          <doc xml:space="preserve">a desktop ID, e.g. "GNOME"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_is_spdx_license"
              c:identifier="as_utils_is_spdx_license"
              version="0.2.5">
      <doc xml:space="preserve">Checks the licence string to check it being a valid licence.
NOTE: SPDX licences can't typically contain brackets.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the license is a valid "SPDX license"</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="license" transfer-ownership="none">
          <doc xml:space="preserve">a SPDX license string, e.g. "CC-BY-3.0 and GFDL-1.3"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_is_spdx_license_id"
              c:identifier="as_utils_is_spdx_license_id"
              version="0.1.5">
      <doc xml:space="preserve">Searches the known list of SPDX license IDs.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the license ID is a valid "SPDX license ID"</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="license_id" transfer-ownership="none">
          <doc xml:space="preserve">a single SPDX license ID, e.g. "CC-BY-3.0"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_is_stock_icon_name"
              c:identifier="as_utils_is_stock_icon_name"
              version="0.1.3">
      <doc xml:space="preserve">Searches the known list of stock icons.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the icon is a "stock icon name" and does not need to be
         included in the AppStream icon tarball</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">an icon name</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_license_to_spdx"
              c:identifier="as_utils_license_to_spdx"
              version="0.5.5">
      <doc xml:space="preserve">Converts a non-SPDX license into an SPDX format string where possible.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">the best-effort SPDX license string</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="license" transfer-ownership="none">
          <doc xml:space="preserve">a not-quite SPDX license string, e.g. "GPLv3+"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_search_token_valid"
              c:identifier="as_utils_search_token_valid"
              version="0.3.4">
      <doc xml:space="preserve">Checks the search token if it is valid. Valid tokens are at least 3 chars in
length, not common words like "and", and do not contain markup.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE is the search token was valid</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="token" transfer-ownership="none">
          <doc xml:space="preserve">the search token</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_search_tokenize"
              c:identifier="as_utils_search_tokenize"
              version="0.3.4">
      <doc xml:space="preserve">Splits up a string into tokens and returns tokens that are suitable for
searching. This includes taking out common words and casefolding the
returned search tokens.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">Valid tokens to search for, or %NULL for error</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="search" transfer-ownership="none">
          <doc xml:space="preserve">the search string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_spdx_license_detokenize"
              c:identifier="as_utils_spdx_license_detokenize"
              version="0.2.5">
      <doc xml:space="preserve">De-tokenizes the SPDX licenses into a string.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">string, or %NULL for invalid</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="license_tokens" transfer-ownership="none">
          <doc xml:space="preserve">license tokens, typically from as_utils_spdx_license_tokenize()</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_spdx_license_tokenize"
              c:identifier="as_utils_spdx_license_tokenize"
              version="0.1.5">
      <doc xml:space="preserve">Tokenizes the SPDX license string (or any simarly formatted string)
into parts. Any licence parts of the string e.g. "LGPL-2.0+" are prefexed
with "@", the conjunctive replaced with "&amp;" and the disjunctive replaced
with "|". Brackets are added as indervidual tokens and other strings are
appended into single tokens where possible.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">array of strings, or %NULL for invalid</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="license" transfer-ownership="none">
          <doc xml:space="preserve">a license string, e.g. "LGPLv2+ and (QPL or GPLv2) and MIT"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_string_replace"
              c:identifier="as_utils_string_replace"
              version="0.5.11">
      <doc xml:space="preserve">Performs multiple search and replace operations on the given string.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">the number of replacements done, or 0 if @search is not found.</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="string" transfer-ownership="none">
          <doc xml:space="preserve">The #GString to operate on</doc>
          <type name="GLib.String" c:type="GString*"/>
        </parameter>
        <parameter name="search" transfer-ownership="none">
          <doc xml:space="preserve">The text to search for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="replace" transfer-ownership="none">
          <doc xml:space="preserve">The text to use for substitutions</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_unique_id_build"
              c:identifier="as_utils_unique_id_build"
              version="0.6.1">
      <doc xml:space="preserve">Builds a valid unique ID using available data.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a unique name, or %NULL for error;</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="scope" transfer-ownership="none">
          <doc xml:space="preserve">a #AsAppScope e.g. %AS_APP_SCOPE_SYSTEM</doc>
          <type name="AppScope" c:type="AsAppScope"/>
        </parameter>
        <parameter name="bundle_kind" transfer-ownership="none">
          <doc xml:space="preserve">System, e.g. 'package' or 'flatpak'</doc>
          <type name="BundleKind" c:type="AsBundleKind"/>
        </parameter>
        <parameter name="origin" transfer-ownership="none">
          <doc xml:space="preserve">Origin, e.g. 'fedora' or 'gnome-apps-nightly'</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="kind" transfer-ownership="none">
          <doc xml:space="preserve">#AsAppKind, e.g. %AS_APP_KIND_DESKTOP</doc>
          <type name="AppKind" c:type="AsAppKind"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">AppStream ID, e.g. 'gimp.desktop'</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="branch" transfer-ownership="none">
          <doc xml:space="preserve">Branch, e.g. '3-20' or 'master'</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_unique_id_equal"
              c:identifier="as_utils_unique_id_equal"
              version="0.6.1">
      <doc xml:space="preserve">Checks two unique IDs for equality allowing globs to match.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the ID's should be considered equal.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="unique_id1" transfer-ownership="none">
          <doc xml:space="preserve">a unique ID</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="unique_id2" transfer-ownership="none">
          <doc xml:space="preserve">another unique ID</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_unique_id_hash"
              c:identifier="as_utils_unique_id_hash"
              version="0.6.2">
      <doc xml:space="preserve">Converts a unique-id to a hash value.

This function implements the widely used DJB hash on the ID subset of the
unique-id string.

It can be passed to g_hash_table_new() as the hash_func parameter,
when using non-NULL strings or unique_ids as keys in a GHashTable.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a hash value corresponding to the key</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="unique_id" transfer-ownership="none">
          <doc xml:space="preserve">a unique ID</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_unique_id_valid"
              c:identifier="as_utils_unique_id_valid"
              version="0.6.1">
      <doc xml:space="preserve">Checks if a unique ID is valid i.e. has the correct number of
sections.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the ID is valid</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="unique_id" transfer-ownership="none">
          <doc xml:space="preserve">a unique ID</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_vercmp"
              c:identifier="as_utils_vercmp"
              version="0.3.5">
      <doc xml:space="preserve">Compares version numbers for sorting. This function cannot deal with version
strings that do not contain numbers, for instance "rev2706" or "1.2_alpha".</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">-1 if a &lt; b, +1 if a &gt; b, 0 if they are equal, and %G_MAXINT on error</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="version_a" transfer-ownership="none">
          <doc xml:space="preserve">the release version, e.g. 1.2.3</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="version_b" transfer-ownership="none">
          <doc xml:space="preserve">the release version, e.g. 1.2.3.1</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_version_from_uint16"
              c:identifier="as_utils_version_from_uint16"
              version="0.5.2">
      <doc xml:space="preserve">Returns a dotted decimal version string from a 16 bit number.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A version number, e.g. "1.3"</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="val" transfer-ownership="none">
          <doc xml:space="preserve">A uint16le version number</doc>
          <type name="guint16" c:type="guint16"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">flags used for formatting, e.g. %AS_VERSION_PARSE_FLAG_USE_TRIPLET</doc>
          <type name="VersionParseFlag" c:type="AsVersionParseFlag"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_version_from_uint32"
              c:identifier="as_utils_version_from_uint32"
              version="0.5.2">
      <doc xml:space="preserve">Returns a dotted decimal version string from a 32 bit number.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A version number, e.g. "1.0.3"</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="val" transfer-ownership="none">
          <doc xml:space="preserve">A uint32le version number</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">flags used for formatting, e.g. %AS_VERSION_PARSE_FLAG_USE_TRIPLET</doc>
          <type name="VersionParseFlag" c:type="AsVersionParseFlag"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_version_parse"
              c:identifier="as_utils_version_parse"
              version="0.5.2">
      <doc xml:space="preserve">Returns a dotted decimal version string from a version string. The supported
formats are:

- Dotted decimal, e.g. "1.2.3"
- Base 16, a hex number *with* a 0x prefix, e.g. "0x10203"
- Base 10, a string containing just [0-9], e.g. "66051"
- Date in YYYYMMDD format, e.g. 20150915

Anything with a '.' or that doesn't match [0-9] or 0x[a-f,0-9] is considered
a string and returned without modification.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A version number, e.g. "1.0.3"</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="version" transfer-ownership="none">
          <doc xml:space="preserve">A version number</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
