<?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.7"
             c:identifier-prefixes="As"
             c:symbol-prefixes="as_">
    <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 #AsAppSourceKind, e.g. %AS_APP_SOURCE_KIND_APPSTREAM.</doc>
          <type name="AppSourceKind" c:type="AsAppSourceKind"/>
        </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="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 #AsAppSourceKind, e.g. %AS_APP_SOURCE_KIND_APPSTREAM.</doc>
          <type name="AppSourceKind" c:type="AsAppSourceKind"/>
        </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 #AsAppSourceKind.</doc>
            <type name="AppSourceKind" c:type="AsAppSourceKind"/>
          </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>
          <parameter name="arch_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @arch, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="category_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @category, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="compulsory_for_desktop_len"
                     transfer-ownership="none">
            <doc xml:space="preserve">the size of @compulsory_for_desktop, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="extends_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @extends, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="keyword_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @keyword, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="kudo_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @kudo, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="locale_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @locale, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="value_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @value, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="mimetype_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @mimetype, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="permission_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @permission, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="pkgname_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @pkgname, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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_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_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_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>
          <parameter name="url_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @url, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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="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_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_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_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_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_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_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_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_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_source_file"
              c:identifier="as_app_get_source_file"
              version="0.2.2">
        <doc xml:space="preserve">Gets the source filename the instance was populated from.

NOTE: this is not set for %AS_APP_SOURCE_KIND_APPSTREAM entries.</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="AppSourceKind" c:type="AsAppSourceKind"/>
        </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_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_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_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="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_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_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>
          <parameter name="comment_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @comment, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="description_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @description, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="developer_name_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @developer_name, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="icon_path_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @icon_path, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="id_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @id, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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 #AsIdKind.</doc>
            <type name="IdKind" c:type="AsIdKind"/>
          </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>
          <parameter name="metadata_license_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @metadata_license, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="name_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @name, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="project_group_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @project_group, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="project_license_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @project_license, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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 #AsAppSourceKind.</doc>
            <type name="AppSourceKind" c:type="AsAppSourceKind"/>
          </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>
          <parameter name="source_pkgname_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @source_pkgname, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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 #AsAppSourceKind.</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>
          <parameter name="update_contact_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @update_contact, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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">
        <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="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>
    </enumeration>
    <enumeration name="AppSourceKind" c:type="AsAppSourceKind">
      <doc xml:space="preserve">The source kind.</doc>
      <member name="unknown"
              value="0"
              c:identifier="AS_APP_SOURCE_KIND_UNKNOWN">
        <doc xml:space="preserve">Not sourced from a file</doc>
      </member>
      <member name="appstream"
              value="1"
              c:identifier="AS_APP_SOURCE_KIND_APPSTREAM">
        <doc xml:space="preserve">Sourced from a AppStream file</doc>
      </member>
      <member name="desktop"
              value="2"
              c:identifier="AS_APP_SOURCE_KIND_DESKTOP">
        <doc xml:space="preserve">Sourced from a desktop file</doc>
      </member>
      <member name="appdata"
              value="3"
              c:identifier="AS_APP_SOURCE_KIND_APPDATA">
        <doc xml:space="preserve">Sourced from a AppData file</doc>
      </member>
      <member name="metainfo"
              value="4"
              c:identifier="AS_APP_SOURCE_KIND_METAINFO">
        <doc xml:space="preserve">Sourced from a MetaInfo file</doc>
      </member>
      <member name="inf" value="5" c:identifier="AS_APP_SOURCE_KIND_INF">
        <doc xml:space="preserve">Sourced from a inf file</doc>
      </member>
    </enumeration>
    <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>
    </enumeration>
    <enumeration 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="partial"
              value="4"
              c:identifier="AS_APP_SUBSUME_FLAG_PARTIAL">
        <doc xml:space="preserve">Only subsume a safe subset</doc>
      </member>
    </enumeration>
    <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="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>
          <parameter name="id_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @id, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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_THUMBNAIL.</doc>
            <type name="BundleKind" c:type="AsBundleKind"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <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="xdg_app" value="2" c:identifier="AS_BUNDLE_KIND_XDG_APP">
        <doc xml:space="preserve">Desktop application deployment</doc>
      </member>
    </enumeration>
    <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_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>
          <parameter name="name_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @name, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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_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">
        <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 ID 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>
    </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="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_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="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_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>
          <parameter name="url_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @url, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <enumeration name="ImageAlphaFlags" c:type="AsImageAlphaFlags">
      <doc xml:space="preserve">The flags used for reporting the alpha cutouts in the image.</doc>
      <member name="none" value="0" c:identifier="AS_IMAGE_ALPHA_FLAG_NONE">
        <doc xml:space="preserve">No padding detected</doc>
      </member>
      <member name="top" value="1" c:identifier="AS_IMAGE_ALPHA_FLAG_TOP">
        <doc xml:space="preserve">Padding detected at the image top</doc>
      </member>
      <member name="bottom"
              value="2"
              c:identifier="AS_IMAGE_ALPHA_FLAG_BOTTOM">
        <doc xml:space="preserve">Padding detected at the image bottom</doc>
      </member>
      <member name="left" value="4" c:identifier="AS_IMAGE_ALPHA_FLAG_LEFT">
        <doc xml:space="preserve">Padding detected at the image left side</doc>
      </member>
      <member name="right" value="8" c:identifier="AS_IMAGE_ALPHA_FLAG_RIGHT">
        <doc xml:space="preserve">Padding detected at the image right side</doc>
      </member>
      <member name="internal"
              value="16"
              c:identifier="AS_IMAGE_ALPHA_FLAG_INTERNAL">
        <doc xml:space="preserve">Internal alpha cut out areas detected</doc>
      </member>
    </enumeration>
    <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="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">
      </member>
      <member name="blur" value="4" c:identifier="AS_IMAGE_SAVE_FLAG_BLUR">
      </member>
    </enumeration>
    <enumeration name="InfError"
                 c:type="AsInfError"
                 glib:error-domain="AsInfError">
      <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>
    </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>
    <constant name="MAJOR_VERSION" value="0" c:type="AS_MAJOR_VERSION">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION" value="1" c:type="AS_MICRO_VERSION">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="4" c:type="AS_MINOR_VERSION">
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="MarkupConvertFormat" c:type="AsMarkupConvertFormat">
      <doc xml:space="preserve">@AS_MARKUP_CONVERT_FORMAT_SIMPLE		UTF-8 text
