<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="libxml2" version="2.0"/>
  <package name="libosinfo-1.0"/>
  <c:include name="osinfo/osinfo.h"/>
  <namespace name="Libosinfo"
             version="1.0"
             shared-library="libosinfo-1.0.so.0.0"
             c:identifier-prefixes="Osinfo"
             c:symbol-prefixes="osinfo">
    <constant name="ARCHITECTURE_ALL"
              value="all"
              c:type="OSINFO_ARCHITECTURE_ALL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="AVATAR_FORMAT_PROP_ALPHA"
              value="alpha"
              c:type="OSINFO_AVATAR_FORMAT_PROP_ALPHA">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="AVATAR_FORMAT_PROP_HEIGHT"
              value="height"
              c:type="OSINFO_AVATAR_FORMAT_PROP_HEIGHT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="AVATAR_FORMAT_PROP_MIME_TYPE"
              value="mime-type"
              c:type="OSINFO_AVATAR_FORMAT_PROP_MIME_TYPE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="AVATAR_FORMAT_PROP_WIDTH"
              value="width"
              c:type="OSINFO_AVATAR_FORMAT_PROP_WIDTH">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="AvatarFormat"
           c:symbol-prefix="avatar_format"
           c:type="OsinfoAvatarFormat"
           parent="Entity"
           glib:type-name="OsinfoAvatarFormat"
           glib:get-type="osinfo_avatar_format_get_type"
           glib:type-struct="AvatarFormatClass">
      <constructor name="new" c:identifier="osinfo_avatar_format_new">
        <doc xml:space="preserve">Construct a new user avatar file for an #OsinfoInstallScript.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the necessary information to create an avatar for
                          an user</doc>
          <type name="AvatarFormat" c:type="OsinfoAvatarFormat*"/>
        </return-value>
      </constructor>
      <method name="get_alpha" c:identifier="osinfo_avatar_format_get_alpha">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Whether alpha channel is supported in the avatar.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="avatar" transfer-ownership="none">
            <doc xml:space="preserve">the avatar info</doc>
            <type name="AvatarFormat" c:type="OsinfoAvatarFormat*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_height" c:identifier="osinfo_avatar_format_get_height">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the required height (in pixels) of the avatar, or -1.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="avatar" transfer-ownership="none">
            <doc xml:space="preserve">the avatar info</doc>
            <type name="AvatarFormat" c:type="OsinfoAvatarFormat*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mime_types"
              c:identifier="osinfo_avatar_format_get_mime_types">
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the required mime-types of the avatar.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="avatar" transfer-ownership="none">
            <doc xml:space="preserve">the avatar info</doc>
            <type name="AvatarFormat" c:type="OsinfoAvatarFormat*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width" c:identifier="osinfo_avatar_format_get_width">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the required width (in pixels) of the avatar, or -1.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="avatar" transfer-ownership="none">
            <doc xml:space="preserve">the avatar info</doc>
            <type name="AvatarFormat" c:type="OsinfoAvatarFormat*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="alpha" transfer-ownership="none">
        <doc xml:space="preserve">Whether alpha channel is supported in the avatar.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="height" transfer-ownership="none">
        <doc xml:space="preserve">The required height (in pixels) of the avatar.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="mime-types" transfer-ownership="container">
        <doc xml:space="preserve">The allowed mime-types for the avatar.</doc>
        <type name="GLib.List" c:type="gpointer">
          <type name="utf8"/>
        </type>
      </property>
      <property name="width" transfer-ownership="none">
        <doc xml:space="preserve">The required width (in pixels) of the avatar.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
    </class>
    <record name="AvatarFormatClass"
            c:type="OsinfoAvatarFormatClass"
            glib:is-gtype-struct-for="AvatarFormat">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <constant name="DEVICELINK_PROP_DRIVER"
              value="driver"
              c:type="OSINFO_DEVICELINK_PROP_DRIVER">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_DRIVER_PROP_ARCHITECTURE"
              value="arch"
              c:type="OSINFO_DEVICE_DRIVER_PROP_ARCHITECTURE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_DRIVER_PROP_DEVICE"
              value="device"
              c:type="OSINFO_DEVICE_DRIVER_PROP_DEVICE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_DRIVER_PROP_FILE"
              value="file"
              c:type="OSINFO_DEVICE_DRIVER_PROP_FILE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_DRIVER_PROP_LOCATION"
              value="location"
              c:type="OSINFO_DEVICE_DRIVER_PROP_LOCATION">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_DRIVER_PROP_PRE_INSTALLABLE"
              value="pre-installable"
              c:type="OSINFO_DEVICE_DRIVER_PROP_PRE_INSTALLABLE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_DRIVER_PROP_SIGNED"
              value="signed"
              c:type="OSINFO_DEVICE_DRIVER_PROP_SIGNED">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROP_BUS_TYPE"
              value="bus-type"
              c:type="OSINFO_DEVICE_PROP_BUS_TYPE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROP_CLASS"
              value="class"
              c:type="OSINFO_DEVICE_PROP_CLASS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROP_NAME"
              value="name"
              c:type="OSINFO_DEVICE_PROP_NAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROP_PRODUCT"
              value="product"
              c:type="OSINFO_DEVICE_PROP_PRODUCT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROP_PRODUCT_ID"
              value="product-id"
              c:type="OSINFO_DEVICE_PROP_PRODUCT_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROP_SUBSYSTEM"
              value="subsystem"
              c:type="OSINFO_DEVICE_PROP_SUBSYSTEM">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROP_VENDOR"
              value="vendor"
              c:type="OSINFO_DEVICE_PROP_VENDOR">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_PROP_VENDOR_ID"
              value="vendor-id"
              c:type="OSINFO_DEVICE_PROP_VENDOR_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Datamap"
           c:symbol-prefix="datamap"
           c:type="OsinfoDatamap"
           parent="Entity"
           glib:type-name="OsinfoDatamap"
           glib:get-type="osinfo_datamap_get_type"
           glib:type-struct="DatamapClass">
      <constructor name="new" c:identifier="osinfo_datamap_new">
        <return-value transfer-ownership="full">
          <type name="Datamap" c:type="OsinfoDatamap*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="insert" c:identifier="osinfo_datamap_insert">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <type name="Datamap" c:type="OsinfoDatamap*"/>
          </instance-parameter>
          <parameter name="inval" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="outval" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup" c:identifier="osinfo_datamap_lookup">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <type name="Datamap" c:type="OsinfoDatamap*"/>
          </instance-parameter>
          <parameter name="inval" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reverse_lookup"
              c:identifier="osinfo_datamap_reverse_lookup">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <type name="Datamap" c:type="OsinfoDatamap*"/>
          </instance-parameter>
          <parameter name="outval" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="DatamapPrivate" c:type="OsinfoDatamapPrivate*"/>
      </field>
    </class>
    <record name="DatamapClass"
            c:type="OsinfoDatamapClass"
            glib:is-gtype-struct-for="Datamap">
      <field name="parent_class">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <class name="DatamapList"
           c:symbol-prefix="datamaplist"
           c:type="OsinfoDatamapList"
           parent="List"
           glib:type-name="OsinfoDatamapList"
           glib:get-type="osinfo_datamaplist_get_type"
           glib:type-struct="DatamapListClass">
      <constructor name="new" c:identifier="osinfo_datamaplist_new">
        <doc xml:space="preserve">Construct a new install_datamap list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty install_datamap list</doc>
          <type name="DatamapList" c:type="OsinfoDatamapList*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="List" c:type="OsinfoList"/>
      </field>
      <field name="priv">
        <type name="DatamapListPrivate" c:type="OsinfoDatamapListPrivate*"/>
      </field>
    </class>
    <record name="DatamapListClass"
            c:type="OsinfoDatamapListClass"
            glib:is-gtype-struct-for="DatamapList">
      <field name="parent_class">
        <type name="ListClass" c:type="OsinfoListClass"/>
      </field>
    </record>
    <record name="DatamapListPrivate"
            c:type="OsinfoDatamapListPrivate"
            disguised="1">
    </record>
    <record name="DatamapPrivate" c:type="OsinfoDatamapPrivate" disguised="1">
    </record>
    <class name="Db"
           c:symbol-prefix="db"
           c:type="OsinfoDb"
           parent="GObject.Object"
           glib:type-name="OsinfoDb"
           glib:get-type="osinfo_db_get_type"
           glib:type-struct="DbClass">
      <constructor name="new" c:identifier="osinfo_db_new">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new database</doc>
          <type name="Db" c:type="OsinfoDb*"/>
        </return-value>
      </constructor>
      <method name="add_datamap" c:identifier="osinfo_db_add_datamap">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="datamap" transfer-ownership="none">
            <doc xml:space="preserve">an install datamap</doc>
            <type name="Datamap" c:type="OsinfoDatamap*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_deployment" c:identifier="osinfo_db_add_deployment">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="deployment" transfer-ownership="none">
            <doc xml:space="preserve">a deployment</doc>
            <type name="Deployment" c:type="OsinfoDeployment*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_device" c:identifier="osinfo_db_add_device">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">a device</doc>
            <type name="Device" c:type="OsinfoDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_install_script"
              c:identifier="osinfo_db_add_install_script">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">an install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_os" c:identifier="osinfo_db_add_os">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_platform" c:identifier="osinfo_db_add_platform">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="platform" transfer-ownership="none">
            <doc xml:space="preserve">an platform</doc>
            <type name="Platform" c:type="OsinfoPlatform*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_deployment" c:identifier="osinfo_db_find_deployment">
        <doc xml:space="preserve">Find the deployment for @os on @platform, if any.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the deployment, or NULL</doc>
          <type name="Deployment" c:type="OsinfoDeployment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">the operating system to find</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </parameter>
          <parameter name="platform" transfer-ownership="none">
            <doc xml:space="preserve">the virtualization platform</doc>
            <type name="Platform" c:type="OsinfoPlatform*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_datamap" c:identifier="osinfo_db_get_datamap">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the install datamap, or NULL if none is found</doc>
          <type name="Datamap" c:type="OsinfoDatamap*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the unique operating system identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_datamap_list"
              c:identifier="osinfo_db_get_datamap_list">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the list of install datamaps</doc>
          <type name="DatamapList" c:type="OsinfoDatamapList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_deployment" c:identifier="osinfo_db_get_deployment">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the operating system, or NULL if none is found</doc>
          <type name="Deployment" c:type="OsinfoDeployment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the unique operating system identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_deployment_list"
              c:identifier="osinfo_db_get_deployment_list">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the list of deployments</doc>
          <type name="DeploymentList" c:type="OsinfoDeploymentList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_device" c:identifier="osinfo_db_get_device">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device, or NULL if none is found</doc>
          <type name="Device" c:type="OsinfoDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the unique device identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_device_list" c:identifier="osinfo_db_get_device_list">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the list of devices</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_install_script"
              c:identifier="osinfo_db_get_install_script">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the install script, or NULL if none is found</doc>
          <type name="InstallScript" c:type="OsinfoInstallScript*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the unique operating system identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_install_script_list"
              c:identifier="osinfo_db_get_install_script_list">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the list of install scripts</doc>
          <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_os" c:identifier="osinfo_db_get_os">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the operating system, or NULL if none is found</doc>
          <type name="Os" c:type="OsinfoOs*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the unique operating system identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_os_list" c:identifier="osinfo_db_get_os_list">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the list of operating systems</doc>
          <type name="OsList" c:type="OsinfoOsList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_platform" c:identifier="osinfo_db_get_platform">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the platform, or NULL if none is found</doc>
          <type name="Platform" c:type="OsinfoPlatform*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the unique platform identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_platform_list"
              c:identifier="osinfo_db_get_platform_list">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the list of platforms</doc>
          <type name="PlatformList" c:type="OsinfoPlatformList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="guess_os_from_media"
              c:identifier="osinfo_db_guess_os_from_media"
              deprecated="1"
              deprecated-version="0.2.3">
        <doc xml:space="preserve">Guess operating system given an #OsinfoMedia object.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_db_identify_media() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the operating system, or NULL if guessing failed</doc>
          <type name="Os" c:type="OsinfoOs*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">the installation media</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </parameter>
          <parameter name="matched_media"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">the matched operating
system media</doc>
            <type name="Media" c:type="OsinfoMedia**"/>
          </parameter>
        </parameters>
      </method>
      <method name="guess_os_from_tree"
              c:identifier="osinfo_db_guess_os_from_tree">
        <doc xml:space="preserve">Guess operating system given an #OsinfoTree object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the operating system, or NULL if guessing failed</doc>
          <type name="Os" c:type="OsinfoOs*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">the installation tree</doc>
            <type name="Tree" c:type="OsinfoTree*"/>
          </parameter>
          <parameter name="matched_tree"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">the matched operating
system tree</doc>
            <type name="Tree" c:type="OsinfoTree**"/>
          </parameter>
        </parameters>
      </method>
      <method name="identify_media" c:identifier="osinfo_db_identify_media">
        <doc xml:space="preserve">Try to match a newly created @media with a media description from @db.
If found, @media will be filled with the corresponding information
stored in @db. In particular, after a call to osinfo_db_identify_media(), if
the media could be identified, its OsinfoEntify::id and OsinfoMedia::os
properties will be set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if @media was found in @db, FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoDb database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">the installation media
data</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unique_values_for_os_relationship"
              c:identifier="osinfo_db_unique_values_for_os_relationship">
        <doc xml:space="preserve">Get all operating systems that are the referee
in an operating system relationship.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of operating systems</doc>
          <type name="OsList" c:type="OsinfoOsList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="relshp" transfer-ownership="none">
            <doc xml:space="preserve">the product relationship</doc>
            <type name="ProductRelationship"
                  c:type="OsinfoProductRelationship"/>
          </parameter>
        </parameters>
      </method>
      <method name="unique_values_for_platform_relationship"
              c:identifier="osinfo_db_unique_values_for_platform_relationship">
        <doc xml:space="preserve">Get all platforms that are the referee
in an platform relationship.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of virtualization platforms</doc>
          <type name="PlatformList" c:type="OsinfoPlatformList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="relshp" transfer-ownership="none">
            <doc xml:space="preserve">the product relationship</doc>
            <type name="ProductRelationship"
                  c:type="OsinfoProductRelationship"/>
          </parameter>
        </parameters>
      </method>
      <method name="unique_values_for_property_in_deployment"
              c:identifier="osinfo_db_unique_values_for_property_in_deployment">
        <doc xml:space="preserve">Get all unique values for a named property amongst all
deployments in the database</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a list of strings</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="propName" transfer-ownership="none">
            <doc xml:space="preserve">a property name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unique_values_for_property_in_device"
              c:identifier="osinfo_db_unique_values_for_property_in_device">
        <doc xml:space="preserve">Get all unique values for a named property amongst all
devices in the database</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a list of strings</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="propName" transfer-ownership="none">
            <doc xml:space="preserve">a property name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unique_values_for_property_in_os"
              c:identifier="osinfo_db_unique_values_for_property_in_os">
        <doc xml:space="preserve">Get all unique values for a named property amongst all
operating systems in the database</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a list of strings</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="propName" transfer-ownership="none">
            <doc xml:space="preserve">a property name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unique_values_for_property_in_platform"
              c:identifier="osinfo_db_unique_values_for_property_in_platform">
        <doc xml:space="preserve">Get all unique values for a named property amongst all
platforms in the database</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a list of strings</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve">the database</doc>
            <type name="Db" c:type="OsinfoDb*"/>
          </instance-parameter>
          <parameter name="propName" transfer-ownership="none">
            <doc xml:space="preserve">a property name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DbPrivate" c:type="OsinfoDbPrivate*"/>
      </field>
    </class>
    <record name="DbClass"
            c:type="OsinfoDbClass"
            glib:is-gtype-struct-for="Db">
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="DbPrivate" c:type="OsinfoDbPrivate" disguised="1">
    </record>
    <class name="Deployment"
           c:symbol-prefix="deployment"
           c:type="OsinfoDeployment"
           parent="Entity"
           glib:type-name="OsinfoDeployment"
           glib:get-type="osinfo_deployment_get_type"
           glib:type-struct="DeploymentClass">
      <constructor name="new" c:identifier="osinfo_deployment_new">
        <doc xml:space="preserve">Create a new deployment entity</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A deployment entity</doc>
          <type name="Deployment" c:type="OsinfoDeployment*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the unique identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">the operating system to deploy</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </parameter>
          <parameter name="platform" transfer-ownership="none">
            <doc xml:space="preserve">the platform to deploy on</doc>
            <type name="Platform" c:type="OsinfoPlatform*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_device" c:identifier="osinfo_deployment_add_device">
        <doc xml:space="preserve">Associate a device with a deployment. The returned #OsinfoDeviceLink
can be used to record extra metadata against the link</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device association</doc>
          <type name="DeviceLink" c:type="OsinfoDeviceLink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="deployment" transfer-ownership="none">
            <doc xml:space="preserve">a deployment entity</doc>
            <type name="Deployment" c:type="OsinfoDeployment*"/>
          </instance-parameter>
          <parameter name="dev" transfer-ownership="none">
            <doc xml:space="preserve">the device to associate</doc>
            <type name="Device" c:type="OsinfoDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_device_links"
              c:identifier="osinfo_deployment_get_device_links">
        <doc xml:space="preserve">Retrieve all the associated devices matching the filter.
The filter matches against the link, not the device.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of #OsinfoDevice entities</doc>
          <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="deployment" transfer-ownership="none">
            <doc xml:space="preserve">a deployment entity</doc>
            <type name="Deployment" c:type="OsinfoDeployment*"/>
          </instance-parameter>
          <parameter name="filter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">an optional filter</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices" c:identifier="osinfo_deployment_get_devices">
        <doc xml:space="preserve">Retrieve all the associated devices matching the filter.
The filter matches against the device, not the link.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of #OsinfoDevice entities</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="deployment" transfer-ownership="none">
            <doc xml:space="preserve">a deployment entity</doc>
            <type name="Deployment" c:type="OsinfoDeployment*"/>
          </instance-parameter>
          <parameter name="filter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">an optional filter</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_os" c:identifier="osinfo_deployment_get_os">
        <doc xml:space="preserve">Get the operating system for the deployment</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an OS, or NULL</doc>
          <type name="Os" c:type="OsinfoOs*"/>
        </return-value>
        <parameters>
          <instance-parameter name="deployment" transfer-ownership="none">
            <doc xml:space="preserve">the deployment entity</doc>
            <type name="Deployment" c:type="OsinfoDeployment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_platform"
              c:identifier="osinfo_deployment_get_platform">
        <doc xml:space="preserve">Get the platform for the deployment</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a platform, or NULL</doc>
          <type name="Platform" c:type="OsinfoPlatform*"/>
        </return-value>
        <parameters>
          <instance-parameter name="deployment" transfer-ownership="none">
            <doc xml:space="preserve">the deployment entity</doc>
            <type name="Deployment" c:type="OsinfoDeployment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_preferred_device"
              c:identifier="osinfo_deployment_get_preferred_device">
        <doc xml:space="preserve">Get the preferred device matching a given filter</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a device, or NULL</doc>
          <type name="Device" c:type="OsinfoDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="deployment" transfer-ownership="none">
            <doc xml:space="preserve">the deployment entity</doc>
            <type name="Deployment" c:type="OsinfoDeployment*"/>
          </instance-parameter>
          <parameter name="filter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a device metadata filter</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_preferred_device_link"
              c:identifier="osinfo_deployment_get_preferred_device_link">
        <doc xml:space="preserve">Get the preferred device link matching a given filter and platform.
The filter matches against attributes on the link, not the device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a device, or NULL</doc>
          <type name="DeviceLink" c:type="OsinfoDeviceLink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="deployment" transfer-ownership="none">
            <doc xml:space="preserve">the deployment entity</doc>
            <type name="Deployment" c:type="OsinfoDeployment*"/>
          </instance-parameter>
          <parameter name="filter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a device metadata filter</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <property name="os"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The operating system to be deployed</doc>
        <type name="Os"/>
      </property>
      <property name="platform"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The platform to deploy on</doc>
        <type name="Platform"/>
      </property>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="DeploymentPrivate" c:type="OsinfoDeploymentPrivate*"/>
      </field>
    </class>
    <record name="DeploymentClass"
            c:type="OsinfoDeploymentClass"
            glib:is-gtype-struct-for="Deployment">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <class name="DeploymentList"
           c:symbol-prefix="deploymentlist"
           c:type="OsinfoDeploymentList"
           parent="List"
           glib:type-name="OsinfoDeploymentList"
           glib:get-type="osinfo_deploymentlist_get_type"
           glib:type-struct="DeploymentListClass">
      <constructor name="new" c:identifier="osinfo_deploymentlist_new">
        <doc xml:space="preserve">Construct a new deployment list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty deployment list</doc>
          <type name="DeploymentList" c:type="OsinfoDeploymentList*"/>
        </return-value>
      </constructor>
      <method name="new_copy"
              c:identifier="osinfo_deploymentlist_new_copy"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new deployment list that is filled with deployments
from @source</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_copy() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the deployment list</doc>
          <type name="DeploymentList" c:type="OsinfoDeploymentList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the deployment list to copy</doc>
            <type name="DeploymentList" c:type="OsinfoDeploymentList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="new_filtered"
              c:identifier="osinfo_deploymentlist_new_filtered"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new deployment list that is filled with deployments
from @source that match @filter</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_filtered() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a filtered copy of the deployment list</doc>
          <type name="DeploymentList" c:type="OsinfoDeploymentList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the deployment list to copy</doc>
            <type name="DeploymentList" c:type="OsinfoDeploymentList*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the filter to apply</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_intersection"
              c:identifier="osinfo_deploymentlist_new_intersection"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new deployment list that is filled with only the
deployments that are present in both @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_intersection() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an intersection of the two deployment lists</doc>
          <type name="DeploymentList" c:type="OsinfoDeploymentList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first deployment list to copy</doc>
            <type name="DeploymentList" c:type="OsinfoDeploymentList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second deployment list to copy</doc>
            <type name="DeploymentList" c:type="OsinfoDeploymentList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_union"
              c:identifier="osinfo_deploymentlist_new_union"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new deployment list that is filled with all the
deployments that are present in either @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_union() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a union of the two deployment lists</doc>
          <type name="DeploymentList" c:type="OsinfoDeploymentList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first deployment list to copy</doc>
            <type name="DeploymentList" c:type="OsinfoDeploymentList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second deployment list to copy</doc>
            <type name="DeploymentList" c:type="OsinfoDeploymentList*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="List" c:type="OsinfoList"/>
      </field>
      <field name="priv">
        <type name="DeploymentListPrivate"
              c:type="OsinfoDeploymentListPrivate*"/>
      </field>
    </class>
    <record name="DeploymentListClass"
            c:type="OsinfoDeploymentListClass"
            glib:is-gtype-struct-for="DeploymentList">
      <field name="parent_class" readable="0" private="1">
        <type name="ListClass" c:type="OsinfoListClass"/>
      </field>
    </record>
    <record name="DeploymentListPrivate"
            c:type="OsinfoDeploymentListPrivate"
            disguised="1">
    </record>
    <record name="DeploymentPrivate"
            c:type="OsinfoDeploymentPrivate"
            disguised="1">
    </record>
    <class name="Device"
           c:symbol-prefix="device"
           c:type="OsinfoDevice"
           parent="Entity"
           glib:type-name="OsinfoDevice"
           glib:get-type="osinfo_device_get_type"
           glib:type-struct="DeviceClass">
      <constructor name="new" c:identifier="osinfo_device_new">
        <return-value transfer-ownership="full">
          <type name="Device" c:type="OsinfoDevice*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_bus_type" c:identifier="osinfo_device_get_bus_type">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dev" transfer-ownership="none">
            <type name="Device" c:type="OsinfoDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_class" c:identifier="osinfo_device_get_class">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dev" transfer-ownership="none">
            <type name="Device" c:type="OsinfoDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="osinfo_device_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dev" transfer-ownership="none">
            <type name="Device" c:type="OsinfoDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_product" c:identifier="osinfo_device_get_product">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dev" transfer-ownership="none">
            <type name="Device" c:type="OsinfoDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_product_id"
              c:identifier="osinfo_device_get_product_id">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dev" transfer-ownership="none">
            <type name="Device" c:type="OsinfoDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subsystem" c:identifier="osinfo_device_get_subsystem">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dev" transfer-ownership="none">
            <type name="Device" c:type="OsinfoDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vendor" c:identifier="osinfo_device_get_vendor">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dev" transfer-ownership="none">
            <type name="Device" c:type="OsinfoDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vendor_id" c:identifier="osinfo_device_get_vendor_id">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dev" transfer-ownership="none">
            <type name="Device" c:type="OsinfoDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="DevicePrivate" c:type="OsinfoDevicePrivate*"/>
      </field>
    </class>
    <record name="DeviceClass"
            c:type="OsinfoDeviceClass"
            glib:is-gtype-struct-for="Device">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <class name="DeviceDriver"
           c:symbol-prefix="device_driver"
           c:type="OsinfoDeviceDriver"
           parent="Entity"
           glib:type-name="OsinfoDeviceDriver"
           glib:get-type="osinfo_device_driver_get_type"
           glib:type-struct="DeviceDriverClass">
      <constructor name="new" c:identifier="osinfo_device_driver_new">
        <return-value transfer-ownership="full">
          <type name="DeviceDriver" c:type="OsinfoDeviceDriver*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_device" c:identifier="osinfo_device_driver_add_device">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="driver" transfer-ownership="none">
            <type name="DeviceDriver" c:type="OsinfoDeviceDriver*"/>
          </instance-parameter>
          <parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="OsinfoDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_architecture"
              c:identifier="osinfo_device_driver_get_architecture">
        <doc xml:space="preserve">Retrieves the target hardware architecture of @driver.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the hardware architecture.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="driver" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoDeviceDriver instance</doc>
            <type name="DeviceDriver" c:type="OsinfoDeviceDriver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_devices"
              c:identifier="osinfo_device_driver_get_devices">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The list of devices supported by this driver.</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="driver" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoDeviceDriver instance</doc>
            <type name="DeviceDriver" c:type="OsinfoDeviceDriver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_files" c:identifier="osinfo_device_driver_get_files">
        <doc xml:space="preserve">Retrieves the names of driver files under the location returned by
#osinfo_device_driver_get_location.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">The list of driver files.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="driver" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoDeviceDriver instance</doc>
            <type name="DeviceDriver" c:type="OsinfoDeviceDriver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location"
              c:identifier="osinfo_device_driver_get_location">
        <doc xml:space="preserve">Retrieves the location of the @driver as a URL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the location of the driver.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="driver" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoDeviceDriver instance</doc>
            <type name="DeviceDriver" c:type="OsinfoDeviceDriver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pre_installable"
              c:identifier="osinfo_device_driver_get_pre_installable">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if @driver is pre-installable, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="driver" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoDeviceDriver instance</doc>
            <type name="DeviceDriver" c:type="OsinfoDeviceDriver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_signed" c:identifier="osinfo_device_driver_get_signed">
        <doc xml:space="preserve">Some OS vendors recommend or require device drivers to be signed by them
before these device drivers could be installed on their OS.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if @driver is signed, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="driver" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoDeviceDriver instance</doc>
            <type name="DeviceDriver" c:type="OsinfoDeviceDriver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="DeviceDriverPrivate" c:type="OsinfoDeviceDriverPrivate*"/>
      </field>
    </class>
    <record name="DeviceDriverClass"
            c:type="OsinfoDeviceDriverClass"
            glib:is-gtype-struct-for="DeviceDriver">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <class name="DeviceDriverList"
           c:symbol-prefix="device_driverlist"
           c:type="OsinfoDeviceDriverList"
           parent="List"
           glib:type-name="OsinfoDeviceDriverList"
           glib:get-type="osinfo_device_driverlist_get_type"
           glib:type-struct="DeviceDriverListClass">
      <constructor name="new" c:identifier="osinfo_device_driverlist_new">
        <doc xml:space="preserve">Construct a new device driver list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty device driver list</doc>
          <type name="DeviceDriverList" c:type="OsinfoDeviceDriverList*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="List" c:type="OsinfoList"/>
      </field>
      <field name="priv">
        <type name="DeviceDriverListPrivate"
              c:type="OsinfoDeviceDriverListPrivate*"/>
      </field>
    </class>
    <record name="DeviceDriverListClass"
            c:type="OsinfoDeviceDriverListClass"
            glib:is-gtype-struct-for="DeviceDriverList">
      <field name="parent_class" readable="0" private="1">
        <type name="ListClass" c:type="OsinfoListClass"/>
      </field>
    </record>
    <record name="DeviceDriverListPrivate"
            c:type="OsinfoDeviceDriverListPrivate"
            disguised="1">
    </record>
    <record name="DeviceDriverPrivate"
            c:type="OsinfoDeviceDriverPrivate"
            disguised="1">
    </record>
    <enumeration name="DeviceDriverSigningReq"
                 glib:type-name="OsinfoDeviceDriverSigningReq"
                 glib:get-type="osinfo_device_driver_signing_req_get_type"
                 c:type="OsinfoDeviceDriverSigningReq">
      <member name="none"
              value="0"
              c:identifier="OSINFO_DEVICE_DRIVER_SIGNING_REQ_NONE"
              glib:nick="none">
        <doc xml:space="preserve">Script do not require device drivers
to be signed.</doc>
      </member>
      <member name="strict"
              value="1"
              c:identifier="OSINFO_DEVICE_DRIVER_SIGNING_REQ_STRICT"
              glib:nick="strict">
        <doc xml:space="preserve">Script must only be given signed
device drivers. Some scripts will allow overriding this requirement through
#osinfo_install_config_set_driver_signing function. You can query if a
script supports this by checking if
#OSINFO_INSTALL_CONFIG_PROP_DRIVER_SIGNING configuration parameter is used
by the script in question (or other scripts in the same profile).</doc>
      </member>
      <member name="warn"
              value="2"
              c:identifier="OSINFO_DEVICE_DRIVER_SIGNING_REQ_WARN"
              glib:nick="warn">
        <doc xml:space="preserve">A warning will be issued by OS
installer if device drivers are not signed and most probably require user
input (and thus breaking unattended installation). See
#OSINFO_DEVICE_DRIVER_SIGNING_REQ_STRICT on how this warning can be disabled
for some scripts.</doc>
      </member>
    </enumeration>
    <class name="DeviceLink"
           c:symbol-prefix="devicelink"
           c:type="OsinfoDeviceLink"
           parent="Entity"
           glib:type-name="OsinfoDeviceLink"
           glib:get-type="osinfo_devicelink_get_type"
           glib:type-struct="DeviceLinkClass">
      <constructor name="new" c:identifier="osinfo_devicelink_new">
        <doc xml:space="preserve">Construct a new link for an #OsinfoDevice. The unique ID
of the link is set to match the ID of the target device.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new device link</doc>
          <type name="DeviceLink" c:type="OsinfoDeviceLink*"/>
        </return-value>
        <parameters>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">the target device</doc>
            <type name="Device" c:type="OsinfoDevice*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_driver" c:identifier="osinfo_devicelink_get_driver">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <type name="DeviceLink" c:type="OsinfoDeviceLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_target" c:identifier="osinfo_devicelink_get_target">
        <doc xml:space="preserve">Retrieve the #OsinfoDevice that the link points to.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the target of the device link</doc>
          <type name="Device" c:type="OsinfoDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">the device link</doc>
            <type name="DeviceLink" c:type="OsinfoDeviceLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="target"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The target of the device link.</doc>
        <type name="Device"/>
      </property>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="DeviceLinkPrivate" c:type="OsinfoDeviceLinkPrivate*"/>
      </field>
    </class>
    <record name="DeviceLinkClass"
            c:type="OsinfoDeviceLinkClass"
            glib:is-gtype-struct-for="DeviceLink">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <class name="DeviceLinkFilter"
           c:symbol-prefix="devicelinkfilter"
           c:type="OsinfoDeviceLinkFilter"
           parent="Filter"
           glib:type-name="OsinfoDeviceLinkFilter"
           glib:get-type="osinfo_devicelinkfilter_get_type"
           glib:type-struct="DeviceLinkFilterClass">
      <constructor name="new" c:identifier="osinfo_devicelinkfilter_new">
        <doc xml:space="preserve">Construct a new filter that matches all operating
systems</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new filter</doc>
          <type name="DeviceLinkFilter" c:type="OsinfoDeviceLinkFilter*"/>
        </return-value>
        <parameters>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the target device filter</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_target_filter"
              c:identifier="osinfo_devicelinkfilter_get_target_filter">
        <doc xml:space="preserve">Retrieve the filter used to match against the target of
the device link</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the target filter object</doc>
          <type name="Filter" c:type="OsinfoFilter*"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the filter object</doc>
            <type name="DeviceLinkFilter" c:type="OsinfoDeviceLinkFilter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="target-filter"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The operating system to be deployed</doc>
        <type name="Filter"/>
      </property>
      <field name="parent_instance">
        <type name="Filter" c:type="OsinfoFilter"/>
      </field>
      <field name="priv">
        <type name="DeviceLinkFilterPrivate"
              c:type="OsinfoDeviceLinkFilterPrivate*"/>
      </field>
    </class>
    <record name="DeviceLinkFilterClass"
            c:type="OsinfoDeviceLinkFilterClass"
            glib:is-gtype-struct-for="DeviceLinkFilter">
      <field name="parent_class" readable="0" private="1">
        <type name="FilterClass" c:type="OsinfoFilterClass"/>
      </field>
    </record>
    <record name="DeviceLinkFilterPrivate"
            c:type="OsinfoDeviceLinkFilterPrivate"
            disguised="1">
    </record>
    <class name="DeviceLinkList"
           c:symbol-prefix="devicelinklist"
           c:type="OsinfoDeviceLinkList"
           parent="List"
           glib:type-name="OsinfoDeviceLinkList"
           glib:get-type="osinfo_devicelinklist_get_type"
           glib:type-struct="DeviceLinkListClass">
      <constructor name="new" c:identifier="osinfo_devicelinklist_new">
        <doc xml:space="preserve">Construct a new devicelink list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty devicelink list</doc>
          <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
        </return-value>
      </constructor>
      <method name="get_devices"
              c:identifier="osinfo_devicelinklist_get_devices">
        <doc xml:space="preserve">Get all devices matching a given filter</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of devices</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">an device link list</doc>
            <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
          </instance-parameter>
          <parameter name="filter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">an optional device property filter</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_copy"
              c:identifier="osinfo_devicelinklist_new_copy"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new devicelink list that is filled with devicelinks
from @source</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_copy() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the devicelink list</doc>
          <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the devicelink list to copy</doc>
            <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="new_filtered"
              c:identifier="osinfo_devicelinklist_new_filtered"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new devicelink list that is filled with devicelinks
from @source that match @filter</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_filtered() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a filtered copy of the devicelink list</doc>
          <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the devicelink list to copy</doc>
            <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the filter to apply</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_intersection"
              c:identifier="osinfo_devicelinklist_new_intersection"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new devicelink list that is filled with only the
devicelinks that are present in both @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_intersection() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an intersection of the two devicelink lists</doc>
          <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first devicelink list to copy</doc>
            <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second devicelink list to copy</doc>
            <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_union"
              c:identifier="osinfo_devicelinklist_new_union"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new devicelink list that is filled with all the
devicelinks that are present in either @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_union() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a union of the two devicelink lists</doc>
          <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first devicelink list to copy</doc>
            <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second devicelink list to copy</doc>
            <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="List" c:type="OsinfoList"/>
      </field>
      <field name="priv">
        <type name="DeviceLinkListPrivate"
              c:type="OsinfoDeviceLinkListPrivate*"/>
      </field>
    </class>
    <record name="DeviceLinkListClass"
            c:type="OsinfoDeviceLinkListClass"
            glib:is-gtype-struct-for="DeviceLinkList">
      <field name="parent_class" readable="0" private="1">
        <type name="ListClass" c:type="OsinfoListClass"/>
      </field>
    </record>
    <record name="DeviceLinkListPrivate"
            c:type="OsinfoDeviceLinkListPrivate"
            disguised="1">
    </record>
    <record name="DeviceLinkPrivate"
            c:type="OsinfoDeviceLinkPrivate"
            disguised="1">
    </record>
    <class name="DeviceList"
           c:symbol-prefix="devicelist"
           c:type="OsinfoDeviceList"
           parent="List"
           glib:type-name="OsinfoDeviceList"
           glib:get-type="osinfo_devicelist_get_type"
           glib:type-struct="DeviceListClass">
      <constructor name="new" c:identifier="osinfo_devicelist_new">
        <doc xml:space="preserve">Construct a new device list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty device list</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
      </constructor>
      <method name="new_copy"
              c:identifier="osinfo_devicelist_new_copy"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new device list that is filled with devices
from @source</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_copy() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the device list</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the device list to copy</doc>
            <type name="DeviceList" c:type="OsinfoDeviceList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="new_filtered"
              c:identifier="osinfo_devicelist_new_filtered"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new device list that is filled with devices
from @source that match @filter</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_filtered() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a filtered copy of the device list</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the device list to copy</doc>
            <type name="DeviceList" c:type="OsinfoDeviceList*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the filter to apply</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_intersection"
              c:identifier="osinfo_devicelist_new_intersection"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new device list that is filled with only the
devices that are present in both @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_intersection() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an intersection of the two device lists</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first device list to copy</doc>
            <type name="DeviceList" c:type="OsinfoDeviceList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second device list to copy</doc>
            <type name="DeviceList" c:type="OsinfoDeviceList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_union"
              c:identifier="osinfo_devicelist_new_union"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new device list that is filled with all the