The output format used when converting AppStream descriptions.</doc>
      <member name="simple"
              value="0"
              c:identifier="AS_MARKUP_CONVERT_FORMAT_SIMPLE">
      </member>
      <member name="markdown"
              value="1"
              c:identifier="AS_MARKUP_CONVERT_FORMAT_MARKDOWN">
        <doc xml:space="preserve">Markdown format</doc>
      </member>
    </enumeration>
    <enumeration name="NodeError"
                 c:type="AsNodeError"
                 glib:error-domain="AsNodeError">
      <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>
    <enumeration 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>
    </enumeration>
    <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">
        <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>
          <parameter name="value_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @value, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <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"
              value="5"
              c:identifier="AS_PROVIDE_KIND_FIRMWARE">
        <doc xml:space="preserve">A 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" value="8" c:identifier="AS_PROVIDE_KIND_DBUS">
        <doc xml:space="preserve">A D-Bus 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>
    </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>
      <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>
          <parameter name="location_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @location, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_checksum"
              c:identifier="as_release_get_checksum"
              version="0.3.5">
        <doc xml:space="preserve">Gets the release checksum, typically a SHA1 hash.</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>
          <parameter name="checksum_type" transfer-ownership="none">
            <type name="GLib.ChecksumType" c:type="GChecksumType"/>
          </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_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_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_checksum"
              c:identifier="as_release_set_checksum"
              version="0.3.5">
        <doc xml:space="preserve">Sets the 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_type" transfer-ownership="none">
            <doc xml:space="preserve">a #GChecksumType, e.g. %G_CHECKSUM_SHA1</doc>
            <type name="GLib.ChecksumType" c:type="GChecksumType"/>
          </parameter>
          <parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve">the checksum string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="checksum_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @checksum, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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>
          <parameter name="description_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @description, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </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_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>
          <parameter name="version_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @version, or -1 if %NULL-terminated.</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <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>
    <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="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_images"
              c:identifier="as_screenshot_get_images"
              version="0.1.0">
        <doc xml:space="preserve">Gets the image sizes included in the screenshot.</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_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>
          <parameter name="caption_len" transfer-ownership="none">
            <doc xml:space="preserve">the size of @caption, or -1 if %NULL-terminated.</doc>
            <type name="gsize" c:type="gsize"/>
          </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">
        <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>
    <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="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_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 #AsIdKind, e.g. %AS_ID_KIND_FIRMWARE</doc>
            <type name="IdKind" c:type="AsIdKind"/>
          </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_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.</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="data_len" transfer-ownership="none">
            <doc xml:space="preserve">Length of @data, or -1 if NULL terminated</doc>
            <type name="gssize" c:type="gssize"/>
          </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.</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_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_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_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="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="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_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 #AsIdKind, e.g. %AS_ID_KIND_FIRMWARE</doc>
            <type name="IdKind" c:type="AsIdKind"/>
          </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="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">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="changed" when="last" version="0.1.2">
        <doc xml:space="preserve">The ::changed signal is emitted when the files backing the store
have changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <enumeration 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>
    </enumeration>
    <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="_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>
    </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>
    <enumeration 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</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>
    </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="applications" value="1" c:identifier="AS_TAG_APPLICATIONS">
        <doc xml:space="preserve">`applications`</doc>
      </member>
      <member name="application" value="2" c:identifier="AS_TAG_APPLICATION">
        <doc xml:space="preserve">`application`</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` (or `appcategories`)</doc>
      </member>
      <member name="category" value="11" c:identifier="AS_TAG_CATEGORY">
        <doc xml:space="preserve">`category` (or `appcategory`)</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` (or `licence`)</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>
    </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>
    <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>
    </enumeration>
    <enumeration name="UtilsError"
                 c:type="AsUtilsError"
                 glib:error-domain="AsUtilsError">
      <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>
    <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="markup_convert"
              c:identifier="as_markup_convert"
              version="0.3.5"
              throws="1">
      <doc xml:space="preserve">Converts an XML description into a printable form.</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="markup" transfer-ownership="none">
          <doc xml:space="preserve">the text to copy.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="markup_len" transfer-ownership="none">
          <doc xml:space="preserve">the length of @markup, or -1 if @markup is NULL terminated.</doc>
          <type name="gssize" c:type="gssize"/>
        </parameter>
        <parameter name="format" transfer-ownership="none">
          <doc xml:space="preserve">the #AsMarkupConvertFormat, e.g. %AS_MARKUP_CONVERT_FORMAT_MARKDOWN</doc>
          <type name="MarkupConvertFormat" c:type="AsMarkupConvertFormat"/>
        </parameter>
      </parameters>
    </function>
    <function name="markup_convert_simple"
              c:identifier="as_markup_convert_simple"
              version="0.1.0"
              throws="1">
      <doc xml:space="preserve">Converts an XML description into a printable form.</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="markup" transfer-ownership="none">
          <doc xml:space="preserve">the text to copy.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="markup_len" transfer-ownership="none">
          <doc xml:space="preserve">the length of @markup, or -1 if @markup is NULL terminated.</doc>
          <type name="gssize" c:type="gssize"/>
        </parameter>
      </parameters>
    </function>
    <function name="markup_strsplit_words"
              c:identifier="as_markup_strsplit_words"
              version="0.3.5">
      <doc xml:space="preserve">Splits up a long line into an array of smaller strings, each being no longer
than @line_len. Words are not split.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">lines, or %NULL in event of an error</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve">the text to split.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="line_len" transfer-ownership="none">
          <doc xml:space="preserve">the maximum length of the output line</doc>
          <type name="guint" c:type="guint"/>
        </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 #GNode</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>
        <parameter name="value_len" transfer-ownership="none">
          <doc xml:space="preserve">length of @data, or -1 if NULL terminated</doc>
          <type name="gssize" c:type="gssize"/>
        </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 #GNode</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_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 #GNode, 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 #GNode, 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 #GNode 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 #GNode 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="data_len" transfer-ownership="none">
          <doc xml:space="preserve">Length of @data, or -1 if NULL terminated</doc>
          <type name="gssize" c:type="gssize"/>
        </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 #GNode</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 #GNode</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 #GNode</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 #GNode</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 #GNode</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 #GNode.</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 #GNode.</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 #GNode</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 #GNode</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 #GNode</doc>
        <type name="GLib.Node" c:type="GNode*"/>
      </return-value>
      <parameters>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:space="preserve">a parent #GNode.</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 #GNode.</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 #GNode.</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 #GNode</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 #GNode</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>
        <parameter name="comment_len" transfer-ownership="none">
          <doc xml:space="preserve">length of @data, or -1 if NULL terminated</doc>
          <type name="gssize" c:type="gssize"/>
        </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 #GNode</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="cdata_len" transfer-ownership="none">
          <doc xml:space="preserve">length of @data, or -1 if NULL terminated</doc>
          <type name="gssize" c:type="gssize"/>
        </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 #GNode</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 #GNode 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 #GNode.</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 #GNode.</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </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="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_check_url_exists"
              c:identifier="as_utils_check_url_exists"
              version="0.1.5"
              throws="1">
      <doc xml:space="preserve">Checks to see if a URL is reachable.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the URL was reachable and pointed to a non-zero-length file.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="url" transfer-ownership="none">
          <doc xml:space="preserve">the URL to check.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="timeout" transfer-ownership="none">
          <doc xml:space="preserve">the timeout in seconds.</doc>
          <type name="guint" c:type="guint"/>
        </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_get_string_overlap"
              c:identifier="as_utils_get_string_overlap"
              version="0.3.1">
      <doc xml:space="preserve">Return a prefix and sufffix that is common to both strings.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a newly allocated %NULL terminated string, or %NULL</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="s1" transfer-ownership="none">
          <doc xml:space="preserve">A string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="s2" transfer-ownership="none">
          <doc xml:space="preserve">Another string</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 icon 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 icon 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_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</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</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_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>
  </namespace>
</repository>