devices that are present in either @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_union() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a union of the two device lists</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first device list to copy</doc>
            <type name="DeviceList" c:type="OsinfoDeviceList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second device list to copy</doc>
            <type name="DeviceList" c:type="OsinfoDeviceList*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="List" c:type="OsinfoList"/>
      </field>
      <field name="priv">
        <type name="DeviceListPrivate" c:type="OsinfoDeviceListPrivate*"/>
      </field>
    </class>
    <record name="DeviceListClass"
            c:type="OsinfoDeviceListClass"
            glib:is-gtype-struct-for="DeviceList">
      <field name="parent_class" readable="0" private="1">
        <type name="ListClass" c:type="OsinfoListClass"/>
      </field>
    </record>
    <record name="DeviceListPrivate"
            c:type="OsinfoDeviceListPrivate"
            disguised="1">
    </record>
    <record name="DevicePrivate" c:type="OsinfoDevicePrivate" disguised="1">
    </record>
    <constant name="ENTITY_PROP_ID" value="id" c:type="OSINFO_ENTITY_PROP_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Entity"
           c:symbol-prefix="entity"
           c:type="OsinfoEntity"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="OsinfoEntity"
           glib:get-type="osinfo_entity_get_type"
           glib:type-struct="EntityClass">
      <method name="add_param" c:identifier="osinfo_entity_add_param">
        <doc xml:space="preserve">Adds a new parameter against the entity. A key can have multiple
values associated. Thus repeated calls with the same key will
build up a list of possible values.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoEntity containing the parameters</doc>
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the name of the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the data to associated with that key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_param" c:identifier="osinfo_entity_clear_param">
        <doc xml:space="preserve">Remove all values associated with a key</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoEntity containing the parameters</doc>
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the name of the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="osinfo_entity_get_id">
        <doc xml:space="preserve">Retrieves the unique key for the entity. The format of identifiers
is undefined, but the recommended practice is to use a URI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the unique key for the entity</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoEntity</doc>
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_param_keys"
              c:identifier="osinfo_entity_get_param_keys">
        <doc xml:space="preserve">Retrieve all the known parameter keys associated with
the entity</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">The list of string parameters</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoEntity containing the parameters</doc>
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_param_value"
              c:identifier="osinfo_entity_get_param_value">
        <doc xml:space="preserve">Retrieve the parameter value associated with a named key. If
multiple values are stored against the key, only the first
value is returned. If no value is associated, NULL is returned</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the value associated with the key, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoEntity containing the parameters</doc>
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the name of the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_param_value_boolean"
              c:identifier="osinfo_entity_get_param_value_boolean">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_param_value_boolean_with_default"
              c:identifier="osinfo_entity_get_param_value_boolean_with_default">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="default_value" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_param_value_enum"
              c:identifier="osinfo_entity_get_param_value_enum">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="enum_type" transfer-ownership="none">
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="default_value" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_param_value_int64"
              c:identifier="osinfo_entity_get_param_value_int64">
        <return-value transfer-ownership="none">
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_param_value_int64_with_default"
              c:identifier="osinfo_entity_get_param_value_int64_with_default">
        <return-value transfer-ownership="none">
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="default_value" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_param_value_list"
              c:identifier="osinfo_entity_get_param_value_list">
        <doc xml:space="preserve">Retrieve all the parameter values associated with a named
key. If no values are associated, NULL is returned</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the values associated with the key</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoEntity containing the parameters</doc>
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the name of the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_param" c:identifier="osinfo_entity_set_param">
        <doc xml:space="preserve">Sets a new parameter against the entity. If the key already
has a value associated with it, the existing value will be
cleared.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoEntity containing the parameters</doc>
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the name of the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the data to associated with that key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_param_boolean"
              c:identifier="osinfo_entity_set_param_boolean">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_param_enum"
              c:identifier="osinfo_entity_set_param_enum">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="enum_type" transfer-ownership="none">
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_param_int64"
              c:identifier="osinfo_entity_set_param_int64">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entity" transfer-ownership="none">
            <type name="Entity" c:type="OsinfoEntity*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <property name="id" writable="1" construct="1" transfer-ownership="none">
        <doc xml:space="preserve">The unique identifier for the entity The format of identifiers
is undefined, but the recommended practice is to use a URI.
This parameter must be set at time of construction as no
default value is provided.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="EntityPrivate" c:type="OsinfoEntityPrivate*"/>
      </field>
    </class>
    <record name="EntityClass"
            c:type="OsinfoEntityClass"
            glib:is-gtype-struct-for="Entity">
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="EntityPrivate" c:type="OsinfoEntityPrivate" disguised="1">
    </record>
    <class name="Filter"
           c:symbol-prefix="filter"
           c:type="OsinfoFilter"
           parent="GObject.Object"
           glib:type-name="OsinfoFilter"
           glib:get-type="osinfo_filter_get_type"
           glib:type-struct="FilterClass">
      <constructor name="new" c:identifier="osinfo_filter_new">
        <doc xml:space="preserve">Construct a new filter that matches all entities</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a filter object</doc>
          <type name="Filter" c:type="OsinfoFilter*"/>
        </return-value>
      </constructor>
      <virtual-method name="matches" invoker="matches">
        <doc xml:space="preserve">Determine of an entity matches a filter</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if entity passes the filter, FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">a filter object</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </instance-parameter>
          <parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve">an entity to query</doc>
            <type name="Entity" c:type="OsinfoEntity*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_constraint"
              c:identifier="osinfo_filter_add_constraint">
        <doc xml:space="preserve">Adds a constraint that requires the entity to have
a property key @propName with a value of @propVal.
If multiple constraints are added for the same
@propName, with different values, the entity have
all property values.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">a filter object</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </instance-parameter>
          <parameter name="propName" transfer-ownership="none">
            <doc xml:space="preserve">the name of the parameter key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="propVal" transfer-ownership="none">
            <doc xml:space="preserve">the required property value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_constraint"
              c:identifier="osinfo_filter_clear_constraint">
        <doc xml:space="preserve">Remove all filter constraints for the matching property
name.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">a filter object</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </instance-parameter>
          <parameter name="propName" transfer-ownership="none">
            <doc xml:space="preserve">name of the key to remove constraints for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_constraints"
              c:identifier="osinfo_filter_clear_constraints">
        <doc xml:space="preserve">Remove all filter property constraints</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">a filter object</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_constraint_keys"
              c:identifier="osinfo_filter_get_constraint_keys">
        <doc xml:space="preserve">Get a list of all constraint property keys</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">List of constraint keys</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">a filter object</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_constraint_values"
              c:identifier="osinfo_filter_get_constraint_values">
        <doc xml:space="preserve">Get a list values for filter constriants with the named key</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">List of constraint values</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">a filter object</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </instance-parameter>
          <parameter name="propName" transfer-ownership="none">
            <doc xml:space="preserve">the name of the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="matches" c:identifier="osinfo_filter_matches">
        <doc xml:space="preserve">Determine of an entity matches a filter</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if entity passes the filter, FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">a filter object</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </instance-parameter>
          <parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve">an entity to query</doc>
            <type name="Entity" c:type="OsinfoEntity*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FilterPrivate" c:type="OsinfoFilterPrivate*"/>
      </field>
    </class>
    <record name="FilterClass"
            c:type="OsinfoFilterClass"
            glib:is-gtype-struct-for="Filter">
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="matches">
        <callback name="matches">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">TRUE if entity passes the filter, FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="filter" transfer-ownership="none">
              <doc xml:space="preserve">a filter object</doc>
              <type name="Filter" c:type="OsinfoFilter*"/>
            </parameter>
            <parameter name="entity" transfer-ownership="none">
              <doc xml:space="preserve">an entity to query</doc>
              <type name="Entity" c:type="OsinfoEntity*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="FilterPrivate" c:type="OsinfoFilterPrivate" disguised="1">
    </record>
    <constant name="GIBIBYTES" value="1073741824" c:type="OSINFO_GIBIBYTES">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="INSTALL_CONFIG_PARAM_PROP_DATAMAP"
              value="value-map"
              c:type="OSINFO_INSTALL_CONFIG_PARAM_PROP_DATAMAP">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PARAM_PROP_NAME"
              value="name"
              c:type="OSINFO_INSTALL_CONFIG_PARAM_PROP_NAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PARAM_PROP_POLICY"
              value="policy"
              c:type="OSINFO_INSTALL_CONFIG_PARAM_PROP_POLICY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_ADMIN_PASSWORD"
              value="admin-password"
              c:type="OSINFO_INSTALL_CONFIG_PROP_ADMIN_PASSWORD">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_AVATAR_DISK"
              value="avatar-disk"
              c:type="OSINFO_INSTALL_CONFIG_PROP_AVATAR_DISK">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_AVATAR_LOCATION"
              value="avatar-location"
              c:type="OSINFO_INSTALL_CONFIG_PROP_AVATAR_LOCATION">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_DRIVER_SIGNING"
              value="driver-signing"
              c:type="OSINFO_INSTALL_CONFIG_PROP_DRIVER_SIGNING">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_HARDWARE_ARCH"
              value="hardware-arch"
              c:type="OSINFO_INSTALL_CONFIG_PROP_HARDWARE_ARCH">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_HOSTNAME"
              value="hostname"
              c:type="OSINFO_INSTALL_CONFIG_PROP_HOSTNAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_L10N_KEYBOARD"
              value="l10n-keyboard"
              c:type="OSINFO_INSTALL_CONFIG_PROP_L10N_KEYBOARD">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_L10N_LANGUAGE"
              value="l10n-language"
              c:type="OSINFO_INSTALL_CONFIG_PROP_L10N_LANGUAGE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_L10N_TIMEZONE"
              value="l10n-timezone"
              c:type="OSINFO_INSTALL_CONFIG_PROP_L10N_TIMEZONE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_POST_INSTALL_DRIVERS_DISK"
              value="post-install-drivers-disk"
              c:type="OSINFO_INSTALL_CONFIG_PROP_POST_INSTALL_DRIVERS_DISK">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_POST_INSTALL_DRIVERS_LOCATION"
              value="post-install-drivers-location"
              c:type="OSINFO_INSTALL_CONFIG_PROP_POST_INSTALL_DRIVERS_LOCATION">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_PRE_INSTALL_DRIVERS_DISK"
              value="pre-install-drivers-disk"
              c:type="OSINFO_INSTALL_CONFIG_PROP_PRE_INSTALL_DRIVERS_DISK">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_PRE_INSTALL_DRIVERS_LOCATION"
              value="pre-install-drivers-location"
              c:type="OSINFO_INSTALL_CONFIG_PROP_PRE_INSTALL_DRIVERS_LOCATION">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_REG_LOGIN"
              value="reg-login"
              c:type="OSINFO_INSTALL_CONFIG_PROP_REG_LOGIN">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_REG_PASSWORD"
              value="reg-password"
              c:type="OSINFO_INSTALL_CONFIG_PROP_REG_PASSWORD">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_REG_PRODUCTKEY"
              value="reg-product-key"
              c:type="OSINFO_INSTALL_CONFIG_PROP_REG_PRODUCTKEY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_SCRIPT_DISK"
              value="script-disk"
              c:type="OSINFO_INSTALL_CONFIG_PROP_SCRIPT_DISK">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_TARGET_DISK"
              value="target-disk"
              c:type="OSINFO_INSTALL_CONFIG_PROP_TARGET_DISK">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_USER_ADMIN"
              value="user-admin"
              c:type="OSINFO_INSTALL_CONFIG_PROP_USER_ADMIN">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_USER_AUTOLOGIN"
              value="user-autologin"
              c:type="OSINFO_INSTALL_CONFIG_PROP_USER_AUTOLOGIN">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_USER_LOGIN"
              value="user-login"
              c:type="OSINFO_INSTALL_CONFIG_PROP_USER_LOGIN">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_USER_PASSWORD"
              value="user-password"
              c:type="OSINFO_INSTALL_CONFIG_PROP_USER_PASSWORD">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_CONFIG_PROP_USER_REALNAME"
              value="user-realname"
              c:type="OSINFO_INSTALL_CONFIG_PROP_USER_REALNAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROFILE_DESKTOP"
              value="desktop"
              c:type="OSINFO_INSTALL_SCRIPT_PROFILE_DESKTOP">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROFILE_JEOS"
              value="jeos"
              c:type="OSINFO_INSTALL_SCRIPT_PROFILE_JEOS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROP_CAN_POST_INSTALL_DRIVERS"
              value="can-post-install-drivers"
              c:type="OSINFO_INSTALL_SCRIPT_PROP_CAN_POST_INSTALL_DRIVERS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROP_CAN_PRE_INSTALL_DRIVERS"
              value="can-pre-install-drivers"
              c:type="OSINFO_INSTALL_SCRIPT_PROP_CAN_PRE_INSTALL_DRIVERS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROP_EXPECTED_FILENAME"
              value="expected-filename"
              c:type="OSINFO_INSTALL_SCRIPT_PROP_EXPECTED_FILENAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROP_INJECTION_METHOD"
              value="injection-method"
              c:type="OSINFO_INSTALL_SCRIPT_PROP_INJECTION_METHOD">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROP_NEEDS_INTERNET"
              value="needs-internet"
              c:type="OSINFO_INSTALL_SCRIPT_PROP_NEEDS_INTERNET">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROP_PATH_FORMAT"
              value="path-format"
              c:type="OSINFO_INSTALL_SCRIPT_PROP_PATH_FORMAT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROP_POST_INSTALL_DRIVERS_SIGNING_REQ"
              value="post-install-drivers-signing-req"
              c:type="OSINFO_INSTALL_SCRIPT_PROP_POST_INSTALL_DRIVERS_SIGNING_REQ">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROP_PRE_INSTALL_DRIVERS_SIGNING_REQ"
              value="pre-install-drivers-signing-req"
              c:type="OSINFO_INSTALL_SCRIPT_PROP_PRE_INSTALL_DRIVERS_SIGNING_REQ">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROP_PRODUCT_KEY_FORMAT"
              value="product-key-format"
              c:type="OSINFO_INSTALL_SCRIPT_PROP_PRODUCT_KEY_FORMAT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROP_PROFILE"
              value="profile"
              c:type="OSINFO_INSTALL_SCRIPT_PROP_PROFILE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROP_TEMPLATE_DATA"
              value="template-data"
              c:type="OSINFO_INSTALL_SCRIPT_PROP_TEMPLATE_DATA">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INSTALL_SCRIPT_PROP_TEMPLATE_URI"
              value="template-uri"
              c:type="OSINFO_INSTALL_SCRIPT_PROP_TEMPLATE_URI">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="InstallConfig"
           c:symbol-prefix="install_config"
           c:type="OsinfoInstallConfig"
           parent="Entity"
           glib:type-name="OsinfoInstallConfig"
           glib:get-type="osinfo_install_config_get_type"
           glib:type-struct="InstallConfigClass">
      <constructor name="new" c:identifier="osinfo_install_config_new">
        <doc xml:space="preserve">Construct a new install configuration with default values for
language, keyboard, timezone and admin password. The default values
are to use an 'en_US' language and keyboard, and an 'America/New_York'
timezone. The admin password is set to a random 8 character password.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an install configuration with default
values</doc>
          <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the unique identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_admin_password"
              c:identifier="osinfo_install_config_get_admin_password">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_avatar_disk"
              c:identifier="osinfo_install_config_get_avatar_disk">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The value of #OSINFO_INSTALL_CONFIG_PROP_AVATAR_DISK parameter,
         or NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_avatar_location"
              c:identifier="osinfo_install_config_get_avatar_location">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The value of #OSINFO_INSTALL_CONFIG_PROP_AVATAR_LOCATION parameter,
         or NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_driver_signing"
              c:identifier="osinfo_install_config_get_driver_signing">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if driver signing is currently enabled, %FALSE otherwise, see
#osinfo_install_config_set_driver_signing() for more details about driver
signing.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hardware_arch"
              c:identifier="osinfo_install_config_get_hardware_arch">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hostname"
              c:identifier="osinfo_install_config_get_hostname">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_l10n_keyboard"
              c:identifier="osinfo_install_config_get_l10n_keyboard">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_l10n_language"
              c:identifier="osinfo_install_config_get_l10n_language">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_l10n_timezone"
              c:identifier="osinfo_install_config_get_l10n_timezone">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_post_install_drivers_disk"
              c:identifier="osinfo_install_config_get_post_install_drivers_disk">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The disk on which post-installation drivers are located, or NULL if
its not set using #osinfo_install_config_set_post_install_drivers_disk().</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_post_install_drivers_location"
              c:identifier="osinfo_install_config_get_post_install_drivers_location">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The disk on which post-installation drivers are located, or NULL if
its not set using #osinfo_install_config_set_post_install_drivers_location().</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pre_install_drivers_disk"
              c:identifier="osinfo_install_config_get_pre_install_drivers_disk">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The disk on which pre-installation drivers are located, or NULL if
its not set using #osinfo_install_config_set_pre_install_drivers_disk().</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pre_install_drivers_location"
              c:identifier="osinfo_install_config_get_pre_install_drivers_location">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The location on which pre-installation drivers are located, or NULL if
its not set using #osinfo_install_config_set_pre_install_drivers_location().</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reg_login"
              c:identifier="osinfo_install_config_get_reg_login">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reg_password"
              c:identifier="osinfo_install_config_get_reg_password">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reg_product_key"
              c:identifier="osinfo_install_config_get_reg_product_key">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_script_disk"
              c:identifier="osinfo_install_config_get_script_disk">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The value of #OSINFO_INSTALL_CONFIG_PROP_SCRIPT_DISK parameter,
         or NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_target_disk"
              c:identifier="osinfo_install_config_get_target_disk">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The value of #OSINFO_INSTALL_CONFIG_PROP_TARGET_DISK parameter,
         or NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_administrator"
              c:identifier="osinfo_install_config_get_user_administrator">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_autologin"
              c:identifier="osinfo_install_config_get_user_autologin">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_login"
              c:identifier="osinfo_install_config_get_user_login">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_password"
              c:identifier="osinfo_install_config_get_user_password">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_realname"
              c:identifier="osinfo_install_config_get_user_realname">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_admin_password"
              c:identifier="osinfo_install_config_set_admin_password">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_avatar_disk"
              c:identifier="osinfo_install_config_set_avatar_disk">
        <doc xml:space="preserve">Sets the #OSINFO_INSTALL_CONFIG_PROP_AVATAR_DISK parameter.

Please read documentation on #osinfo_install_config_set_target_disk() for
explanation on the format of @disk string.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="disk" transfer-ownership="none">
            <doc xml:space="preserve">the avatar disk</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_avatar_location"
              c:identifier="osinfo_install_config_set_avatar_location">
        <doc xml:space="preserve">Sets the #OSINFO_INSTALL_CONFIG_PROP_AVATAR_LOCATION parameter.

Note that the format of this string is dependent on the installer script
@config is going to be used with. You can use
#osinfo_install_script_get_path_format() to find out which format
does the script expects this string to be in.

Also note that in case of #OSINFO_PATH_FORMAT_DOS, the drive/disk letter
and the leading ':' must not be included in the path.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">new location</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_driver_signing"
              c:identifier="osinfo_install_config_set_driver_signing">
        <doc xml:space="preserve">If a script requires drivers to be signed, this function can be used to
disable that security feature. WARNING: Disabling driver signing may very
well mean disabling it permanently.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="signing" transfer-ownership="none">
            <doc xml:space="preserve">boolean value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_hardware_arch"
              c:identifier="osinfo_install_config_set_hardware_arch">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="arch" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_hostname"
              c:identifier="osinfo_install_config_set_hostname">
        <doc xml:space="preserve">Sets the #OSINFO_INSTALL_CONFIG_PROP_HOSTNAME parameter.

Note that some operating systems have restrictions on maximum number of, and
allowed characters in hostname (or its equivalent) so it is highly
recommended that you keep the actual hostname less than or equal to 15
characters long and make sure that it does not contain any characters other
than ASCII alphanumeric and '-'. Otherwise unattended installation might
fail.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="hostname" transfer-ownership="none">
            <doc xml:space="preserve">the desired hostname</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_l10n_keyboard"
              c:identifier="osinfo_install_config_set_l10n_keyboard">
        <doc xml:space="preserve">Sets the #OSINFO_INSTALL_CONFIG_PROP_L10N_KEYBOARD parameter.

The expected format of this string is the same as
#osinfo_install_config_set_l10n_language function's 'language' parameter.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="keyboard" transfer-ownership="none">
            <doc xml:space="preserve">the keyboard</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_l10n_language"
              c:identifier="osinfo_install_config_set_l10n_language">
        <doc xml:space="preserve">Sets the #OSINFO_INSTALL_CONFIG_PROP_L10N_LANGUAGE parameter.

The expected format of this string is the gettext locale names standard:

https://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/Locale-Names.html

Encoding and variant are (at least for now) not supported. For example,
'pt_BR' is accepted is accepted as the language codes for Brazilian Portuguese
but 'pt_BR.utf8' is not.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve">the language</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_l10n_timezone"
              c:identifier="osinfo_install_config_set_l10n_timezone">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="timezone" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_post_install_drivers_disk"
              c:identifier="osinfo_install_config_set_post_install_drivers_disk">
        <doc xml:space="preserve">Specify the disk on which drivers to be installed at the end of installation,
are available.

Please read documentation on #osinfo_install_config_set_target_disk() for
explanation on the format of @disk string.

NOTE: Not every install script supports post-installation of drivers. Use
#osinfo_install_script_get_can_post_install_drivers() to find out if an
install script supports it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="disk" transfer-ownership="none">
            <doc xml:space="preserve">the target disk</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_post_install_drivers_location"
              c:identifier="osinfo_install_config_set_post_install_drivers_location">
        <doc xml:space="preserve">Specify the disk on which drivers to be installed at the end of installation,
are available.

Please read documentation on #osinfo_install_config_set_avatar_location() for
explanation on the format of @location string.

NOTE: Not every install script supports post-installation of drivers. Use
#osinfo_install_script_get_can_post_install_drivers() to find out if an
install script supports it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">the location of avatar</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pre_install_drivers_disk"
              c:identifier="osinfo_install_config_set_pre_install_drivers_disk">
        <doc xml:space="preserve">Specify the disk on which drivers to be installed at the very beginning of
installation, are available. This is usually needed for devices for which the
OS in question does not have out of the box support for and devices are
required/prefered to be available during actual installation.

Please read documentation on #osinfo_install_config_set_target_disk() for
explanation on the format of @disk string.

NOTE: Not every install script supports pre-installation of drivers. Use
#osinfo_install_script_get_can_pre_install_drivers() to find out if an
installer script supports it.

NOTE: Microsoft Windows XP requires pre-installation driver files to be
present in the script disk under the toplevel directory.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="disk" transfer-ownership="none">
            <doc xml:space="preserve">the disk</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pre_install_drivers_location"
              c:identifier="osinfo_install_config_set_pre_install_drivers_location">
        <doc xml:space="preserve">Specify the location on which drivers to be installed at the very beginning of
installation, are available. Please read documentation on
#osinfo_install_config_set_pre_install_drivers_disk() for more information
about pre-installation of drivers.

Please read documentation on #osinfo_install_config_set_avatar_location() for
explanation on the format of @location string.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">the location</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reg_login"
              c:identifier="osinfo_install_config_set_reg_login">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reg_password"
              c:identifier="osinfo_install_config_set_reg_password">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reg_product_key"
              c:identifier="osinfo_install_config_set_reg_product_key">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_script_disk"
              c:identifier="osinfo_install_config_set_script_disk">
        <doc xml:space="preserve">Sets the #OSINFO_INSTALL_CONFIG_PROP_SCRIPT_DISK parameter.

Please read documentation on #osinfo_install_config_set_target_disk() for
explanation on the format of @disk string.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="disk" transfer-ownership="none">
            <doc xml:space="preserve">the disk</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_target_disk"
              c:identifier="osinfo_install_config_set_target_disk">
        <doc xml:space="preserve">Sets the #OSINFO_INSTALL_CONFIG_PROP_TARGET_DISK parameter.

Note that the format of this string is dependent on the installer script
@config is going to be used with. You can use
#osinfo_install_script_get_path_format() to find out which format
does the script expects this string to be in. In case of
#OSINFO_PATH_FORMAT_UNIX unix device node names are expected, e.g "/dev/fd0".
In case of #OSINFO_PATH_FORMAT_DOS drive letters are expected, e.g "A".</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="disk" transfer-ownership="none">
            <doc xml:space="preserve">the target disk</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_user_administrator"
              c:identifier="osinfo_install_config_set_user_administrator">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="admin" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_user_autologin"
              c:identifier="osinfo_install_config_set_user_autologin">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="autologin" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_user_login"
              c:identifier="osinfo_install_config_set_user_login">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="username" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_user_password"
              c:identifier="osinfo_install_config_set_user_password">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_user_realname"
              c:identifier="osinfo_install_config_set_user_realname">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="InstallConfigPrivate"
              c:type="OsinfoInstallConfigPrivate*"/>
      </field>
    </class>
    <record name="InstallConfigClass"
            c:type="OsinfoInstallConfigClass"
            glib:is-gtype-struct-for="InstallConfig">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <class name="InstallConfigParam"
           c:symbol-prefix="install_config_param"
           c:type="OsinfoInstallConfigParam"
           parent="Entity"
           glib:type-name="OsinfoInstallConfigParam"
           glib:get-type="osinfo_install_config_param_get_type"
           glib:type-struct="InstallConfigParamClass">
      <constructor name="new" c:identifier="osinfo_install_config_param_new">
        <doc xml:space="preserve">Construct a new configuration parameter for an #OsinfoInstallScript.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new configuration parameter</doc>
          <type name="InstallConfigParam" c:type="OsinfoInstallConfigParam*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the configuration parameter name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_name"
              c:identifier="osinfo_install_config_param_get_name">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of the configuration parameter</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config_param" transfer-ownership="none">
            <doc xml:space="preserve">the configuration parameter</doc>
            <type name="InstallConfigParam"
                  c:type="const OsinfoInstallConfigParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_policy"
              c:identifier="osinfo_install_config_param_get_policy">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the policy of the configuration parameter</doc>
          <type name="InstallConfigParamPolicy"
                c:type="OsinfoInstallConfigParamPolicy"/>
        </return-value>
        <parameters>
          <instance-parameter name="config_param" transfer-ownership="none">
            <doc xml:space="preserve">the configuration parameter</doc>
            <type name="InstallConfigParam"
                  c:type="const OsinfoInstallConfigParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value_map"
              c:identifier="osinfo_install_config_param_get_value_map"
              introspectable="0">
        <return-value>
          <type name="Datamap" c:type="OsinfoDatamap*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config_param" transfer-ownership="none">
            <type name="InstallConfigParam"
                  c:type="const OsinfoInstallConfigParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_optional"
              c:identifier="osinfo_install_config_param_is_optional">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the config_param is optional.
                          FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config_param" transfer-ownership="none">
            <doc xml:space="preserve">the configuration parameter</doc>
            <type name="InstallConfigParam"
                  c:type="const OsinfoInstallConfigParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_required"
              c:identifier="osinfo_install_config_param_is_required">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the config_param is required.
                          FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config_param" transfer-ownership="none">
            <doc xml:space="preserve">the configuration parameter</doc>
            <type name="InstallConfigParam"
                  c:type="const OsinfoInstallConfigParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_value_map"
              c:identifier="osinfo_install_config_param_set_value_map">
        <doc xml:space="preserve">After a call to osinfo_install_config_param_set_value_map(), @datamap will
be used to transform values set for this parameter to OS-specific
values. A NULL @datamap will disable transformations.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config_param" transfer-ownership="none">
            <doc xml:space="preserve">the configuration parameter</doc>
            <type name="InstallConfigParam"
                  c:type="OsinfoInstallConfigParam*"/>
          </instance-parameter>
          <parameter name="datamap" transfer-ownership="none">
            <doc xml:space="preserve">a #OsinfoDatamap to transform values this parameter is set to,
or NULL to disable transformations for this parameter</doc>
            <type name="Datamap" c:type="OsinfoDatamap*"/>
          </parameter>
        </parameters>
      </method>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The name of the configuration parameter.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="policy" transfer-ownership="none">
        <doc xml:space="preserve">The policy of the configuration parameter.</doc>
        <type name="InstallConfigParamPolicy"/>
      </property>
      <property name="value-map" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The mapping between generic values and OS-specific values for this
configuration parameter</doc>
        <type name="Datamap"/>
      </property>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="InstallConfigParamPrivate"
              c:type="OsinfoInstallConfigParamPrivate*"/>
      </field>
    </class>
    <record name="InstallConfigParamClass"
            c:type="OsinfoInstallConfigParamClass"
            glib:is-gtype-struct-for="InstallConfigParam">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <class name="InstallConfigParamList"
           c:symbol-prefix="install_config_paramlist"
           c:type="OsinfoInstallConfigParamList"
           parent="List"
           glib:type-name="OsinfoInstallConfigParamList"
           glib:get-type="osinfo_install_config_paramlist_get_type"
           glib:type-struct="InstallConfigParamListClass">
      <constructor name="new"
                   c:identifier="osinfo_install_config_paramlist_new">
        <doc xml:space="preserve">Construct a new install_config_param list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty install_config_param list</doc>
          <type name="InstallConfigParamList"
                c:type="OsinfoInstallConfigParamList*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="List" c:type="OsinfoList"/>
      </field>
      <field name="priv">
        <type name="InstallConfigParamListPrivate"
              c:type="OsinfoInstallConfigParamListPrivate*"/>
      </field>
    </class>
    <record name="InstallConfigParamListClass"
            c:type="OsinfoInstallConfigParamListClass"
            glib:is-gtype-struct-for="InstallConfigParamList">
      <field name="parent_class">
        <type name="ListClass" c:type="OsinfoListClass"/>
      </field>
    </record>
    <record name="InstallConfigParamListPrivate"
            c:type="OsinfoInstallConfigParamListPrivate"
            disguised="1">
    </record>
    <enumeration name="InstallConfigParamPolicy"
                 glib:type-name="OsinfoInstallConfigParamPolicy"
                 glib:get-type="osinfo_install_config_param_policy_get_type"
                 c:type="OsinfoInstallConfigParamPolicy">
      <doc xml:space="preserve">Policy for configuration parameter presence</doc>
      <member name="none"
              value="0"
              c:identifier="OSINFO_INSTALL_CONFIG_PARAM_POLICY_NONE"
              glib:nick="none">
        <doc xml:space="preserve">no policy defined</doc>
      </member>
      <member name="required"
              value="1"
              c:identifier="OSINFO_INSTALL_CONFIG_PARAM_POLICY_REQUIRED"
              glib:nick="required">
        <doc xml:space="preserve">config parameter is required</doc>
      </member>
      <member name="optional"
              value="2"
              c:identifier="OSINFO_INSTALL_CONFIG_PARAM_POLICY_OPTIONAL"
              glib:nick="optional">
        <doc xml:space="preserve">config parameter may be omitted</doc>
      </member>
    </enumeration>
    <record name="InstallConfigParamPrivate"
            c:type="OsinfoInstallConfigParamPrivate"
            disguised="1">
    </record>
    <record name="InstallConfigPrivate"
            c:type="OsinfoInstallConfigPrivate"
            disguised="1">
    </record>
    <class name="InstallScript"
           c:symbol-prefix="install_script"
           c:type="OsinfoInstallScript"
           parent="Entity"
           glib:type-name="OsinfoInstallScript"
           glib:get-type="osinfo_install_script_get_type"
           glib:type-struct="InstallScriptClass">
      <constructor name="new" c:identifier="osinfo_install_script_new">
        <return-value transfer-ownership="full">
          <type name="InstallScript" c:type="OsinfoInstallScript*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_data"
                   c:identifier="osinfo_install_script_new_data">
        <doc xml:space="preserve">Construct a new install script from stylesheet data</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an new install script</doc>
          <type name="InstallScript" c:type="OsinfoInstallScript*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">a unique identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:space="preserve">the profile of script</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="templateData" transfer-ownership="none">
            <doc xml:space="preserve">style sheet data</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_uri" c:identifier="osinfo_install_script_new_uri">
        <doc xml:space="preserve">Construct a new install script from a stylesheet URI</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an new install script</doc>
          <type name="InstallScript" c:type="OsinfoInstallScript*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">a unique identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:space="preserve">the profile of script</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="templateUri" transfer-ownership="none">
            <doc xml:space="preserve">style sheet URI</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_config_param"
              c:identifier="osinfo_install_script_add_config_param">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <type name="InstallConfigParam"
                  c:type="OsinfoInstallConfigParam*"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate"
              c:identifier="osinfo_install_script_generate"
              throws="1">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="os" transfer-ownership="none">
            <type name="Os" c:type="OsinfoOs*"/>
          </parameter>
          <parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_async"
              c:identifier="osinfo_install_script_generate_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="os" transfer-ownership="none">
            <type name="Os" c:type="OsinfoOs*"/>
          </parameter>
          <parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_command_line"
              c:identifier="osinfo_install_script_generate_command_line">
        <doc xml:space="preserve">Some install scripts need to pass a command line to the kernel, Such install
scripts belong to OSs that provide paths to the kernel and initrd files that
can be used to directly boot
(http://wiki.qemu.org/download/qemu-doc.html#direct_005flinux_005fboot)
the OS in order to pass the needed commandline to it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The generated command line string, NULL otherwise.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">the os entity</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </parameter>
          <parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install script config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_finish"
              c:identifier="osinfo_install_script_generate_finish"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the generated script, or NULL on error</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_output"
              c:identifier="osinfo_install_script_generate_output"
              throws="1">
        <doc xml:space="preserve">Creates an install script written in a file</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a file containing the script</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">the os entity</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </parameter>
          <parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">the install script config</doc>
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </parameter>
          <parameter name="output_dir" transfer-ownership="none">
            <doc xml:space="preserve">the directory where file containing the output script
             will be written</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="generate_output_async"
              c:identifier="osinfo_install_script_generate_output_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="os" transfer-ownership="none">
            <type name="Os" c:type="OsinfoOs*"/>
          </parameter>
          <parameter name="config" transfer-ownership="none">
            <type name="InstallConfig" c:type="OsinfoInstallConfig*"/>
          </parameter>
          <parameter name="output_dir" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_output_finish"
              c:identifier="osinfo_install_script_generate_output_finish"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a file containing the script, or NULL on error</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_avatar_format"
              c:identifier="osinfo_install_script_get_avatar_format">
        <doc xml:space="preserve">Some install scripts have restrictions on the format of the user avatar. Use
this method to retrieve those restrictions in the form of an
#OsinfoAvatarFormat instance.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The avatar format, or NULL if there is no restrictions on the
                          format of avatar</doc>
          <type name="AvatarFormat" c:type="OsinfoAvatarFormat*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_can_post_install_drivers"
              c:identifier="osinfo_install_script_get_can_post_install_drivers">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_can_pre_install_drivers"
              c:identifier="osinfo_install_script_get_can_pre_install_drivers">
        <doc xml:space="preserve">Whether install script can install drivers at the very beginning of
installation. This is needed for devices for which the OS in question does
not have out of the box support for and devices are required/prefered to be
available during actual installation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if install script supports pre-installable drivers, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_config_param"
              c:identifier="osinfo_install_script_get_config_param">
        <doc xml:space="preserve">Get a config param from the config param's list</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the sought config param, if exists.
                          NULL otherwise.</doc>
          <type name="InstallConfigParam" c:type="OsinfoInstallConfigParam*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="const OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">name of the parameter</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_config_param_list"
              c:identifier="osinfo_install_script_get_config_param_list">
        <doc xml:space="preserve">Get the list of valid config parameters for @script.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the
list of valid #OsinfoInstallConfigParam parameters. Free with
g_list_free() when done. The elements are owned by libosinfo.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="InstallScript"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="const OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_config_params"
              c:identifier="osinfo_install_script_get_config_params">
        <doc xml:space="preserve">Get the list of valid config parameters for @script.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the list of valid #OsinfoInstallConfigParam
parameters.</doc>
          <type name="InstallConfigParamList"
                c:type="OsinfoInstallConfigParamList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="const OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_expected_filename"
              c:identifier="osinfo_install_script_get_expected_filename">
        <doc xml:space="preserve">Some operating systems (as Windows) expect that script filename has
particular name to work.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the expected script filename</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_injection_methods"
              c:identifier="osinfo_install_script_get_injection_methods">
        <doc xml:space="preserve">Retrieve the supported method to inject the script in to the installation process.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">bitwise-or of
supported methods for install script injection.</doc>
          <type name="InstallScriptInjectionMethod" c:type="unsigned int"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_needs_internet"
              c:identifier="osinfo_install_script_get_needs_internet">
        <doc xml:space="preserve">Some install scripts cannot ensure that they work without an internet connection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if script needs an internet connection, FALSE otherwise
internet connection.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_output_filename"
              c:identifier="osinfo_install_script_get_output_filename">
        <doc xml:space="preserve">Some operating systems are able to use any script filename, allowing the
application to set the filename as desired. libosinfo provides this
functionality by set the expected filename's prefix using
osinfo_install_script_set_output_prefix() function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the output script filename</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_output_prefix"
              c:identifier="osinfo_install_script_get_output_prefix">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path_format"
              c:identifier="osinfo_install_script_get_path_format">
        <return-value transfer-ownership="none">
          <type name="PathFormat" c:type="OsinfoPathFormat"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_post_install_drivers_signing_req"
              c:identifier="osinfo_install_script_get_post_install_drivers_signing_req">
        <doc xml:space="preserve">If install script can install drivers at the end of installation, this
function retrieves the requirement about signed status of drivers.</doc>
        <return-value transfer-ownership="none">
          <type name="DeviceDriverSigningReq" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pre_install_drivers_signing_req"
              c:identifier="osinfo_install_script_get_pre_install_drivers_signing_req">
        <doc xml:space="preserve">If install script can install drivers at the very beginning of installation,
this function retrieves the requirement about signed status of drivers.</doc>
        <return-value transfer-ownership="none">
          <type name="DeviceDriverSigningReq" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_product_key_format"
              c:identifier="osinfo_install_script_get_product_key_format">
        <doc xml:space="preserve">If this function returns a non-NULL string, it means that the @script
requires you to specify product registration key through #OsinfoInstallConfig
instance passed to script generation methods.

The returned string specifies the expected format of the product key like this:

@ - any character
% - alphabet
# - numeric character
$ - alphanumeric character

All other characters represent themselves.

For example in case of installer for Microsoft Windows XP, you'll get
"$$$$$-$$$$$-$$$$$-$$$$$-$$$$$". That means a product key consists of 24
alphanumeric characters and 4 '-' characters at (0-based) indices 5, 11, 17
and 23.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Product key format mask, or NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <doc xml:space="preserve">the install script</doc>
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_profile"
              c:identifier="osinfo_install_script_get_profile">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_template_data"
              c:identifier="osinfo_install_script_get_template_data">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_template_uri"
              c:identifier="osinfo_install_script_get_template_uri">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_config_param"
              c:identifier="osinfo_install_script_has_config_param">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="const OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="config_param" transfer-ownership="none">
            <type name="InstallConfigParam"
                  c:type="const OsinfoInstallConfigParam*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_config_param_name"
              c:identifier="osinfo_install_script_has_config_param_name">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="const OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_avatar_format"
              c:identifier="osinfo_install_script_set_avatar_format">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="avatar" transfer-ownership="none">
            <type name="AvatarFormat" c:type="OsinfoAvatarFormat*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_output_prefix"
              c:identifier="osinfo_install_script_set_output_prefix">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </instance-parameter>
          <parameter name="prefix" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="avatar-format" transfer-ownership="none">
        <type name="AvatarFormat"/>
      </property>
      <property name="path-format" transfer-ownership="none">
        <type name="PathFormat"/>
      </property>
      <property name="product-key-format" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="profile"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="template-data"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="template-uri"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="InstallScriptPrivate"
              c:type="OsinfoInstallScriptPrivate*"/>
      </field>
    </class>
    <record name="InstallScriptClass"
            c:type="OsinfoInstallScriptClass"
            glib:is-gtype-struct-for="InstallScript">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <bitfield name="InstallScriptInjectionMethod"
              glib:type-name="OsinfoInstallScriptInjectionMethod"
              glib:get-type="osinfo_install_script_injection_method_get_type"
              c:type="OsinfoInstallScriptInjectionMethod">
      <member name="cdrom"
              value="1"
              c:identifier="OSINFO_INSTALL_SCRIPT_INJECTION_METHOD_CDROM"
              glib:nick="cdrom">
        <doc xml:space="preserve">Support injection of the
installation script trough a CD-ROM.</doc>
      </member>
      <member name="disk"
              value="2"
              c:identifier="OSINFO_INSTALL_SCRIPT_INJECTION_METHOD_DISK"
              glib:nick="disk">
        <doc xml:space="preserve">Support injection of the
installation script trough a disk.</doc>
      </member>
      <member name="floppy"
              value="4"
              c:identifier="OSINFO_INSTALL_SCRIPT_INJECTION_METHOD_FLOPPY"
              glib:nick="floppy">
        <doc xml:space="preserve">Support injection of the
installation script trough a floppy disk.</doc>
      </member>
      <member name="initrd"
              value="8"
              c:identifier="OSINFO_INSTALL_SCRIPT_INJECTION_METHOD_INITRD"
              glib:nick="initrd">
        <doc xml:space="preserve">Support injection of the
installation script trough the initrd.</doc>
      </member>
      <member name="web"
              value="16"
              c:identifier="OSINFO_INSTALL_SCRIPT_INJECTION_METHOD_WEB"
              glib:nick="web">
        <doc xml:space="preserve">Support injection of the
installation script from the web.</doc>
      </member>
    </bitfield>
    <class name="InstallScriptList"
           c:symbol-prefix="install_scriptlist"
           c:type="OsinfoInstallScriptList"
           parent="List"
           glib:type-name="OsinfoInstallScriptList"
           glib:get-type="osinfo_install_scriptlist_get_type"
           glib:type-struct="InstallScriptListClass">
      <constructor name="new" c:identifier="osinfo_install_scriptlist_new">
        <doc xml:space="preserve">Construct a new install_script list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty install_script list</doc>
          <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
        </return-value>
      </constructor>
      <method name="new_copy"
              c:identifier="osinfo_install_scriptlist_new_copy"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new install_script list that is filled with install_scripts
from @source</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_copy() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the install_script list</doc>
          <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the install_script list to copy</doc>
            <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="new_filtered"
              c:identifier="osinfo_install_scriptlist_new_filtered"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new install_script list that is filled with install_scripts
from @source that match @filter</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_filtered() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a filtered copy of the install_script list</doc>
          <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the install_script list to copy</doc>
            <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the filter to apply</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_intersection"
              c:identifier="osinfo_install_scriptlist_new_intersection"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new install_script list that is filled with only the
install_scripts that are present in both @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_intersection() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an intersection of the two install_script lists</doc>
          <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first install_script list to copy</doc>
            <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second install_script list to copy</doc>
            <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_union"
              c:identifier="osinfo_install_scriptlist_new_union"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new install_script list that is filled with all the
install_scripts that are present in either @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_union() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a union of the two install_script lists</doc>
          <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first install_script list to copy</doc>
            <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second install_script list to copy</doc>
            <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="List" c:type="OsinfoList"/>
      </field>
      <field name="priv">
        <type name="InstallScriptListPrivate"
              c:type="OsinfoInstallScriptListPrivate*"/>
      </field>
    </class>
    <record name="InstallScriptListClass"
            c:type="OsinfoInstallScriptListClass"
            glib:is-gtype-struct-for="InstallScriptList">
      <field name="parent_class" readable="0" private="1">
        <type name="ListClass" c:type="OsinfoListClass"/>
      </field>
    </record>
    <record name="InstallScriptListPrivate"
            c:type="OsinfoInstallScriptListPrivate"
            disguised="1">
    </record>
    <record name="InstallScriptPrivate"
            c:type="OsinfoInstallScriptPrivate"
            disguised="1">
    </record>
    <constant name="KIBIBYTES" value="1024" c:type="OSINFO_KIBIBYTES">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="List"
           c:symbol-prefix="list"
           c:type="OsinfoList"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="OsinfoList"
           glib:get-type="osinfo_list_get_type"
           glib:type-struct="ListClass">
      <method name="add" c:identifier="osinfo_list_add">
        <doc xml:space="preserve">Adds a new entity to the list.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">the entity list</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
          <parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve">the entity to add to the list</doc>
            <type name="Entity" c:type="OsinfoEntity*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_all" c:identifier="osinfo_list_add_all">
        <doc xml:space="preserve">Adds all entities from @source to @list. Using one
of the constructors in a subclass is preferrable
to this method.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">the entity list</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the list to add</doc>
            <type name="List" c:type="OsinfoList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_filtered" c:identifier="osinfo_list_add_filtered">
        <doc xml:space="preserve">Adds all entities from @source which are matched by @filter. Using one
of the constructors in a subclass is preferrable
to this method.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">the entity list</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the source for elements</doc>
            <type name="List" c:type="OsinfoList*"/>
          </parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">filter to process the source with</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_intersection"
              c:identifier="osinfo_list_add_intersection">
        <doc xml:space="preserve">Computes the intersection between @sourceOne and @sourceTwo and
adds the resulting list of entities to the @list. Using one
of the constructors in a subclass is preferrable
to this method.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">the entity list</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
          <parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first list to add</doc>
            <type name="List" c:type="OsinfoList*"/>
          </parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second list to add</doc>
            <type name="List" c:type="OsinfoList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_union" c:identifier="osinfo_list_add_union">
        <doc xml:space="preserve">Computes the union between @sourceOne and @sourceTwo and
adds the resulting list of entities to the @list. Using one
of the constructors in a subclass is preferrable
to this method.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">the entity list</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
          <parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first list to add</doc>
            <type name="List" c:type="OsinfoList*"/>
          </parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second list to add</doc>
            <type name="List" c:type="OsinfoList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_by_id" c:identifier="osinfo_list_find_by_id">
        <doc xml:space="preserve">Search the list looking for the entity with a matching
unique identifier.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the matching entity, or NULL</doc>
          <type name="Entity" c:type="OsinfoEntity*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">the entity list</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the unique identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_element_type"
              c:identifier="osinfo_list_get_element_type">
        <doc xml:space="preserve">Retrieves the type of the subclass of #OsinfoEntity
that may be stored in the list</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the type of entity stored</doc>
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">the entity list</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_elements" c:identifier="osinfo_list_get_elements">
        <doc xml:space="preserve">Retrieve a linked list of all elements in the list.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list elements</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Entity"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">the entity list</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_length" c:identifier="osinfo_list_get_length">
        <doc xml:space="preserve">Retrieves the number of elements currently stored
in the list</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the list length</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">the entity list</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nth" c:identifier="osinfo_list_get_nth">
        <doc xml:space="preserve">Retrieves the element in the list at position @idx. If
@idx is less than zero, or greater than the number of
elements in the list, the results are undefined.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the list element</doc>
          <type name="Entity" c:type="OsinfoEntity*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">the entity list</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the list position to fetch</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_copy" c:identifier="osinfo_list_new_copy">
        <doc xml:space="preserve">Construct a new list that is filled with elements from @source</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the list</doc>
          <type name="List" c:type="OsinfoList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the list to copy</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="new_filtered" c:identifier="osinfo_list_new_filtered">
        <doc xml:space="preserve">Construct a new list that is filled with elements from @source that
match @filter</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a filtered copy of the list</doc>
          <type name="List" c:type="OsinfoList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the list to copy</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the filter to apply</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_intersection"
              c:identifier="osinfo_list_new_intersection">
        <doc xml:space="preserve">Construct a new list that is filled with only the elements
that are present in both @sourceOne and @sourceTwo.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an intersection of the two lists</doc>
          <type name="List" c:type="OsinfoList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first list to copy</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second list to copy</doc>
            <type name="List" c:type="OsinfoList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_union" c:identifier="osinfo_list_new_union">
        <doc xml:space="preserve">Construct a new list that is filled with all the that are present in
either @sourceOne and @sourceTwo. @sourceOne and @sourceTwo must be of
the same type.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a union of the two lists</doc>
          <type name="List" c:type="OsinfoList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first list to copy</doc>
            <type name="List" c:type="OsinfoList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second list to copy</doc>
            <type name="List" c:type="OsinfoList*"/>
          </parameter>
        </parameters>
      </method>
      <property name="element-type"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The specialization of the list. The list will be
restricted to storing #OsinfoEntity objects of
the specified type.</doc>
        <type name="GType" c:type="GType"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ListPrivate" c:type="OsinfoListPrivate*"/>
      </field>
    </class>
    <record name="ListClass"
            c:type="OsinfoListClass"
            glib:is-gtype-struct-for="List">
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="ListPrivate" c:type="OsinfoListPrivate" disguised="1">
    </record>
    <class name="Loader"
           c:symbol-prefix="loader"
           c:type="OsinfoLoader"
           parent="GObject.Object"
           glib:type-name="OsinfoLoader"
           glib:get-type="osinfo_loader_get_type"
           glib:type-struct="LoaderClass">
      <constructor name="new" c:identifier="osinfo_loader_new">
        <doc xml:space="preserve">Create a new database loader</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a loader object</doc>
          <type name="Loader" c:type="OsinfoLoader*"/>
        </return-value>
      </constructor>
      <method name="get_db" c:identifier="osinfo_loader_get_db">
        <doc xml:space="preserve">Retrieves the database being populated</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the database</doc>
          <type name="Db" c:type="OsinfoDb*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve">the loader object</doc>
            <type name="Loader" c:type="OsinfoLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="process_default_path"
              c:identifier="osinfo_loader_process_default_path"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <type name="Loader" c:type="OsinfoLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="process_local_path"
              c:identifier="osinfo_loader_process_local_path"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <type name="Loader" c:type="OsinfoLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="process_path"
              c:identifier="osinfo_loader_process_path"
              throws="1">
        <doc xml:space="preserve">Loads data from the specified path. If the path
points to a file, that will be loaded as XML
Otherwise it can point to a directory which will
be recursively traversed, loading all files as XML.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve">the loader object</doc>
            <type name="Loader" c:type="OsinfoLoader*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">the fully qualified path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="process_system_path"
              c:identifier="osinfo_loader_process_system_path"
              throws="1">
        <doc xml:space="preserve">Loads data from the default paths.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve">the loader object</doc>
            <type name="Loader" c:type="OsinfoLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="process_uri"
              c:identifier="osinfo_loader_process_uri"
              throws="1">
        <doc xml:space="preserve">Loads data from the specified URI. If the URI
points to a file, that will be loaded as XML
Otherwise it can point to a directory which will
be recursively traversed, loading all files as XML.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve">the loader object</doc>
            <type name="Loader" c:type="OsinfoLoader*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the data source URI</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="process_user_path"
              c:identifier="osinfo_loader_process_user_path"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <type name="Loader" c:type="OsinfoLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="LoaderPrivate" c:type="OsinfoLoaderPrivate*"/>
      </field>
    </class>
    <record name="LoaderClass"
            c:type="OsinfoLoaderClass"
            glib:is-gtype-struct-for="Loader">
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="LoaderPrivate" c:type="OsinfoLoaderPrivate" disguised="1">
    </record>
    <constant name="MAJOR_VERSION" value="0" c:type="OSINFO_MAJOR_VERSION">
      <doc xml:space="preserve">libosinfo major version number.</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MEBIBYTES" value="1048576" c:type="OSINFO_MEBIBYTES">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MEDIA_PROP_APPLICATION_ID"
              value="application-id"
              c:type="OSINFO_MEDIA_PROP_APPLICATION_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_ARCHITECTURE"
              value="architecture"
              c:type="OSINFO_MEDIA_PROP_ARCHITECTURE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_INITRD"
              value="initrd"
              c:type="OSINFO_MEDIA_PROP_INITRD">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_INSTALLER"
              value="installer"
              c:type="OSINFO_MEDIA_PROP_INSTALLER">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_INSTALLER_REBOOTS"
              value="installer-reboots"
              c:type="OSINFO_MEDIA_PROP_INSTALLER_REBOOTS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_KERNEL"
              value="kernel"
              c:type="OSINFO_MEDIA_PROP_KERNEL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_LANG"
              value="l10n-language"
              c:type="OSINFO_MEDIA_PROP_LANG">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_LANG_MAP"
              value="l10n-language-map"
              c:type="OSINFO_MEDIA_PROP_LANG_MAP">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_LANG_REGEX"
              value="l10n-language-regex"
              c:type="OSINFO_MEDIA_PROP_LANG_REGEX">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_LIVE"
              value="live"
              c:type="OSINFO_MEDIA_PROP_LIVE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_PUBLISHER_ID"
              value="publisher-id"
              c:type="OSINFO_MEDIA_PROP_PUBLISHER_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_SYSTEM_ID"
              value="system-id"
              c:type="OSINFO_MEDIA_PROP_SYSTEM_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_URL" value="url" c:type="OSINFO_MEDIA_PROP_URL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_VARIANT"
              value="variant"
              c:type="OSINFO_MEDIA_PROP_VARIANT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEDIA_PROP_VOLUME_ID"
              value="volume-id"
              c:type="OSINFO_MEDIA_PROP_VOLUME_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MEGAHERTZ" value="1000000" c:type="OSINFO_MEGAHERTZ">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION" value="11" c:type="OSINFO_MICRO_VERSION">
      <doc xml:space="preserve">libosinfo micro version number.</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="2" c:type="OSINFO_MINOR_VERSION">
      <doc xml:space="preserve">libosinfo minor version number.</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Media"
           c:symbol-prefix="media"
           c:type="OsinfoMedia"
           parent="Entity"
           glib:type-name="OsinfoMedia"
           glib:get-type="osinfo_media_get_type"
           glib:type-struct="MediaClass">
      <constructor name="new" c:identifier="osinfo_media_new">
        <return-value transfer-ownership="full">
          <type name="Media" c:type="OsinfoMedia*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="architecture" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="create_from_location"
                c:identifier="osinfo_media_create_from_location"
                throws="1">
        <doc xml:space="preserve">Creates a new #OsinfoMedia for installation media at @location. The @location
could be any URI that GIO can handle or a local path.

NOTE: Currently this only works for ISO images/devices.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #OsinfoMedia , or NULL on error</doc>
          <type name="Media" c:type="OsinfoMedia*"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">the location of an installation media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="create_from_location_async"
                c:identifier="osinfo_media_create_from_location_async">
        <doc xml:space="preserve">Asynchronous variant of #osinfo_media_create_from_location.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">the location of an installation media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:space="preserve">the I/O priority of the request</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">Function to call when result of this call is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">The user data to pass to @callback, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="create_from_location_finish"
                c:identifier="osinfo_media_create_from_location_finish"
                throws="1">
        <doc xml:space="preserve">Finishes an asynchronous media object creation process started with
#osinfo_media_create_from_location_async.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #OsinfoMedia , or NULL on error</doc>
          <type name="Media" c:type="OsinfoMedia*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_application_id"
              c:identifier="osinfo_media_get_application_id">
        <doc xml:space="preserve">If @media is an ISO9660 image/device, this function retrieves the expected
application ID.

Note: In practice, this will usually not be the exact copy of the application
ID string on the ISO image/device but rather a regular expression that
matches it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the application id, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_architecture"
              c:identifier="osinfo_media_get_architecture">
        <doc xml:space="preserve">Retrieves the target hardware architecture of the OS @media provides.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the hardware architecture, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_initrd_path"
              c:identifier="osinfo_media_get_initrd_path">
        <doc xml:space="preserve">Retrieves the path to the initrd image in the install tree.

Note: This only applies to installer medias of 'linux' OS family.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the path to initrd image, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_installer" c:identifier="osinfo_media_get_installer">
        <doc xml:space="preserve">Whether @media provides an installer for an OS.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#TRUE if media is installer, #FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_installer_reboots"
              c:identifier="osinfo_media_get_installer_reboots">
        <doc xml:space="preserve">If media is an installer, this method retrieves the number of reboots the
installer takes before installation is complete.

This function is not supposed to be called on media that has no installer.
You can use #osinfo_media_get_installer(or OsinfoMedia::installer) to check
that.

Warning: Some media allow you to install from live sessions, in which case
number of reboots *alone* is not a reliable method for tracking installation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of installer reboots or -1 if media is
not an installer</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kernel_path"
              c:identifier="osinfo_media_get_kernel_path">
        <doc xml:space="preserve">Retrieves the path to the kernel image in the install tree.

Note: This only applies to installer medias of 'linux' OS family.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the path to kernel image, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_languages" c:identifier="osinfo_media_get_languages">
        <doc xml:space="preserve">If media is an installer, this property indicates the languages that
can be used during automatic installations.

On media that are not installers, this property will indicate the
languages that the user interface can be displayed in.
Use #osinfo_media_get_installer(or OsinfoMedia::installer) to know
if the media is an installer or not.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a #GList
containing the list of the UI languages this media supports. The list
must be freed with g_list_free() when no longer needed. If the
supported languages are unknown, NULL will be returned.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_live" c:identifier="osinfo_media_get_live">
        <doc xml:space="preserve">Whether @media can boot directly an OS without any installations.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#TRUE if media is live, #FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_os" c:identifier="osinfo_media_get_os">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the operating system, or NULL</doc>
          <type name="Os" c:type="OsinfoOs*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_os_variants"
              c:identifier="osinfo_media_get_os_variants">
        <doc xml:space="preserve">Gets the variants of the associated operating system.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the operating system variant, or NULL</doc>
          <type name="OsVariantList" c:type="OsinfoOsVariantList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_publisher_id"
              c:identifier="osinfo_media_get_publisher_id">
        <doc xml:space="preserve">If @media is an ISO9660 image/device, this function retrieves the expected
publisher ID.

Note: In practice, this will usually not be the exact copy of the publisher
ID string on the ISO image/device but rather a regular expression that
matches it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the publisher id, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_system_id" c:identifier="osinfo_media_get_system_id">
        <doc xml:space="preserve">If @media is an ISO9660 image/device, this function retrieves the expected
system ID.

Note: In practice, this will usually not be the exact copy of the system ID
string on the ISO image/device but rather a regular expression that matches
it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the system id, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="osinfo_media_get_url">
        <doc xml:space="preserve">The URL to the @media</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the URL, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_volume_id" c:identifier="osinfo_media_get_volume_id">
        <doc xml:space="preserve">If @media is an ISO9660 image/device, this function retrieves the expected
volume ID.

Note: In practice, this will usually not be the exact copy of the volume ID
string on the ISO image/device but rather a regular expression that matches
it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the volume id, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_languages" c:identifier="osinfo_media_set_languages">
        <doc xml:space="preserve">Sets the #OSINFO_MEDIA_PROP_LANG parameter</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoMedia instance</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
          <parameter name="languages" transfer-ownership="none">
            <doc xml:space="preserve">a #GList containing the list of the UI
languages this media supports.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_os" c:identifier="osinfo_media_set_os">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <type name="Media" c:type="OsinfoMedia*"/>
          </instance-parameter>
          <parameter name="os" transfer-ownership="none">
            <type name="Os" c:type="OsinfoOs*"/>
          </parameter>
        </parameters>
      </method>
      <property name="application-id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Expected application ID (regular expression) for ISO9660 image/device.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="architecture" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The target hardware architecture of this media.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="initrd-path" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The path to the initrd image in the install tree.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="installer" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Whether media provides an installer for an OS.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="installer-reboots"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">If media is an installer, this property indicates the number of reboots
the installer takes before installation is complete.

This property is not applicable to media that has no installer. You can
use #osinfo_media_get_installer(or OsinfoMedia::installer) to check
that.

Warning: Some media allow you to install from live sessions, in which
case number of reboots *alone* is not a reliable method for tracking
installation.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="kernel-path" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The path to the kernel image in the install tree.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="languages" transfer-ownership="container">
        <doc xml:space="preserve">If media is an installer, this property indicates the languages that
can be used during automatic installations.

On media that are not installers, this property will indicate the
languages that the user interface can be displayed in.
Use #osinfo_media_get_installer(or OsinfoMedia::installer) to know
if the media is an installer or not.</doc>
        <type name="GLib.List" c:type="gpointer">
          <type name="utf8"/>
        </type>
      </property>
      <property name="live" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Whether media can boot directly an OS without any installations.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="os" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Os information for the current media. For media stored in an
#OsinfoDB, it will be filled when the database is loaded, otherwise
the property will be filled after a successful call to
osinfo_db_identify_media().</doc>
        <type name="Os"/>
      </property>
      <property name="publisher-id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Expected publisher ID (regular expression) for ISO9660 image/device.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="system-id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Expected system ID (regular expression) for ISO9660 image/device.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="url" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The URL to this media.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="volume-id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Expected volume ID (regular expression) for ISO9660 image/device.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="MediaPrivate" c:type="OsinfoMediaPrivate*"/>
      </field>
    </class>
    <record name="MediaClass"
            c:type="OsinfoMediaClass"
            glib:is-gtype-struct-for="Media">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <enumeration name="MediaError"
                 glib:type-name="OsinfoMediaError"
                 glib:get-type="osinfo_media_error_get_type"
                 c:type="OsinfoMediaError"
                 glib:error-domain="osinfo-media-error">
      <doc xml:space="preserve">#GError codes used for errors in the #OSINFO_MEDIA_ERROR domain, during
reading of data from install media location.</doc>
      <member name="no_descriptors"
              value="0"
              c:identifier="OSINFO_MEDIA_ERROR_NO_DESCRIPTORS"
              glib:nick="no-descriptors">
        <doc xml:space="preserve">No descriptors.</doc>
      </member>
      <member name="no_pvd"
              value="1"
              c:identifier="OSINFO_MEDIA_ERROR_NO_PVD"
              glib:nick="no-pvd">
        <doc xml:space="preserve">No Primary volume descriptor.</doc>
      </member>
      <member name="no_svd"
              value="2"
              c:identifier="OSINFO_MEDIA_ERROR_NO_SVD"
              glib:nick="no-svd">
        <doc xml:space="preserve">No supplementary volume descriptor.</doc>
      </member>
      <member name="insufficient_metadata"
              value="3"
              c:identifier="OSINFO_MEDIA_ERROR_INSUFFICIENT_METADATA"
              glib:nick="insufficient-metadata">
        <doc xml:space="preserve">Not enough metadata.</doc>
      </member>
      <member name="not_bootable"
              value="4"
              c:identifier="OSINFO_MEDIA_ERROR_NOT_BOOTABLE"
              glib:nick="not-bootable">
        <doc xml:space="preserve">Install media not bootable.</doc>
      </member>
      <function name="quark" c:identifier="osinfo_media_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="MediaList"
           c:symbol-prefix="medialist"
           c:type="OsinfoMediaList"
           parent="List"
           glib:type-name="OsinfoMediaList"
           glib:get-type="osinfo_medialist_get_type"
           glib:type-struct="MediaListClass">
      <constructor name="new" c:identifier="osinfo_medialist_new">
        <doc xml:space="preserve">Construct a new media list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty media list</doc>
          <type name="MediaList" c:type="OsinfoMediaList*"/>
        </return-value>
      </constructor>
      <method name="new_copy"
              c:identifier="osinfo_medialist_new_copy"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new media list that is filled with medias
from @source</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_copy() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the media list</doc>
          <type name="MediaList" c:type="OsinfoMediaList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the media list to copy</doc>
            <type name="MediaList" c:type="OsinfoMediaList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="new_filtered"
              c:identifier="osinfo_medialist_new_filtered"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new media list that is filled with medias
from @source that match @filter</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_filtered() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a filtered copy of the media list</doc>
          <type name="MediaList" c:type="OsinfoMediaList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the media list to copy</doc>
            <type name="MediaList" c:type="OsinfoMediaList*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the filter to apply</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_intersection"
              c:identifier="osinfo_medialist_new_intersection"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new media list that is filled with only the
medias that are present in both @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_intersection() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an intersection of the two media lists</doc>
          <type name="MediaList" c:type="OsinfoMediaList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first media list to copy</doc>
            <type name="MediaList" c:type="OsinfoMediaList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second media list to copy</doc>
            <type name="MediaList" c:type="OsinfoMediaList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_union"
              c:identifier="osinfo_medialist_new_union"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new media list that is filled with all the
medias that are present in either @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_union() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a union of the two media lists</doc>
          <type name="MediaList" c:type="OsinfoMediaList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first media list to copy</doc>
            <type name="MediaList" c:type="OsinfoMediaList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second media list to copy</doc>
            <type name="MediaList" c:type="OsinfoMediaList*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="List" c:type="OsinfoList"/>
      </field>
      <field name="priv">
        <type name="MediaListPrivate" c:type="OsinfoMediaListPrivate*"/>
      </field>
    </class>
    <record name="MediaListClass"
            c:type="OsinfoMediaListClass"
            glib:is-gtype-struct-for="MediaList">
      <field name="parent_class" readable="0" private="1">
        <type name="ListClass" c:type="OsinfoListClass"/>
      </field>
    </record>
    <record name="MediaListPrivate"
            c:type="OsinfoMediaListPrivate"
            disguised="1">
    </record>
    <record name="MediaPrivate" c:type="OsinfoMediaPrivate" disguised="1">
    </record>
    <constant name="OS_PROP_DISTRO"
              value="distro"
              c:type="OSINFO_OS_PROP_DISTRO">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="OS_PROP_FAMILY"
              value="family"
              c:type="OSINFO_OS_PROP_FAMILY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="OS_PROP_RELEASE_STATUS"
              value="release-status"
              c:type="OSINFO_OS_PROP_RELEASE_STATUS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="OS_VARIANT_PROP_NAME"
              value="name"
              c:type="OSINFO_OS_VARIANT_PROP_NAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Os"
           c:symbol-prefix="os"
           c:type="OsinfoOs"
           parent="Product"
           glib:type-name="OsinfoOs"
           glib:get-type="osinfo_os_get_type"
           glib:type-struct="OsClass">
      <constructor name="new" c:identifier="osinfo_os_new">
        <doc xml:space="preserve">Create a new operating system entity</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new operating system entity</doc>
          <type name="Os" c:type="OsinfoOs*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">a unique identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_device" c:identifier="osinfo_os_add_device">
        <doc xml:space="preserve">Associated a device with an operating system.  The
returned #OsinfoDeviceLink can be used to record
extra metadata against the link</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device association</doc>
          <type name="DeviceLink" c:type="OsinfoDeviceLink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="dev" transfer-ownership="none">
            <doc xml:space="preserve">the device to associate with</doc>
            <type name="Device" c:type="OsinfoDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_device_driver"
              c:identifier="osinfo_os_add_device_driver">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="driver" transfer-ownership="none">
            <type name="DeviceDriver" c:type="OsinfoDeviceDriver*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_install_script"
              c:identifier="osinfo_os_add_install_script">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="script" transfer-ownership="none">
            <type name="InstallScript" c:type="OsinfoInstallScript*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_media" c:identifier="osinfo_os_add_media">
        <doc xml:space="preserve">Adds installation media @media to operating system @os.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve">the media to add</doc>
            <type name="Media" c:type="OsinfoMedia*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_minimum_resources"
              c:identifier="osinfo_os_add_minimum_resources">
        <doc xml:space="preserve">Adds @resources to list of minimum resources of operating system @os.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="resources" transfer-ownership="none">
            <doc xml:space="preserve">the resources to add</doc>
            <type name="Resources" c:type="OsinfoResources*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_recommended_resources"
              c:identifier="osinfo_os_add_recommended_resources">
        <doc xml:space="preserve">Adds @resources to list of recommended resources of operating system @os.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="resources" transfer-ownership="none">
            <doc xml:space="preserve">the resources to add</doc>
            <type name="Resources" c:type="OsinfoResources*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_tree" c:identifier="osinfo_os_add_tree">
        <doc xml:space="preserve">Adds installation tree @tree to operating system @os.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">the tree to add</doc>
            <type name="Tree" c:type="OsinfoTree*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_variant" c:identifier="osinfo_os_add_variant">
        <doc xml:space="preserve">Adds a variant @variant to operating system @os.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="variant" transfer-ownership="none">
            <doc xml:space="preserve">the variant to add</doc>
            <type name="OsVariant" c:type="OsinfoOsVariant*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_install_script"
              c:identifier="osinfo_os_find_install_script">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #OsinfoInstallScript for the @os @profile</doc>
          <type name="InstallScript" c:type="OsinfoInstallScript*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:space="preserve">the install script profile</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_all_devices" c:identifier="osinfo_os_get_all_devices">
        <doc xml:space="preserve">Get all devices matching a given filter but unlike osinfo_os_get_devices
this function also retrieves devices from all derived and cloned operating
systems.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of devices</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="filter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">an optional device property filter</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_device_drivers"
              c:identifier="osinfo_os_get_device_drivers">
        <doc xml:space="preserve">Gets list of all available device drivers for OS @os.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A list of device drivers</doc>
          <type name="DeviceDriverList" c:type="OsinfoDeviceDriverList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_device_links"
              c:identifier="osinfo_os_get_device_links">
        <doc xml:space="preserve">Get all devices matching a given filter. The filter
matches against the links, not the devices.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of device links</doc>
          <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="filter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">an optional device property filter</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices" c:identifier="osinfo_os_get_devices">
        <doc xml:space="preserve">Get all devices matching a given filter</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of devices</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="filter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">an optional device property filter</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices_by_property"
              c:identifier="osinfo_os_get_devices_by_property">
        <doc xml:space="preserve">A utility function that gets devices found from the list of devices
@os supports, for which the value of @property is @value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The found devices</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
          <parameter name="property" transfer-ownership="none">
            <doc xml:space="preserve">the property of interest</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the required value of property @property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="inherited" transfer-ownership="none">
            <doc xml:space="preserve">Should devices from inherited and cloned OSs be included in the
search.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_distro" c:identifier="osinfo_os_get_distro">
        <doc xml:space="preserve">Retrieves the generic family the OS @os belongs to, for example fedora,
ubuntu, windows, solaris, freebsd etc.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the distro of this os</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoOs</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_family" c:identifier="osinfo_os_get_family">
        <doc xml:space="preserve">Retrieves the generic family the OS @os belongs to, based upon its kernel,
for example linux, winnt, solaris, freebsd etc.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the family of this os</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoOs</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_install_script_list"
              c:identifier="osinfo_os_get_install_script_list">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of the install scripts for the specified os</doc>
          <type name="InstallScriptList" c:type="OsinfoInstallScriptList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media_list" c:identifier="osinfo_os_get_media_list">
        <doc xml:space="preserve">Get all installation medias associated with operating system @os.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of medias</doc>
          <type name="MediaList" c:type="OsinfoMediaList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_minimum_resources"
              c:identifier="osinfo_os_get_minimum_resources">
        <doc xml:space="preserve">Get the list of minimum required resources for the operating system @os.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of resources</doc>
          <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_recommended_resources"
              c:identifier="osinfo_os_get_recommended_resources">
        <doc xml:space="preserve">Get the list of recommended resources for the operating system @os.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of resources</doc>
          <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_release_status"
              c:identifier="osinfo_os_get_release_status">
        <doc xml:space="preserve">Use this to determine the release status of the @os.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">release status of @os.</doc>
          <type name="ReleaseStatus" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoOs</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tree_list" c:identifier="osinfo_os_get_tree_list">
        <doc xml:space="preserve">Get all installation trees associated with operating system @os.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of trees</doc>
          <type name="TreeList" c:type="OsinfoTreeList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_variant_list"
              c:identifier="osinfo_os_get_variant_list">
        <doc xml:space="preserve">Gets all known variants of operating system @os.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of variants</doc>
          <type name="OsVariantList" c:type="OsinfoOsVariantList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="os" transfer-ownership="none">
            <doc xml:space="preserve">an operating system</doc>
            <type name="Os" c:type="OsinfoOs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="distro" transfer-ownership="none">
        <doc xml:space="preserve">The generic distro this OS belongs to, for example fedora, windows,
solaris, freebsd etc.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="family" transfer-ownership="none">
        <doc xml:space="preserve">The generic family this OS belongs to, based upon its kernel,
for example linux, winnt, solaris, freebsd etc.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Product" c:type="OsinfoProduct"/>
      </field>
      <field name="priv">
        <type name="OsPrivate" c:type="OsinfoOsPrivate*"/>
      </field>
    </class>
    <record name="OsClass"
            c:type="OsinfoOsClass"
            glib:is-gtype-struct-for="Os">
      <field name="parent_class" readable="0" private="1">
        <type name="ProductClass" c:type="OsinfoProductClass"/>
      </field>
    </record>
    <class name="OsList"
           c:symbol-prefix="oslist"
           c:type="OsinfoOsList"
           parent="ProductList"
           glib:type-name="OsinfoOsList"
           glib:get-type="osinfo_oslist_get_type"
           glib:type-struct="OsListClass">
      <constructor name="new" c:identifier="osinfo_oslist_new">
        <doc xml:space="preserve">Construct a new os list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty os list</doc>
          <type name="OsList" c:type="OsinfoOsList*"/>
        </return-value>
      </constructor>
      <method name="new_copy"
              c:identifier="osinfo_oslist_new_copy"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new os list that is filled with oss
from @source</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_copy() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the os list</doc>
          <type name="OsList" c:type="OsinfoOsList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the os list to copy</doc>
            <type name="OsList" c:type="OsinfoOsList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="new_filtered"
              c:identifier="osinfo_oslist_new_filtered"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new os list that is filled with oss
from @source that match @filter</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_filtered() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a filtered copy of the os list</doc>
          <type name="OsList" c:type="OsinfoOsList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the os list to copy</doc>
            <type name="OsList" c:type="OsinfoOsList*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the filter to apply</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_intersection"
              c:identifier="osinfo_oslist_new_intersection"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new os list that is filled with only the
oss that are present in both @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_intersection() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an intersection of the two os lists</doc>
          <type name="OsList" c:type="OsinfoOsList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first os list to copy</doc>
            <type name="OsList" c:type="OsinfoOsList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second os list to copy</doc>
            <type name="OsList" c:type="OsinfoOsList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_union"
              c:identifier="osinfo_oslist_new_union"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new os list that is filled with all the
oss that are present in either @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_union() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a union of the two os lists</doc>
          <type name="OsList" c:type="OsinfoOsList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first os list to copy</doc>
            <type name="OsList" c:type="OsinfoOsList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second os list to copy</doc>
            <type name="OsList" c:type="OsinfoOsList*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="ProductList" c:type="OsinfoProductList"/>
      </field>
      <field name="priv">
        <type name="OsListPrivate" c:type="OsinfoOsListPrivate*"/>
      </field>
    </class>
    <record name="OsListClass"
            c:type="OsinfoOsListClass"
            glib:is-gtype-struct-for="OsList">
      <field name="parent_class" readable="0" private="1">
        <type name="ProductListClass" c:type="OsinfoProductListClass"/>
      </field>
    </record>
    <record name="OsListPrivate" c:type="OsinfoOsListPrivate" disguised="1">
    </record>
    <record name="OsPrivate" c:type="OsinfoOsPrivate" disguised="1">
    </record>
    <class name="OsVariant"
           c:symbol-prefix="os_variant"
           c:type="OsinfoOsVariant"
           parent="Entity"
           glib:type-name="OsinfoOsVariant"
           glib:get-type="osinfo_os_variant_get_type"
           glib:type-struct="OsVariantClass">
      <constructor name="new" c:identifier="osinfo_os_variant_new">
        <return-value transfer-ownership="full">
          <type name="OsVariant" c:type="OsinfoOsVariant*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_name" c:identifier="osinfo_os_variant_get_name">
        <doc xml:space="preserve">The name of the @variant</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="variant" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoOsVariant instance</doc>
            <type name="OsVariant" c:type="OsinfoOsVariant*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="name" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The name to this variant.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="OsVariantPrivate" c:type="OsinfoOsVariantPrivate*"/>
      </field>
    </class>
    <record name="OsVariantClass"
            c:type="OsinfoOsVariantClass"
            glib:is-gtype-struct-for="OsVariant">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <class name="OsVariantList"
           c:symbol-prefix="os_variantlist"
           c:type="OsinfoOsVariantList"
           parent="List"
           glib:type-name="OsinfoOsVariantList"
           glib:get-type="osinfo_os_variantlist_get_type"
           glib:type-struct="OsVariantListClass">
      <constructor name="new" c:identifier="osinfo_os_variantlist_new">
        <doc xml:space="preserve">Construct a new install_variant list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty install_variant list</doc>
          <type name="OsVariantList" c:type="OsinfoOsVariantList*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="List" c:type="OsinfoList"/>
      </field>
      <field name="priv">
        <type name="OsVariantListPrivate"
              c:type="OsinfoOsVariantListPrivate*"/>
      </field>
    </class>
    <record name="OsVariantListClass"
            c:type="OsinfoOsVariantListClass"
            glib:is-gtype-struct-for="OsVariantList">
      <field name="parent_class">
        <type name="ListClass" c:type="OsinfoListClass"/>
      </field>
    </record>
    <record name="OsVariantListPrivate"
            c:type="OsinfoOsVariantListPrivate"
            disguised="1">
    </record>
    <record name="OsVariantPrivate"
            c:type="OsinfoOsVariantPrivate"
            disguised="1">
    </record>
    <constant name="PRODUCT_PROP_CODENAME"
              value="codename"
              c:type="OSINFO_PRODUCT_PROP_CODENAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PRODUCT_PROP_EOL_DATE"
              value="eol-date"
              c:type="OSINFO_PRODUCT_PROP_EOL_DATE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PRODUCT_PROP_LOGO"
              value="logo"
              c:type="OSINFO_PRODUCT_PROP_LOGO">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PRODUCT_PROP_NAME"
              value="name"
              c:type="OSINFO_PRODUCT_PROP_NAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PRODUCT_PROP_RELEASE_DATE"
              value="release-date"
              c:type="OSINFO_PRODUCT_PROP_RELEASE_DATE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PRODUCT_PROP_SHORT_ID"
              value="short-id"
              c:type="OSINFO_PRODUCT_PROP_SHORT_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PRODUCT_PROP_VENDOR"
              value="vendor"
              c:type="OSINFO_PRODUCT_PROP_VENDOR">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PRODUCT_PROP_VERSION"
              value="version"
              c:type="OSINFO_PRODUCT_PROP_VERSION">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <enumeration name="PathFormat"
                 glib:type-name="OsinfoPathFormat"
                 glib:get-type="osinfo_path_format_get_type"
                 c:type="OsinfoPathFormat">
      <member name="unix"
              value="0"
              c:identifier="OSINFO_PATH_FORMAT_UNIX"
              glib:nick="unix">
        <doc xml:space="preserve">Unix/Linux path format, e.g /home/foo/bar.txt</doc>
      </member>
      <member name="dos"
              value="1"
              c:identifier="OSINFO_PATH_FORMAT_DOS"
              glib:nick="dos">
        <doc xml:space="preserve">DOS/Windows path format, e.g \My Documents\bar.txt</doc>
      </member>
    </enumeration>
    <class name="Platform"
           c:symbol-prefix="platform"
           c:type="OsinfoPlatform"
           parent="Product"
           glib:type-name="OsinfoPlatform"
           glib:get-type="osinfo_platform_get_type"
           glib:type-struct="PlatformClass">
      <constructor name="new" c:identifier="osinfo_platform_new">
        <doc xml:space="preserve">Create a new platform entity</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A platform entity</doc>
          <type name="Platform" c:type="OsinfoPlatform*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">a unique identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_device" c:identifier="osinfo_platform_add_device">
        <doc xml:space="preserve">Associate a device with a platform. The returned #OsinfoDeviceLink
can be used to record extra metadata against the link</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device association</doc>
          <type name="DeviceLink" c:type="OsinfoDeviceLink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="platform" transfer-ownership="none">
            <doc xml:space="preserve">a platform entity</doc>
            <type name="Platform" c:type="OsinfoPlatform*"/>
          </instance-parameter>
          <parameter name="dev" transfer-ownership="none">
            <doc xml:space="preserve">the device to associate</doc>
            <type name="Device" c:type="OsinfoDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_all_devices"
              c:identifier="osinfo_platform_get_all_devices">
        <doc xml:space="preserve">Get all platforms matching a given filter but unlike
osinfo_platform_get_devices this function also retrieves devices from
all derived and upgraded platforms.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of devices</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="platform" transfer-ownership="none">
            <doc xml:space="preserve">a platform</doc>
            <type name="Platform" c:type="OsinfoPlatform*"/>
          </instance-parameter>
          <parameter name="filter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">an optional device property filter</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_device_links"
              c:identifier="osinfo_platform_get_device_links">
        <doc xml:space="preserve">Retrieve all the associated devices matching the filter.
The filter matches against the link, not the device.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of #OsinfoDevice entities</doc>
          <type name="DeviceLinkList" c:type="OsinfoDeviceLinkList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="platform" transfer-ownership="none">
            <doc xml:space="preserve">a platform entity</doc>
            <type name="Platform" c:type="OsinfoPlatform*"/>
          </instance-parameter>
          <parameter name="filter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">an optional filter</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices" c:identifier="osinfo_platform_get_devices">
        <doc xml:space="preserve">Retrieve all the associated devices matching the filter.
The filter matches against the device, not the link.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of #OsinfoDevice entities</doc>
          <type name="DeviceList" c:type="OsinfoDeviceList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="platform" transfer-ownership="none">
            <doc xml:space="preserve">a platform entity</doc>
            <type name="Platform" c:type="OsinfoPlatform*"/>
          </instance-parameter>
          <parameter name="filter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">an optional filter</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Product" c:type="OsinfoProduct"/>
      </field>
      <field name="priv">
        <type name="PlatformPrivate" c:type="OsinfoPlatformPrivate*"/>
      </field>
    </class>
    <record name="PlatformClass"
            c:type="OsinfoPlatformClass"
            glib:is-gtype-struct-for="Platform">
      <field name="parent_class" readable="0" private="1">
        <type name="ProductClass" c:type="OsinfoProductClass"/>
      </field>
    </record>
    <class name="PlatformList"
           c:symbol-prefix="platformlist"
           c:type="OsinfoPlatformList"
           parent="ProductList"
           glib:type-name="OsinfoPlatformList"
           glib:get-type="osinfo_platformlist_get_type"
           glib:type-struct="PlatformListClass">
      <constructor name="new" c:identifier="osinfo_platformlist_new">
        <doc xml:space="preserve">Construct a new platform list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty platform list</doc>
          <type name="PlatformList" c:type="OsinfoPlatformList*"/>
        </return-value>
      </constructor>
      <method name="new_copy"
              c:identifier="osinfo_platformlist_new_copy"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new platform list that is filled with platforms
from @source</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_copy() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the platform list</doc>
          <type name="PlatformList" c:type="OsinfoPlatformList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the platform list to copy</doc>
            <type name="PlatformList" c:type="OsinfoPlatformList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="new_filtered"
              c:identifier="osinfo_platformlist_new_filtered"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new platform list that is filled with platforms
from @source that match @filter</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_filtered() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a filtered copy of the platform list</doc>
          <type name="PlatformList" c:type="OsinfoPlatformList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the platform list to copy</doc>
            <type name="PlatformList" c:type="OsinfoPlatformList*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the filter to apply</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_intersection"
              c:identifier="osinfo_platformlist_new_intersection"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new platform list that is filled with only the
platforms that are present in both @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_intersection() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an intersection of the two platform lists</doc>
          <type name="PlatformList" c:type="OsinfoPlatformList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first platform list to copy</doc>
            <type name="PlatformList" c:type="OsinfoPlatformList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second platform list to copy</doc>
            <type name="PlatformList" c:type="OsinfoPlatformList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_union"
              c:identifier="osinfo_platformlist_new_union"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new platform list that is filled with all the
platforms that are present in either @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_union() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a union of the two platform lists</doc>
          <type name="PlatformList" c:type="OsinfoPlatformList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first platform list to copy</doc>
            <type name="PlatformList" c:type="OsinfoPlatformList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second platform list to copy</doc>
            <type name="PlatformList" c:type="OsinfoPlatformList*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="ProductList" c:type="OsinfoProductList"/>
      </field>
      <field name="priv">
        <type name="PlatformListPrivate" c:type="OsinfoPlatformListPrivate*"/>
      </field>
    </class>
    <record name="PlatformListClass"
            c:type="OsinfoPlatformListClass"
            glib:is-gtype-struct-for="PlatformList">
      <field name="parent_class" readable="0" private="1">
        <type name="ProductListClass" c:type="OsinfoProductListClass"/>
      </field>
    </record>
    <record name="PlatformListPrivate"
            c:type="OsinfoPlatformListPrivate"
            disguised="1">
    </record>
    <record name="PlatformPrivate"
            c:type="OsinfoPlatformPrivate"
            disguised="1">
    </record>
    <class name="Product"
           c:symbol-prefix="product"
           c:type="OsinfoProduct"
           parent="Entity"
           abstract="1"
           glib:type-name="OsinfoProduct"
           glib:get-type="osinfo_product_get_type"
           glib:type-struct="ProductClass">
      <method name="add_related" c:identifier="osinfo_product_add_related">
        <doc xml:space="preserve">Add an association between two products</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="product" transfer-ownership="none">
            <doc xml:space="preserve">a product</doc>
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
          <parameter name="relshp" transfer-ownership="none">
            <doc xml:space="preserve">the relationship</doc>
            <type name="ProductRelationship"
                  c:type="OsinfoProductRelationship"/>
          </parameter>
          <parameter name="otherproduct" transfer-ownership="none">
            <doc xml:space="preserve">the product to relate to</doc>
            <type name="Product" c:type="OsinfoProduct*"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach_related"
              c:identifier="osinfo_product_foreach_related"
              introspectable="0">
        <doc xml:space="preserve">Call @foreach_func for @product and for each #OsinfoProduct related
to @product. The meaning of 'related' is defined by the @flag parameter,
and can be products @product derives from or products which @product
upgrades or clones, or a combination of these, or none.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="product" transfer-ownership="none">
            <doc xml:space="preserve">a product</doc>
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">bitwise-or of #OsinfoProductForeachFlag</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
          <parameter name="foreach_func" transfer-ownership="none" closure="2">
            <doc xml:space="preserve">the function to call for each related product</doc>
            <type name="ProductForeach" c:type="OsinfoProductForeach"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">user data to pass to foreach_func()</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_codename" c:identifier="osinfo_product_get_codename">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prod" transfer-ownership="none">
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_eol_date" c:identifier="osinfo_product_get_eol_date">
        <return-value transfer-ownership="full">
          <type name="GLib.Date" c:type="GDate*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prod" transfer-ownership="none">
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_eol_date_string"
              c:identifier="osinfo_product_get_eol_date_string">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prod" transfer-ownership="none">
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_logo" c:identifier="osinfo_product_get_logo">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prod" transfer-ownership="none">
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="osinfo_product_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prod" transfer-ownership="none">
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_related" c:identifier="osinfo_product_get_related">
        <doc xml:space="preserve">Get a list of products satisfying the requested
relationship</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of related products</doc>
          <type name="ProductList" c:type="OsinfoProductList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="product" transfer-ownership="none">
            <doc xml:space="preserve">an product</doc>
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
          <parameter name="relshp" transfer-ownership="none">
            <doc xml:space="preserve">the relationship to query</doc>
            <type name="ProductRelationship"
                  c:type="OsinfoProductRelationship"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_release_date"
              c:identifier="osinfo_product_get_release_date">
        <return-value transfer-ownership="full">
          <type name="GLib.Date" c:type="GDate*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prod" transfer-ownership="none">
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_release_date_string"
              c:identifier="osinfo_product_get_release_date_string">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prod" transfer-ownership="none">
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_short_id" c:identifier="osinfo_product_get_short_id">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prod" transfer-ownership="none">
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vendor" c:identifier="osinfo_product_get_vendor">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prod" transfer-ownership="none">
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version" c:identifier="osinfo_product_get_version">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prod" transfer-ownership="none">
            <type name="Product" c:type="OsinfoProduct*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="codename" transfer-ownership="none">
        <doc xml:space="preserve">The codename of this product.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="logo" transfer-ownership="none">
        <doc xml:space="preserve">The URI of the logo of the product.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name" transfer-ownership="none">
        <doc xml:space="preserve">The name of this product.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="short-id" transfer-ownership="none">
        <doc xml:space="preserve">The short ID of this product.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="vendor" transfer-ownership="none">
        <doc xml:space="preserve">The Vendor of this product.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="version" transfer-ownership="none">
        <doc xml:space="preserve">The version of the product.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="ProductPrivate" c:type="OsinfoProductPrivate*"/>
      </field>
    </class>
    <record name="ProductClass"
            c:type="OsinfoProductClass"
            glib:is-gtype-struct-for="Product">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <class name="ProductFilter"
           c:symbol-prefix="productfilter"
           c:type="OsinfoProductFilter"
           parent="Filter"
           glib:type-name="OsinfoProductFilter"
           glib:get-type="osinfo_productfilter_get_type"
           glib:type-struct="ProductFilterClass">
      <constructor name="new" c:identifier="osinfo_productfilter_new">
        <doc xml:space="preserve">Construct a new filter that matches all operating
systems</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new filter</doc>
          <type name="ProductFilter" c:type="OsinfoProductFilter*"/>
        </return-value>
      </constructor>
      <method name="add_product_constraint"
              c:identifier="osinfo_productfilter_add_product_constraint">
        <doc xml:space="preserve">Adds a constraint that matches products which
have a relationship @relshp with @product. Multiple constraints
can be set for the same @relshp or @product, in which case
all must match</doc>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="productfilter" transfer-ownership="none">
            <doc xml:space="preserve">a filter object</doc>
            <type name="ProductFilter" c:type="OsinfoProductFilter*"/>
          </instance-parameter>
          <parameter name="relshp" transfer-ownership="none">
            <doc xml:space="preserve">the relationship to filter on</doc>
            <type name="ProductRelationship"
                  c:type="OsinfoProductRelationship"/>
          </parameter>
          <parameter name="product" transfer-ownership="none">
            <doc xml:space="preserve">the target product to filter on</doc>
            <type name="Product" c:type="OsinfoProduct*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_support_date_constraint"
              c:identifier="osinfo_productfilter_add_support_date_constraint">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="productfilter" transfer-ownership="none">
            <type name="ProductFilter" c:type="OsinfoProductFilter*"/>
          </instance-parameter>
          <parameter name="when" transfer-ownership="none">
            <type name="GLib.Date" c:type="GDate*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_product_constraint"
              c:identifier="osinfo_productfilter_clear_product_constraint">
        <doc xml:space="preserve">Remove all constraints for the relationship @relshp</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="productfilter" transfer-ownership="none">
            <doc xml:space="preserve">a filter object</doc>
            <type name="ProductFilter" c:type="OsinfoProductFilter*"/>
          </instance-parameter>
          <parameter name="relshp" transfer-ownership="none">
            <doc xml:space="preserve">the relationship to clear</doc>
            <type name="ProductRelationship"
                  c:type="OsinfoProductRelationship"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_product_constraints"
              c:identifier="osinfo_productfilter_clear_product_constraints">
        <doc xml:space="preserve">Remove all relationship constraints</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="productfilter" transfer-ownership="none">
            <doc xml:space="preserve">a filter object</doc>
            <type name="ProductFilter" c:type="OsinfoProductFilter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_product_constraint_values"
              c:identifier="osinfo_productfilter_get_product_constraint_values">
        <doc xml:space="preserve">Retrieve a list of all operating systems that are
the target of constraint for the  relationship
@relshp.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a list of operating systems</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Product"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="productfilter" transfer-ownership="none">
            <doc xml:space="preserve">a filter object</doc>
            <type name="ProductFilter" c:type="OsinfoProductFilter*"/>
          </instance-parameter>
          <parameter name="relshp" transfer-ownership="none">
            <doc xml:space="preserve">a relationship to query</doc>
            <type name="ProductRelationship"
                  c:type="OsinfoProductRelationship"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Filter" c:type="OsinfoFilter"/>
      </field>
      <field name="priv">
        <type name="ProductFilterPrivate"
              c:type="OsinfoProductFilterPrivate*"/>
      </field>
    </class>
    <record name="ProductFilterClass"
            c:type="OsinfoProductFilterClass"
            glib:is-gtype-struct-for="ProductFilter">
      <field name="parent_class" readable="0" private="1">
        <type name="FilterClass" c:type="OsinfoFilterClass"/>
      </field>
    </record>
    <record name="ProductFilterPrivate"
            c:type="OsinfoProductFilterPrivate"
            disguised="1">
    </record>
    <callback name="ProductForeach" c:type="OsinfoProductForeach">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="product" transfer-ownership="none">
          <type name="Product" c:type="OsinfoProduct*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <bitfield name="ProductForeachFlag" c:type="OsinfoProductForeachFlag">
      <member name="derives_from"
              value="1"
              c:identifier="OSINFO_PRODUCT_FOREACH_FLAG_DERIVES_FROM">
      </member>
      <member name="upgrades"
              value="2"
              c:identifier="OSINFO_PRODUCT_FOREACH_FLAG_UPGRADES">
      </member>
      <member name="clones"
              value="4"
              c:identifier="OSINFO_PRODUCT_FOREACH_FLAG_CLONES">
      </member>
    </bitfield>
    <class name="ProductList"
           c:symbol-prefix="productlist"
           c:type="OsinfoProductList"
           parent="List"
           glib:type-name="OsinfoProductList"
           glib:get-type="osinfo_productlist_get_type"
           glib:type-struct="ProductListClass">
      <constructor name="new" c:identifier="osinfo_productlist_new">
        <doc xml:space="preserve">Construct a new os list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty os list</doc>
          <type name="ProductList" c:type="OsinfoProductList*"/>
        </return-value>
      </constructor>
      <method name="new_copy"
              c:identifier="osinfo_productlist_new_copy"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new os list that is filled with oss
from @source</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_copy() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the os list</doc>
          <type name="ProductList" c:type="OsinfoProductList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the os list to copy</doc>
            <type name="ProductList" c:type="OsinfoProductList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="new_filtered"
              c:identifier="osinfo_productlist_new_filtered"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new os list that is filled with oss
from @source that match @filter</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_filtered() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a filtered copy of the os list</doc>
          <type name="ProductList" c:type="OsinfoProductList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the os list to copy</doc>
            <type name="ProductList" c:type="OsinfoProductList*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the filter to apply</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_intersection"
              c:identifier="osinfo_productlist_new_intersection"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new os list that is filled with only the
oss that are present in both @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_intersection() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an intersection of the two os lists</doc>
          <type name="ProductList" c:type="OsinfoProductList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first os list to copy</doc>
            <type name="ProductList" c:type="OsinfoProductList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second os list to copy</doc>
            <type name="ProductList" c:type="OsinfoProductList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_union"
              c:identifier="osinfo_productlist_new_union"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new os list that is filled with all the
oss that are present in either @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_union() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a union of the two os lists</doc>
          <type name="ProductList" c:type="OsinfoProductList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first os list to copy</doc>
            <type name="ProductList" c:type="OsinfoProductList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second os list to copy</doc>
            <type name="ProductList" c:type="OsinfoProductList*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="List" c:type="OsinfoList"/>
      </field>
      <field name="priv">
        <type name="ProductListPrivate" c:type="OsinfoProductListPrivate*"/>
      </field>
    </class>
    <record name="ProductListClass"
            c:type="OsinfoProductListClass"
            glib:is-gtype-struct-for="ProductList">
      <field name="parent_class" readable="0" private="1">
        <type name="ListClass" c:type="OsinfoListClass"/>
      </field>
    </record>
    <record name="ProductListPrivate"
            c:type="OsinfoProductListPrivate"
            disguised="1">
    </record>
    <record name="ProductPrivate" c:type="OsinfoProductPrivate" disguised="1">
    </record>
    <enumeration name="ProductRelationship"
                 glib:type-name="OsinfoProductRelationship"
                 glib:get-type="osinfo_product_relationship_get_type"
                 c:type="OsinfoProductRelationship">
      <doc xml:space="preserve">Enum values used to form relationships between products</doc>
      <member name="derives_from"
              value="0"
              c:identifier="OSINFO_PRODUCT_RELATIONSHIP_DERIVES_FROM"
              glib:nick="derives-from">
        <doc xml:space="preserve">a descendent (RHEL-5 derives from Fedora-6)</doc>
      </member>
      <member name="upgrades"
              value="1"
              c:identifier="OSINFO_PRODUCT_RELATIONSHIP_UPGRADES"
              glib:nick="upgrades">
        <doc xml:space="preserve">a new version release (RHEL-6 upgrades RHEL-4)</doc>
      </member>
      <member name="clones"
              value="2"
              c:identifier="OSINFO_PRODUCT_RELATIONSHIP_CLONES"
              glib:nick="clones">
        <doc xml:space="preserve">a perfect clone (CentPRODUCT-5 clones RHEL-5)</doc>
      </member>
    </enumeration>
    <constant name="RESOURCES_PROP_ARCHITECTURE"
              value="architecture"
              c:type="OSINFO_RESOURCES_PROP_ARCHITECTURE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESOURCES_PROP_CPU"
              value="cpu"
              c:type="OSINFO_RESOURCES_PROP_CPU">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESOURCES_PROP_N_CPUS"
              value="n-cpus"
              c:type="OSINFO_RESOURCES_PROP_N_CPUS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESOURCES_PROP_RAM"
              value="ram"
              c:type="OSINFO_RESOURCES_PROP_RAM">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESOURCES_PROP_STORAGE"
              value="storage"
              c:type="OSINFO_RESOURCES_PROP_STORAGE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <enumeration name="ReleaseStatus"
                 glib:type-name="OsinfoReleaseStatus"
                 glib:get-type="osinfo_release_status_get_type"
                 c:type="OsinfoReleaseStatus">
      <member name="released"
              value="0"
              c:identifier="OSINFO_RELEASE_STATUS_RELEASED"
              glib:nick="released">
        <doc xml:space="preserve">A released OS.</doc>
      </member>
      <member name="snapshot"
              value="1"
              c:identifier="OSINFO_RELEASE_STATUS_SNAPSHOT"
              glib:nick="snapshot">
        <doc xml:space="preserve">A continuous integration snapshot and not
an actual released product yet. For example, gnome-continuous images for
development snapshots of GNOME and nightly build ISOs of Fedora etc.</doc>
      </member>
      <member name="prerelease"
              value="2"
              c:identifier="OSINFO_RELEASE_STATUS_PRERELEASE"
              glib:nick="prerelease">
        <doc xml:space="preserve">A pre-release. For example, alpha and
beta pre-releases of Fedora etc.</doc>
      </member>
    </enumeration>
    <class name="Resources"
           c:symbol-prefix="resources"
           c:type="OsinfoResources"
           parent="Entity"
           glib:type-name="OsinfoResources"
           glib:get-type="osinfo_resources_get_type"
           glib:type-struct="ResourcesClass">
      <constructor name="new" c:identifier="osinfo_resources_new">
        <return-value transfer-ownership="full">
          <type name="Resources" c:type="OsinfoResources*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="architecture" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_architecture"
              c:identifier="osinfo_resources_get_architecture">
        <doc xml:space="preserve">Retrieves the target hardware architecture to which @resources applies. Some
operating systems specify the same requirements and recommendations for all
architectures. In such cases, the string returned by this call will be
#OSINFO_ARCHITECTURE_ALL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the hardware architecture.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="resources" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoResources instance</doc>
            <type name="Resources" c:type="OsinfoResources*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cpu" c:identifier="osinfo_resources_get_cpu">
        <doc xml:space="preserve">Retrieves the CPU frequency in hertz (Hz). Divide the value by #OSINFO_MEGAHERTZ if
you need this value in megahertz (MHz).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the CPU frequency, or -1.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="resources" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoResources instance</doc>
            <type name="Resources" c:type="OsinfoResources*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_cpus" c:identifier="osinfo_resources_get_n_cpus">
        <doc xml:space="preserve">Retrieves the number of CPUs.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of CPUs, or -1.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="resources" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoResources instance</doc>
            <type name="Resources" c:type="OsinfoResources*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ram" c:identifier="osinfo_resources_get_ram">
        <doc xml:space="preserve">Retrieves the amount of Random Access Memory (RAM) in bytes. Divide the value
by #OSINFO_MEBIBYTES if you need this value in mebibytes.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the amount of RAM, or -1.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="resources" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoResources instance</doc>
            <type name="Resources" c:type="OsinfoResources*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_storage" c:identifier="osinfo_resources_get_storage">
        <doc xml:space="preserve">Retrieves the amount of storage space in bytes. Divide the value by
#OSINFO_GIBIBYTES if you need this value in gibibytes.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the amount of storage, or -1.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="resources" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoResources instance</doc>
            <type name="Resources" c:type="OsinfoResources*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_cpu" c:identifier="osinfo_resources_set_cpu">
        <doc xml:space="preserve">Sets the CPU frequency.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resources" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoResources instance</doc>
            <type name="Resources" c:type="OsinfoResources*"/>
          </instance-parameter>
          <parameter name="cpu" transfer-ownership="none">
            <doc xml:space="preserve">the CPU frequency in hertz (Hz)</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_n_cpus" c:identifier="osinfo_resources_set_n_cpus">
        <doc xml:space="preserve">Sets the number of CPUs.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resources" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoResources instance</doc>
            <type name="Resources" c:type="OsinfoResources*"/>
          </instance-parameter>
          <parameter name="n_cpus" transfer-ownership="none">
            <doc xml:space="preserve">the number of CPUs</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ram" c:identifier="osinfo_resources_set_ram">
        <doc xml:space="preserve">Sets the amount of RAM in bytes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resources" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoResources instance</doc>
            <type name="Resources" c:type="OsinfoResources*"/>
          </instance-parameter>
          <parameter name="ram" transfer-ownership="none">
            <doc xml:space="preserve">the amount of ram in bytes</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_storage" c:identifier="osinfo_resources_set_storage">
        <doc xml:space="preserve">Sets the amount of storage space.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resources" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoResources instance</doc>
            <type name="Resources" c:type="OsinfoResources*"/>
          </instance-parameter>
          <parameter name="storage" transfer-ownership="none">
            <doc xml:space="preserve">the amount of storage in bytes</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <property name="architecture"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The target hardware architecture to which these resources applies.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="cpu" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The CPU frequency in hertz (Hz).</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="n-cpus" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The number of CPUs.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="ram" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The amount of Random Access Memory (RAM) in bytes.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="storage" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The amount of storage space in bytes.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="ResourcesPrivate" c:type="OsinfoResourcesPrivate*"/>
      </field>
    </class>
    <record name="ResourcesClass"
            c:type="OsinfoResourcesClass"
            glib:is-gtype-struct-for="Resources">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <class name="ResourcesList"
           c:symbol-prefix="resourceslist"
           c:type="OsinfoResourcesList"
           parent="List"
           glib:type-name="OsinfoResourcesList"
           glib:get-type="osinfo_resourceslist_get_type"
           glib:type-struct="ResourcesListClass">
      <constructor name="new" c:identifier="osinfo_resourceslist_new">
        <doc xml:space="preserve">Construct a new resources list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty resources list</doc>
          <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
        </return-value>
      </constructor>
      <method name="new_copy"
              c:identifier="osinfo_resourceslist_new_copy"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new resources list that is filled with resources instances
from @source</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_copy() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the resources list</doc>
          <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the resources list to copy</doc>
            <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="new_filtered"
              c:identifier="osinfo_resourceslist_new_filtered"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new resources list that is filled with resources instances
from @source that match @filter</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_filtered() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a filtered copy of the resources list</doc>
          <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the resources list to copy</doc>
            <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the filter to apply</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_intersection"
              c:identifier="osinfo_resourceslist_new_intersection"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new resources list that is filled with only the
resources instances that are present in both @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_intersection() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an intersection of the two resources lists</doc>
          <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first resources list to copy</doc>
            <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second resources list to copy</doc>
            <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_union"
              c:identifier="osinfo_resourceslist_new_union"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new resources list that is filled with all the
resources instances that are present in either @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_union() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a union of the two resources lists</doc>
          <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first resources list to copy</doc>
            <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second resources list to copy</doc>
            <type name="ResourcesList" c:type="OsinfoResourcesList*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="List" c:type="OsinfoList"/>
      </field>
      <field name="priv">
        <type name="ResourcesListPrivate"
              c:type="OsinfoResourcesListPrivate*"/>
      </field>
    </class>
    <record name="ResourcesListClass"
            c:type="OsinfoResourcesListClass"
            glib:is-gtype-struct-for="ResourcesList">
      <field name="parent_class" readable="0" private="1">
        <type name="ListClass" c:type="OsinfoListClass"/>
      </field>
    </record>
    <record name="ResourcesListPrivate"
            c:type="OsinfoResourcesListPrivate"
            disguised="1">
    </record>
    <record name="ResourcesPrivate"
            c:type="OsinfoResourcesPrivate"
            disguised="1">
    </record>
    <constant name="TREE_PROP_ARCHITECTURE"
              value="architecture"
              c:type="OSINFO_TREE_PROP_ARCHITECTURE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TREE_PROP_BOOT_ISO"
              value="boot-iso"
              c:type="OSINFO_TREE_PROP_BOOT_ISO">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TREE_PROP_INITRD"
              value="initrd"
              c:type="OSINFO_TREE_PROP_INITRD">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TREE_PROP_KERNEL"
              value="kernel"
              c:type="OSINFO_TREE_PROP_KERNEL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TREE_PROP_TREEINFO_ARCH"
              value="treeinfo-arch"
              c:type="OSINFO_TREE_PROP_TREEINFO_ARCH">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TREE_PROP_TREEINFO_FAMILY"
              value="treeinfo-family"
              c:type="OSINFO_TREE_PROP_TREEINFO_FAMILY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TREE_PROP_TREEINFO_VARIANT"
              value="treeinfo-variant"
              c:type="OSINFO_TREE_PROP_TREEINFO_VARIANT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TREE_PROP_TREEINFO_VERSION"
              value="treeinfo-version"
              c:type="OSINFO_TREE_PROP_TREEINFO_VERSION">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="TREE_PROP_URL" value="url" c:type="OSINFO_TREE_PROP_URL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Tree"
           c:symbol-prefix="tree"
           c:type="OsinfoTree"
           parent="Entity"
           glib:type-name="OsinfoTree"
           glib:get-type="osinfo_tree_get_type"
           glib:type-struct="TreeClass">
      <constructor name="new" c:identifier="osinfo_tree_new">
        <return-value transfer-ownership="full">
          <type name="Tree" c:type="OsinfoTree*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="architecture" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="create_from_location"
                c:identifier="osinfo_tree_create_from_location"
                throws="1">
        <doc xml:space="preserve">Creates a new #OsinfoTree for installation tree at @location. The @location
could be any URI that GIO can handle or a local path.

NOTE: Currently this only works for trees with a .treeinfo file</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #OsinfoTree , or NULL on error</doc>
          <type name="Tree" c:type="OsinfoTree*"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">the location of an installation tree</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="create_from_location_async"
                c:identifier="osinfo_tree_create_from_location_async">
        <doc xml:space="preserve">Asynchronous variant of #osinfo_tree_create_from_location.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">the location of an installation tree</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:space="preserve">the I/O priority of the request</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">Function to call when result of this call is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">The user data to pass to @callback, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="create_from_location_finish"
                c:identifier="osinfo_tree_create_from_location_finish"
                throws="1">
        <doc xml:space="preserve">Finishes an asynchronous tree object creation process started with
#osinfo_tree_create_from_location_async.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #OsinfoTree , or NULL on error</doc>
          <type name="Tree" c:type="OsinfoTree*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <function name="error_quark" c:identifier="osinfo_tree_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <method name="get_architecture"
              c:identifier="osinfo_tree_get_architecture">
        <doc xml:space="preserve">Retrieves the target hardware architecture of the OS @tree provides.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the hardware architecture, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoTree instance</doc>
            <type name="Tree" c:type="OsinfoTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_boot_iso_path"
              c:identifier="osinfo_tree_get_boot_iso_path">
        <doc xml:space="preserve">Retrieves the path to the boot_iso image in the install tree.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the path to boot_iso image, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoTree instance</doc>
            <type name="Tree" c:type="OsinfoTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_initrd_path"
              c:identifier="osinfo_tree_get_initrd_path">
        <doc xml:space="preserve">Retrieves the path to the initrd image in the install tree.

Note: This only applies to installer trees of 'linux' OS family.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the path to initrd image, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoTree instance</doc>
            <type name="Tree" c:type="OsinfoTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kernel_path"
              c:identifier="osinfo_tree_get_kernel_path">
        <doc xml:space="preserve">Retrieves the path to the kernel image in the install tree.

Note: This only applies to installer trees of 'linux' OS family.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the path to kernel image, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoTree instance</doc>
            <type name="Tree" c:type="OsinfoTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_treeinfo_arch"
              c:identifier="osinfo_tree_get_treeinfo_arch">
        <doc xml:space="preserve">If @tree is an ISO9660 image/device, this function retrieves the expected
system ID.

Note: In practice, this will usually not be the exact copy of the system ID
string on the ISO image/device but rather a regular expression that matches
it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the system id, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoTree instance</doc>
            <type name="Tree" c:type="OsinfoTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_treeinfo_family"
              c:identifier="osinfo_tree_get_treeinfo_family">
        <doc xml:space="preserve">If @tree is an ISO9660 image/device, this function retrieves the expected
volume ID.

Note: In practice, this will usually not be the exact copy of the volume ID
string on the ISO image/device but rather a regular expression that matches
it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the volume id, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoTree instance</doc>
            <type name="Tree" c:type="OsinfoTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_treeinfo_variant"
              c:identifier="osinfo_tree_get_treeinfo_variant">
        <doc xml:space="preserve">If @tree is an ISO9660 image/device, this function retrieves the expected
publisher ID.

Note: In practice, this will usually not be the exact copy of the publisher
ID string on the ISO image/device but rather a regular expression that
matches it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the publisher id, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoTree instance</doc>
            <type name="Tree" c:type="OsinfoTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_treeinfo_version"
              c:identifier="osinfo_tree_get_treeinfo_version">
        <doc xml:space="preserve">If @tree is an ISO9660 image/device, this function retrieves the expected
application ID.

Note: In practice, this will usually not be the exact copy of the application
ID string on the ISO image/device but rather a regular expression that
matches it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the application id, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoTree instance</doc>
            <type name="Tree" c:type="OsinfoTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="osinfo_tree_get_url">
        <doc xml:space="preserve">The URL to the @tree</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the URL, or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">an #OsinfoTree instance</doc>
            <type name="Tree" c:type="OsinfoTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="application-id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Expected application ID (regular expression) for ISO9660 image/device.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="architecture" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The target hardware architecture of this tree.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="boot-iso-path" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The path to the boot ISO in the install tree</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="initrd-path" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The path to the initrd image in the install tree.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="kernel-path" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The path to the kernel image in the install tree.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="publisher-id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Expected publisher ID (regular expression) for ISO9660 image/device.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="system-id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Expected system ID (regular expression) for ISO9660 image/device.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="url" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The URL to this tree.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="volume-id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Expected volume ID (regular expression) for ISO9660 image/device.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Entity" c:type="OsinfoEntity"/>
      </field>
      <field name="priv">
        <type name="TreePrivate" c:type="OsinfoTreePrivate*"/>
      </field>
    </class>
    <record name="TreeClass"
            c:type="OsinfoTreeClass"
            glib:is-gtype-struct-for="Tree">
      <field name="parent_class" readable="0" private="1">
        <type name="EntityClass" c:type="OsinfoEntityClass"/>
      </field>
    </record>
    <class name="TreeList"
           c:symbol-prefix="treelist"
           c:type="OsinfoTreeList"
           parent="List"
           glib:type-name="OsinfoTreeList"
           glib:get-type="osinfo_treelist_get_type"
           glib:type-struct="TreeListClass">
      <constructor name="new" c:identifier="osinfo_treelist_new">
        <doc xml:space="preserve">Construct a new tree list that is initially empty.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an empty tree list</doc>
          <type name="TreeList" c:type="OsinfoTreeList*"/>
        </return-value>
      </constructor>
      <method name="new_copy"
              c:identifier="osinfo_treelist_new_copy"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new tree list that is filled with trees
from @source</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_copy() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the tree list</doc>
          <type name="TreeList" c:type="OsinfoTreeList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the tree list to copy</doc>
            <type name="TreeList" c:type="OsinfoTreeList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="new_filtered"
              c:identifier="osinfo_treelist_new_filtered"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new tree list that is filled with trees
from @source that match @filter</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_filtered() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a filtered copy of the tree list</doc>
          <type name="TreeList" c:type="OsinfoTreeList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">the tree list to copy</doc>
            <type name="TreeList" c:type="OsinfoTreeList*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the filter to apply</doc>
            <type name="Filter" c:type="OsinfoFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_intersection"
              c:identifier="osinfo_treelist_new_intersection"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new tree list that is filled with only the
trees that are present in both @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_intersection() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an intersection of the two tree lists</doc>
          <type name="TreeList" c:type="OsinfoTreeList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first tree list to copy</doc>
            <type name="TreeList" c:type="OsinfoTreeList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second tree list to copy</doc>
            <type name="TreeList" c:type="OsinfoTreeList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_union"
              c:identifier="osinfo_treelist_new_union"
              deprecated="1"
              deprecated-version="0.2.2">
        <doc xml:space="preserve">Construct a new tree list that is filled with all the
trees that are present in either @sourceOne and @sourceTwo.</doc>
        <doc-deprecated xml:space="preserve">Use osinfo_list_new_union() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a union of the two tree lists</doc>
          <type name="TreeList" c:type="OsinfoTreeList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sourceOne" transfer-ownership="none">
            <doc xml:space="preserve">the first tree list to copy</doc>
            <type name="TreeList" c:type="OsinfoTreeList*"/>
          </instance-parameter>
          <parameter name="sourceTwo" transfer-ownership="none">
            <doc xml:space="preserve">the second tree list to copy</doc>
            <type name="TreeList" c:type="OsinfoTreeList*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="List" c:type="OsinfoList"/>
      </field>
      <field name="priv">
        <type name="TreeListPrivate" c:type="OsinfoTreeListPrivate*"/>
      </field>
    </class>
    <record name="TreeListClass"
            c:type="OsinfoTreeListClass"
            glib:is-gtype-struct-for="TreeList">
      <field name="parent_class" readable="0" private="1">
        <type name="ListClass" c:type="OsinfoListClass"/>
      </field>
    </record>
    <record name="TreeListPrivate"
            c:type="OsinfoTreeListPrivate"
            disguised="1">
    </record>
    <record name="TreePrivate" c:type="OsinfoTreePrivate" disguised="1">
    </record>
    <function name="media_error_quark"
              c:identifier="osinfo_media_error_quark"
              moved-to="MediaError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
