<?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="Gtk" version="3.0"/>
  <include name="NMClient" version="1.0"/>
  <include name="NetworkManager" version="1.0"/>
  <package name="libnm-gtk"/>
  <namespace name="NMGtk"
             version="1.0"
             shared-library="libnm-gtk.so.0"
             c:identifier-prefixes="NMA"
             c:symbol-prefixes="nma">
    <class name="CertChooser"
           c:symbol-prefix="cert_chooser"
           c:type="NMACertChooser"
           parent="Gtk.Grid"
           glib:type-name="NMACertChooser"
           glib:get-type="nma_cert_chooser_get_type">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new"
                   c:identifier="nma_cert_chooser_new"
                   version="1.8.0">
        <doc xml:space="preserve">Constructs the button that is capable of selecting a certificate
and a key.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the certificate chooser button instance</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve">title of the certificate chooser dialog</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags that configure the capabilities of the button</doc>
            <type name="CertChooserFlags" c:type="NMACertChooserFlags"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_to_size_group"
              c:identifier="nma_cert_chooser_add_to_size_group"
              version="1.8.0">
        <doc xml:space="preserve">Adds the labels to the specified size group so that they are aligned
nicely with other entries in a form.

It is expected that the NMACertChooser is a GtkGrid with two columns
with the labels in the first one.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve">a size group</doc>
            <type name="Gtk.SizeGroup" c:type="GtkSizeGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_cert"
              c:identifier="nma_cert_chooser_get_cert"
              version="1.8.0">
        <doc xml:space="preserve">Gets the real certificate location from the chooser button along with the scheme.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the certificate path</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
          <parameter name="scheme"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the scheme of the returned certificate path</doc>
            <type name="NetworkManager.Setting8021xCKScheme"
                  c:type="NMSetting8021xCKScheme*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_cert_password"
              c:identifier="nma_cert_chooser_get_cert_password"
              version="1.8.0">
        <doc xml:space="preserve">Obtains the password or a PIN that was be required to access the certificate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the certificate PIN or password</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cert_password_flags"
              c:identifier="nma_cert_chooser_get_cert_password_flags"
              version="1.8.0">
        <doc xml:space="preserve">Returns secret flags corresponding to the certificate password
if one is present. The chooser would typically call into
nma_utils_menu_to_secret_flags() for the certificate password
entry.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">secret flags corresponding to the certificate password</doc>
          <type name="NetworkManager.SettingSecretFlags"
                c:type="NMSettingSecretFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_key"
              c:identifier="nma_cert_chooser_get_key"
              version="1.8.0">
        <doc xml:space="preserve">Gets the real key location from the chooser button along with the scheme.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the key path</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
          <parameter name="scheme"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the scheme of the returned key path</doc>
            <type name="NetworkManager.Setting8021xCKScheme"
                  c:type="NMSetting8021xCKScheme*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_key_password"
              c:identifier="nma_cert_chooser_get_key_password"
              version="1.8.0">
        <doc xml:space="preserve">Obtains the password or a PIN that was be required to access the key.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the key PIN or password</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_key_password_flags"
              c:identifier="nma_cert_chooser_get_key_password_flags"
              version="1.8.0">
        <doc xml:space="preserve">Returns secret flags corresponding to the key password
if one is present. The chooser would typically call into
nma_utils_menu_to_secret_flags() for the key password
entry.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">secret flags corresponding to the key password</doc>
          <type name="NetworkManager.SettingSecretFlags"
                c:type="NMSettingSecretFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_cert"
              c:identifier="nma_cert_chooser_set_cert"
              version="1.8.0">
        <doc xml:space="preserve">Sets the certificate location for the chooser button.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the path or URI of a certificate</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve">the scheme of the certificate path</doc>
            <type name="NetworkManager.Setting8021xCKScheme"
                  c:type="NMSetting8021xCKScheme"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cert_password"
              c:identifier="nma_cert_chooser_set_cert_password"
              version="1.8.0">
        <doc xml:space="preserve">Sets the password or a PIN that might be required to access the certificate.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <doc xml:space="preserve">the certificate PIN or password</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_key"
              c:identifier="nma_cert_chooser_set_key"
              version="1.8.0">
        <doc xml:space="preserve">Sets the key location for the chooser button.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the path or URI of a key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve">the scheme of the key path</doc>
            <type name="NetworkManager.Setting8021xCKScheme"
                  c:type="NMSetting8021xCKScheme"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_key_password"
              c:identifier="nma_cert_chooser_set_key_password"
              version="1.8.0">
        <doc xml:space="preserve">Sets the password or a PIN that might be required to access the key.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <doc xml:space="preserve">the key PIN or password</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="setup_cert_password_storage"
              c:identifier="nma_cert_chooser_setup_cert_password_storage"
              version="1.8.0">
        <doc xml:space="preserve">This method basically calls nma_utils_setup_password_storage()
on the certificate password entry, in case one is present.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
          <parameter name="initial_flags" transfer-ownership="none">
            <doc xml:space="preserve">initial secret flags to setup password menu from</doc>
            <type name="NetworkManager.SettingSecretFlags"
                  c:type="NMSettingSecretFlags"/>
          </parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve">#NMSetting containing the password, or NULL</doc>
            <type name="NetworkManager.Setting" c:type="NMSetting*"/>
          </parameter>
          <parameter name="password_flags_name" transfer-ownership="none">
            <doc xml:space="preserve">name of the secret flags (like psk-flags), or NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="with_not_required" transfer-ownership="none">
            <doc xml:space="preserve">whether to include "Not required" menu item</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="ask_mode" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the entry is shown in ASK mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="setup_key_password_storage"
              c:identifier="nma_cert_chooser_setup_key_password_storage"
              version="1.8.0">
        <doc xml:space="preserve">This method basically calls nma_utils_setup_password_storage()
on the key password entry, in case one is present.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
          <parameter name="initial_flags" transfer-ownership="none">
            <doc xml:space="preserve">initial secret flags to setup password menu from</doc>
            <type name="NetworkManager.SettingSecretFlags"
                  c:type="NMSettingSecretFlags"/>
          </parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve">#NMSetting containing the password, or NULL</doc>
            <type name="NetworkManager.Setting" c:type="NMSetting*"/>
          </parameter>
          <parameter name="password_flags_name" transfer-ownership="none">
            <doc xml:space="preserve">name of the secret flags (like psk-flags), or NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="with_not_required" transfer-ownership="none">
            <doc xml:space="preserve">whether to include "Not required" menu item</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="ask_mode" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the entry is shown in ASK mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_cert_password_storage"
              c:identifier="nma_cert_chooser_update_cert_password_storage"
              version="1.8.0">
        <doc xml:space="preserve">This method basically calls nma_utils_update_password_storage()
on the certificate password entry, in case one is present.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
          <parameter name="secret_flags" transfer-ownership="none">
            <doc xml:space="preserve">secret flags to set</doc>
            <type name="NetworkManager.SettingSecretFlags"
                  c:type="NMSettingSecretFlags"/>
          </parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve">#NMSetting containing the password, or NULL</doc>
            <type name="NetworkManager.Setting" c:type="NMSetting*"/>
          </parameter>
          <parameter name="password_flags_name" transfer-ownership="none">
            <doc xml:space="preserve">name of the secret flags (like psk-flags), or NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_key_password_storage"
              c:identifier="nma_cert_chooser_update_key_password_storage"
              version="1.8.0">
        <doc xml:space="preserve">This method basically calls nma_utils_update_password_storage()
on the key password entry, in case one is present.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
          <parameter name="secret_flags" transfer-ownership="none">
            <doc xml:space="preserve">secret flags to set</doc>
            <type name="NetworkManager.SettingSecretFlags"
                  c:type="NMSettingSecretFlags"/>
          </parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve">#NMSetting containing the password, or NULL</doc>
            <type name="NetworkManager.Setting" c:type="NMSetting*"/>
          </parameter>
          <parameter name="password_flags_name" transfer-ownership="none">
            <doc xml:space="preserve">name of the secret flags (like psk-flags), or NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="validate"
              c:identifier="nma_cert_chooser_validate"
              version="1.8.0"
              throws="1">
        <doc xml:space="preserve">Validates whether the chosen values make sense. The users can do further
validation by subscribing to the "*-changed" signals and returning an
error themselves.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if validation passes, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert_chooser" transfer-ownership="none">
            <doc xml:space="preserve">certificate chooser button instance</doc>
            <type name="CertChooser" c:type="NMACertChooser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="flags"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="title"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="cert-password-validate" when="last" version="1.8.0">
        <doc xml:space="preserve">Emitted when the certificate password needs validation. The handlers
can indicate that the password is invalid by returning an error, which blocks further
signal processing and causes a call to nma_cert_chooser_validate()
to fail.</doc>
        <return-value transfer-ownership="full">
          <type name="GLib.Error"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cert-validate" when="last" version="1.8.0">
        <doc xml:space="preserve">Emitted when the certificate needs validation. The handlers can indicate that
the certificate is invalid by returning an error, which blocks further
signal processing and causes a call to nma_cert_chooser_validate()
to fail.</doc>
        <return-value transfer-ownership="full">
          <type name="GLib.Error"/>
        </return-value>
      </glib:signal>
      <glib:signal name="changed" when="last" no-recurse="1" version="1.8.0">
        <doc xml:space="preserve">Emitted when anything changes in the certificate chooser, be it a certificate,
a key or associated passwords.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="key-password-validate" when="last" version="1.8.0">
        <doc xml:space="preserve">Emitted when the key password needs validation. The handlers can indicate
that the password is invalid by returning an error, which blocks further
signal processing and causes a call to nma_cert_chooser_validate()
to fail.</doc>
        <return-value transfer-ownership="full">
          <type name="GLib.Error"/>
        </return-value>
      </glib:signal>
      <glib:signal name="key-validate" when="last" version="1.8.0">
        <doc xml:space="preserve">Emitted when the key needs validation. The handlers can indicate that
the key is invalid by returning an error, which blocks further
signal processing and causes a call to nma_cert_chooser_validate()
to fail.</doc>
        <return-value transfer-ownership="full">
          <type name="GLib.Error"/>
        </return-value>
      </glib:signal>
    </class>
    <enumeration name="CertChooserFlags"
                 version="1.8.0"
                 c:type="NMACertChooserFlags">
      <doc xml:space="preserve">Flags that controls what is the certificate chooser button able to pick.
Currently only local files are supported, but might be extended to use URIs,
such as PKCS\#11 certificate URIs in future as well.</doc>
      <member name="cert" value="1" c:identifier="NMA_CERT_CHOOSER_FLAG_CERT">
        <doc xml:space="preserve">Only pick a certificate, not a key</doc>
      </member>
      <member name="passwords"
              value="2"
              c:identifier="NMA_CERT_CHOOSER_FLAG_PASSWORDS">
        <doc xml:space="preserve">Hide all controls but the secrets entries</doc>
      </member>
      <member name="pem" value="4" c:identifier="NMA_CERT_CHOOSER_FLAG_PEM">
        <doc xml:space="preserve">Ensure the chooser only selects regular PEM files</doc>
      </member>
    </enumeration>
    <record name="CertChooserInterface"
            c:type="NMACertChooserInterface"
            version="1.8.0">
      <field name="parent_iface" writable="1">
        <doc xml:space="preserve">The parent interface.</doc>
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="set_cert">
        <callback name="set_cert">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
            <parameter name="value" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="scheme" transfer-ownership="none">
              <type name="NetworkManager.Setting8021xCKScheme"
                    c:type="NMSetting8021xCKScheme"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_cert">
        <callback name="get_cert">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
            <parameter name="scheme" transfer-ownership="none">
              <type name="NetworkManager.Setting8021xCKScheme"
                    c:type="NMSetting8021xCKScheme*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_cert_password">
        <callback name="set_cert_password">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
            <parameter name="password" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_cert_password">
        <callback name="get_cert_password">
          <return-value transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_key">
        <callback name="set_key">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
            <parameter name="value" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="scheme" transfer-ownership="none">
              <type name="NetworkManager.Setting8021xCKScheme"
                    c:type="NMSetting8021xCKScheme"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_key">
        <callback name="get_key">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
            <parameter name="scheme" transfer-ownership="none">
              <type name="NetworkManager.Setting8021xCKScheme"
                    c:type="NMSetting8021xCKScheme*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_key_password">
        <callback name="set_key_password">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
            <parameter name="password" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_key_password">
        <callback name="get_key_password">
          <return-value transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_to_size_group">
        <callback name="add_to_size_group">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
            <parameter name="group" transfer-ownership="none">
              <type name="Gtk.SizeGroup" c:type="GtkSizeGroup*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="validate">
        <callback name="validate" throws="1">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="setup_cert_password_storage">
        <callback name="setup_cert_password_storage">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
            <parameter name="initial_flags" transfer-ownership="none">
              <type name="NetworkManager.SettingSecretFlags"
                    c:type="NMSettingSecretFlags"/>
            </parameter>
            <parameter name="setting" transfer-ownership="none">
              <type name="NetworkManager.Setting" c:type="NMSetting*"/>
            </parameter>
            <parameter name="password_flags_name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="with_not_required" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="ask_mode" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_cert_password_storage">
        <callback name="update_cert_password_storage">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
            <parameter name="secret_flags" transfer-ownership="none">
              <type name="NetworkManager.SettingSecretFlags"
                    c:type="NMSettingSecretFlags"/>
            </parameter>
            <parameter name="setting" transfer-ownership="none">
              <type name="NetworkManager.Setting" c:type="NMSetting*"/>
            </parameter>
            <parameter name="password_flags_name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_cert_password_flags">
        <callback name="get_cert_password_flags">
          <return-value transfer-ownership="none">
            <type name="NetworkManager.SettingSecretFlags"
                  c:type="NMSettingSecretFlags"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="setup_key_password_storage">
        <callback name="setup_key_password_storage">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
            <parameter name="initial_flags" transfer-ownership="none">
              <type name="NetworkManager.SettingSecretFlags"
                    c:type="NMSettingSecretFlags"/>
            </parameter>
            <parameter name="setting" transfer-ownership="none">
              <type name="NetworkManager.Setting" c:type="NMSetting*"/>
            </parameter>
            <parameter name="password_flags_name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="with_not_required" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="ask_mode" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_key_password_storage">
        <callback name="update_key_password_storage">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
            <parameter name="secret_flags" transfer-ownership="none">
              <type name="NetworkManager.SettingSecretFlags"
                    c:type="NMSettingSecretFlags"/>
            </parameter>
            <parameter name="setting" transfer-ownership="none">
              <type name="NetworkManager.Setting" c:type="NMSetting*"/>
            </parameter>
            <parameter name="password_flags_name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_key_password_flags">
        <callback name="get_key_password_flags">
          <return-value transfer-ownership="none">
            <type name="NetworkManager.SettingSecretFlags"
                  c:type="NMSettingSecretFlags"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cert_validate">
        <callback name="cert_validate">
          <return-value transfer-ownership="full">
            <type name="GLib.Error" c:type="GError*"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cert_password_validate">
        <callback name="cert_password_validate">
          <return-value transfer-ownership="full">
            <type name="GLib.Error" c:type="GError*"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_validate">
        <callback name="key_validate">
          <return-value transfer-ownership="full">
            <type name="GLib.Error" c:type="GError*"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_password_validate">
        <callback name="key_password_validate">
          <return-value transfer-ownership="full">
            <type name="GLib.Error" c:type="GError*"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="cert_chooser" transfer-ownership="none">
              <type name="CertChooser" c:type="NMACertChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="CountryInfo"
            c:type="NMACountryInfo"
            glib:type-name="NMACountryInfo"
            glib:get-type="nma_country_info_get_type"
            c:symbol-prefix="country_info">
      <method name="get_country_code"
              c:identifier="nma_country_info_get_country_code">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the code of the country.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="country_info" transfer-ownership="none">
            <type name="CountryInfo" c:type="NMACountryInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_country_name"
              c:identifier="nma_country_info_get_country_name">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of the country.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="country_info" transfer-ownership="none">
            <type name="CountryInfo" c:type="NMACountryInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_providers"
              c:identifier="nma_country_info_get_providers">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the
 list of #NMAMobileProvider this country exposes.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="MobileProvider"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="country_info" transfer-ownership="none">
            <type name="CountryInfo" c:type="NMACountryInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="nma_country_info_ref">
        <return-value transfer-ownership="full">
          <type name="CountryInfo" c:type="NMACountryInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="country_info" transfer-ownership="none">
            <type name="CountryInfo" c:type="NMACountryInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="nma_country_info_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="country_info" transfer-ownership="none">
            <type name="CountryInfo" c:type="NMACountryInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="MobileAccessMethod"
            c:type="NMAMobileAccessMethod"
            glib:type-name="NMAMobileAccessMethod"
            glib:get-type="nma_mobile_access_method_get_type"
            c:symbol-prefix="mobile_access_method">
      <method name="get_3gpp_apn"
              c:identifier="nma_mobile_access_method_get_3gpp_apn">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the 3GPP APN.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="method" transfer-ownership="none">
            <type name="MobileAccessMethod" c:type="NMAMobileAccessMethod*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dns" c:identifier="nma_mobile_access_method_get_dns">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the list of DNS.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="method" transfer-ownership="none">
            <type name="MobileAccessMethod" c:type="NMAMobileAccessMethod*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_family"
              c:identifier="nma_mobile_access_method_get_family">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #NMAMobileFamily.</doc>
          <type name="MobileFamily" c:type="NMAMobileFamily"/>
        </return-value>
        <parameters>
          <instance-parameter name="method" transfer-ownership="none">
            <type name="MobileAccessMethod" c:type="NMAMobileAccessMethod*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gateway"
              c:identifier="nma_mobile_access_method_get_gateway">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the gateway.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="method" transfer-ownership="none">
            <type name="MobileAccessMethod" c:type="NMAMobileAccessMethod*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="nma_mobile_access_method_get_name">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of the method.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="method" transfer-ownership="none">
            <type name="MobileAccessMethod" c:type="NMAMobileAccessMethod*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_password"
              c:identifier="nma_mobile_access_method_get_password">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the password.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="method" transfer-ownership="none">
            <type name="MobileAccessMethod" c:type="NMAMobileAccessMethod*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_username"
              c:identifier="nma_mobile_access_method_get_username">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the username.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="method" transfer-ownership="none">
            <type name="MobileAccessMethod" c:type="NMAMobileAccessMethod*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="nma_mobile_access_method_ref">
        <return-value transfer-ownership="full">
          <type name="MobileAccessMethod" c:type="NMAMobileAccessMethod*"/>
        </return-value>
        <parameters>
          <instance-parameter name="method" transfer-ownership="none">
            <type name="MobileAccessMethod" c:type="NMAMobileAccessMethod*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="nma_mobile_access_method_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="method" transfer-ownership="none">
            <type name="MobileAccessMethod" c:type="NMAMobileAccessMethod*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="MobileFamily" c:type="NMAMobileFamily">
      <member name="unknown"
              value="0"
              c:identifier="NMA_MOBILE_FAMILY_UNKNOWN">
      </member>
      <member name="3gpp" value="1" c:identifier="NMA_MOBILE_FAMILY_3GPP">
      </member>
      <member name="cdma" value="2" c:identifier="NMA_MOBILE_FAMILY_CDMA">
      </member>
    </enumeration>
    <record name="MobileProvider"
            c:type="NMAMobileProvider"
            glib:type-name="NMAMobileProvider"
            glib:get-type="nma_mobile_provider_get_type"
            c:symbol-prefix="mobile_provider">
      <method name="get_3gpp_mcc_mnc"
              c:identifier="nma_mobile_provider_get_3gpp_mcc_mnc">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a
 list of strings with the MCC and MNC codes this provider exposes.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #NMAMobileProvider</doc>
            <type name="MobileProvider" c:type="NMAMobileProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cdma_sid"
              c:identifier="nma_mobile_provider_get_cdma_sid">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the
 list of CDMA SIDs this provider exposes</doc>
          <array c:type="guint32*">
            <type name="guint32"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #NMAMobileProvider</doc>
            <type name="MobileProvider" c:type="NMAMobileProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_methods"
              c:identifier="nma_mobile_provider_get_methods">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the
 list of #NMAMobileAccessMethod this provider exposes.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="MobileAccessMethod"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #NMAMobileProvider</doc>
            <type name="MobileProvider" c:type="NMAMobileProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="nma_mobile_provider_get_name">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of the provider.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="MobileProvider" c:type="NMAMobileProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="nma_mobile_provider_ref">
        <return-value transfer-ownership="full">
          <type name="MobileProvider" c:type="NMAMobileProvider*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="MobileProvider" c:type="NMAMobileProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="nma_mobile_provider_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="MobileProvider" c:type="NMAMobileProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="MobileProvidersDatabase"
           c:symbol-prefix="mobile_providers_database"
           c:type="NMAMobileProvidersDatabase"
           parent="GObject.Object"
           glib:type-name="NMAMobileProvidersDatabase"
           glib:get-type="nma_mobile_providers_database_get_type"
           glib:type-struct="MobileProvidersDatabaseClass">
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.Initable"/>
      <constructor name="new_finish"
                   c:identifier="nma_mobile_providers_database_new_finish"
                   throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The constructed object or %NULL if @error is set.</doc>
          <type name="MobileProvidersDatabase"
                c:type="NMAMobileProvidersDatabase*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">The #GAsyncResult obtained from the #GAsyncReadyCallback passed to nma_mobile_providers_database_new().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_sync"
                   c:identifier="nma_mobile_providers_database_new_sync"
                   throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The constructed object or %NULL if @error is set.</doc>
          <type name="MobileProvidersDatabase"
                c:type="NMAMobileProvidersDatabase*"/>
        </return-value>
        <parameters>
          <parameter name="country_codes"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Path to the country codes file.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="service_providers"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Path to the service providers file.</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>
      </constructor>
      <function name="new" c:identifier="nma_mobile_providers_database_new">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="country_codes"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Path to the country codes file.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="service_providers"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Path to the service providers file.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">A #GAsyncReadyCallback to call when the request is satisfied.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">User data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <method name="dump" c:identifier="nma_mobile_providers_database_dump">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #NMAMobileProvidersDatabase.</doc>
            <type name="MobileProvidersDatabase"
                  c:type="NMAMobileProvidersDatabase*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_countries"
              c:identifier="nma_mobile_providers_database_get_countries">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a
 hash table where keys are country names #gchar and values are #NMACountryInfo.</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="CountryInfo"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #NMAMobileProvidersDatabase.</doc>
            <type name="MobileProvidersDatabase"
                  c:type="NMAMobileProvidersDatabase*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lookup_3gpp_mcc_mnc"
              c:identifier="nma_mobile_providers_database_lookup_3gpp_mcc_mnc">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #NMAMobileProvider or %NULL if not found.</doc>
          <type name="MobileProvider" c:type="NMAMobileProvider*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #NMAMobileProvidersDatabase.</doc>
            <type name="MobileProvidersDatabase"
                  c:type="NMAMobileProvidersDatabase*"/>
          </instance-parameter>
          <parameter name="mccmnc" transfer-ownership="none">
            <doc xml:space="preserve">the MCC/MNC string to look for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_cdma_sid"
              c:identifier="nma_mobile_providers_database_lookup_cdma_sid">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #NMAMobileProvider, or %NULL if not found.</doc>
          <type name="MobileProvider" c:type="NMAMobileProvider*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #NMAMobileProvidersDatabase.</doc>
            <type name="MobileProvidersDatabase"
                  c:type="NMAMobileProvidersDatabase*"/>
          </instance-parameter>
          <parameter name="sid" transfer-ownership="none">
            <doc xml:space="preserve">the SID to look for.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_country"
              c:identifier="nma_mobile_providers_database_lookup_country">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #NMACountryInfo or %NULL if not found.</doc>
          <type name="CountryInfo" c:type="NMACountryInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #NMAMobileProvidersDatabase.</doc>
            <type name="MobileProvidersDatabase"
                  c:type="NMAMobileProvidersDatabase*"/>
          </instance-parameter>
          <parameter name="country_code" transfer-ownership="none">
            <doc xml:space="preserve">the country code string to look for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="country-codes"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="service-providers"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MobileProvidersDatabasePrivate"
              c:type="NMAMobileProvidersDatabasePrivate*"/>
      </field>
    </class>
    <record name="MobileProvidersDatabaseClass"
            c:type="NMAMobileProvidersDatabaseClass"
            glib:is-gtype-struct-for="MobileProvidersDatabase">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="MobileProvidersDatabasePrivate"
            c:type="NMAMobileProvidersDatabasePrivate"
            disguised="1">
    </record>
    <record name="MobileWizard" c:type="NMAMobileWizard" disguised="1">
      <method name="destroy" c:identifier="nma_mobile_wizard_destroy">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MobileWizard" c:type="NMAMobileWizard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="present" c:identifier="nma_mobile_wizard_present">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="wizard" transfer-ownership="none">
            <type name="MobileWizard" c:type="NMAMobileWizard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="new"
                c:identifier="nma_mobile_wizard_new"
                introspectable="0">
        <return-value>
          <type name="MobileWizard" c:type="NMAMobileWizard*"/>
        </return-value>
        <parameters>
          <parameter name="parent" transfer-ownership="none">
            <type name="Gtk.Window" c:type="GtkWindow*"/>
          </parameter>
          <parameter name="window_group" transfer-ownership="none">
            <type name="Gtk.WindowGroup" c:type="GtkWindowGroup*"/>
          </parameter>
          <parameter name="modem_caps" transfer-ownership="none">
            <type name="NetworkManager.DeviceModemCapabilities"
                  c:type="NMDeviceModemCapabilities"/>
          </parameter>
          <parameter name="will_connect_after" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="cb"
                     transfer-ownership="none"
                     scope="async"
                     closure="5">
            <type name="MobileWizardCallback"
                  c:type="NMAMobileWizardCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="MobileWizardAccessMethod"
            c:type="NMAMobileWizardAccessMethod">
      <field name="provider_name" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="plan_name" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="devtype" writable="1">
        <type name="NetworkManager.DeviceModemCapabilities"
              c:type="NMDeviceModemCapabilities"/>
      </field>
      <field name="username" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="password" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="gsm_apn" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
    </record>
    <callback name="MobileWizardCallback" c:type="NMAMobileWizardCallback">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="self" transfer-ownership="none">
          <type name="MobileWizard" c:type="NMAMobileWizard*"/>
        </parameter>
        <parameter name="canceled" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="method" transfer-ownership="none">
          <type name="MobileWizardAccessMethod"
                c:type="NMAMobileWizardAccessMethod*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="VpnPasswordDialog"
           c:symbol-prefix="vpn_password_dialog"
           c:type="NMAVpnPasswordDialog"
           parent="Gtk.Dialog"
           glib:type-name="NMAVpnPasswordDialog"
           glib:get-type="nma_vpn_password_dialog_get_type"
           glib:type-struct="VpnPasswordDialogClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="nma_vpn_password_dialog_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="password" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="focus_password"
              c:identifier="nma_vpn_password_dialog_focus_password">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="focus_password_secondary"
              c:identifier="nma_vpn_password_dialog_focus_password_secondary">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="focus_password_ternary"
              c:identifier="nma_vpn_password_dialog_focus_password_ternary">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_password"
              c:identifier="nma_vpn_password_dialog_get_password">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_password_secondary"
              c:identifier="nma_vpn_password_dialog_get_password_secondary">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_password_ternary"
              c:identifier="nma_vpn_password_dialog_get_password_ternary">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="run_and_block"
              c:identifier="nma_vpn_password_dialog_run_and_block">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_password"
              c:identifier="nma_vpn_password_dialog_set_password">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password_label"
              c:identifier="nma_vpn_password_dialog_set_password_label">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password_secondary"
              c:identifier="nma_vpn_password_dialog_set_password_secondary">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
          <parameter name="password_secondary" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password_secondary_label"
              c:identifier="nma_vpn_password_dialog_set_password_secondary_label">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password_ternary"
              c:identifier="nma_vpn_password_dialog_set_password_ternary">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
          <parameter name="password_ternary" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password_ternary_label"
              c:identifier="nma_vpn_password_dialog_set_password_ternary_label">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_password"
              c:identifier="nma_vpn_password_dialog_set_show_password">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_password_secondary"
              c:identifier="nma_vpn_password_dialog_set_show_password_secondary">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_password_ternary"
              c:identifier="nma_vpn_password_dialog_set_show_password_ternary">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <type name="VpnPasswordDialog" c:type="NMAVpnPasswordDialog*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Gtk.Dialog" c:type="GtkDialog"/>
      </field>
    </class>
    <record name="VpnPasswordDialogClass"
            c:type="NMAVpnPasswordDialogClass"
            glib:is-gtype-struct-for="VpnPasswordDialog">
      <field name="parent_class">
        <type name="Gtk.DialogClass" c:type="GtkDialogClass"/>
      </field>
    </record>
    <class name="WifiDialog"
           c:symbol-prefix="wifi_dialog"
           c:type="NMAWifiDialog"
           parent="Gtk.Dialog"
           glib:type-name="NMAWifiDialog"
           glib:get-type="nma_wifi_dialog_get_type"
           glib:type-struct="WifiDialogClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="nma_wifi_dialog_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="client" transfer-ownership="none">
            <type name="NMClient.Client" c:type="NMClient*"/>
          </parameter>
          <parameter name="settings" transfer-ownership="none">
            <type name="NMClient.RemoteSettings" c:type="NMRemoteSettings*"/>
          </parameter>
          <parameter name="connection" transfer-ownership="none">
            <type name="NetworkManager.Connection" c:type="NMConnection*"/>
          </parameter>
          <parameter name="device" transfer-ownership="none">
            <type name="NMClient.Device" c:type="NMDevice*"/>
          </parameter>
          <parameter name="ap" transfer-ownership="none">
            <type name="NMClient.AccessPoint" c:type="NMAccessPoint*"/>
          </parameter>
          <parameter name="secrets_only" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_create"
                   c:identifier="nma_wifi_dialog_new_for_create">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="client" transfer-ownership="none">
            <type name="NMClient.Client" c:type="NMClient*"/>
          </parameter>
          <parameter name="settings" transfer-ownership="none">
            <type name="NMClient.RemoteSettings" c:type="NMRemoteSettings*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_hidden"
                   c:identifier="nma_wifi_dialog_new_for_hidden">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="client" transfer-ownership="none">
            <type name="NMClient.Client" c:type="NMClient*"/>
          </parameter>
          <parameter name="settings" transfer-ownership="none">
            <type name="NMClient.RemoteSettings" c:type="NMRemoteSettings*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_other"
                   c:identifier="nma_wifi_dialog_new_for_other">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="client" transfer-ownership="none">
            <type name="NMClient.Client" c:type="NMClient*"/>
          </parameter>
          <parameter name="settings" transfer-ownership="none">
            <type name="NMClient.RemoteSettings" c:type="NMRemoteSettings*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_connection"
              c:identifier="nma_wifi_dialog_get_connection">
        <return-value transfer-ownership="full">
          <type name="NetworkManager.Connection" c:type="NMConnection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an #NMAWifiDialog</doc>
            <type name="WifiDialog" c:type="NMAWifiDialog*"/>
          </instance-parameter>
          <parameter name="device"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="NMClient.Device" c:type="NMDevice**"/>
          </parameter>
          <parameter name="ap"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="NMClient.AccessPoint" c:type="NMAccessPoint**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_nag_ignored"
              c:identifier="nma_wifi_dialog_get_nag_ignored">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="WifiDialog" c:type="NMAWifiDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="nag_user" c:identifier="nma_wifi_dialog_nag_user">
        <return-value transfer-ownership="full">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="WifiDialog" c:type="NMAWifiDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_nag_ignored"
              c:identifier="nma_wifi_dialog_set_nag_ignored">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="WifiDialog" c:type="NMAWifiDialog*"/>
          </instance-parameter>
          <parameter name="ignored" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Gtk.Dialog" c:type="GtkDialog"/>
      </field>
    </class>
    <record name="WifiDialogClass"
            c:type="NMAWifiDialogClass"
            glib:is-gtype-struct-for="WifiDialog">
      <field name="parent">
        <type name="Gtk.DialogClass" c:type="GtkDialogClass"/>
      </field>
    </record>
    <function name="mobile_providers_split_3gpp_mcc_mnc"
              c:identifier="nma_mobile_providers_split_3gpp_mcc_mnc">
      <doc xml:space="preserve">Splits the input MCCMNC string into separate MCC and MNC strings.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if correctly split and @mcc and @mnc are set; %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="mccmnc" transfer-ownership="none">
          <doc xml:space="preserve">input MCCMNC string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="mcc"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">the MCC.</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="mnc"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">the MNC.</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="mobile_wizard_new"
              c:identifier="nma_mobile_wizard_new"
              moved-to="MobileWizard.new"
              introspectable="0">
      <return-value>
        <type name="MobileWizard" c:type="NMAMobileWizard*"/>
      </return-value>
      <parameters>
        <parameter name="parent" transfer-ownership="none">
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="window_group" transfer-ownership="none">
          <type name="Gtk.WindowGroup" c:type="GtkWindowGroup*"/>
        </parameter>
        <parameter name="modem_caps" transfer-ownership="none">
          <type name="NetworkManager.DeviceModemCapabilities"
                c:type="NMDeviceModemCapabilities"/>
        </parameter>
        <parameter name="will_connect_after" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="cb"
                   transfer-ownership="none"
                   scope="async"
                   closure="5">
          <type name="MobileWizardCallback" c:type="NMAMobileWizardCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_disambiguate_device_names"
              c:identifier="nma_utils_disambiguate_device_names">
      <doc xml:space="preserve">Generates a list of short-ish unique presentation names for the
devices in @devices.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">the device names</doc>
        <array c:type="char**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="devices" transfer-ownership="none">
          <doc xml:space="preserve">a set of #NMDevice</doc>
          <array length="1" zero-terminated="0" c:type="NMDevice**">
            <type name="NMClient.Device" c:type="NMDevice*"/>
          </array>
        </parameter>
        <parameter name="num_devices" transfer-ownership="none">
          <doc xml:space="preserve">length of @devices</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_get_connection_device_name"
              c:identifier="nma_utils_get_connection_device_name">
      <doc xml:space="preserve">Returns the name that nma_utils_disambiguate_device_names() would
return for the virtual device that would be created for @connection.
Eg, "VLAN (eth1.1)".</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">the name of @connection's device</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="connection" transfer-ownership="none">
          <doc xml:space="preserve">an #NMConnection for a virtual device type</doc>
          <type name="NetworkManager.Connection" c:type="NMConnection*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_get_device_description"
              c:identifier="nma_utils_get_device_description">
      <doc xml:space="preserve">Gets a description of @device, incorporating the results of
nma_utils_get_device_vendor() and
nma_utils_get_device_product().</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a description of @device. If either the vendor or the
  product name is unknown, this returns the interface name.</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve">an #NMDevice</doc>
          <type name="NMClient.Device" c:type="NMDevice*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_get_device_generic_type_name"
              c:identifier="nma_utils_get_device_generic_type_name">
      <doc xml:space="preserve">Gets a "generic" name for the type of @device.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">@device's generic type name</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve">an #NMDevice</doc>
          <type name="NMClient.Device" c:type="NMDevice*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_get_device_product"
              c:identifier="nma_utils_get_device_product">
      <doc xml:space="preserve">Gets a cleaned-up version of #NMDevice:product for @device. This
removes strings like "Wireless LAN Adapter" that would just take up
unnecessary space in the UI.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a cleaned-up product string, or %NULL if the product name
  is not known</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve">an #NMDevice</doc>
          <type name="NMClient.Device" c:type="NMDevice*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_get_device_type_name"
              c:identifier="nma_utils_get_device_type_name">
      <doc xml:space="preserve">Gets a specific name for the type of @device.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">@device's generic type name</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve">an #NMDevice</doc>
          <type name="NMClient.Device" c:type="NMDevice*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_get_device_vendor"
              c:identifier="nma_utils_get_device_vendor">
      <doc xml:space="preserve">Gets a cleaned-up version of #NMDevice:vendor for @device. This
removes strings like "Inc." that would just take up unnecessary
space in the UI.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a cleaned-up vendor string, or %NULL if the vendor is
  not known</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="device" transfer-ownership="none">
          <doc xml:space="preserve">an #NMDevice</doc>
          <type name="NMClient.Device" c:type="NMDevice*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_menu_to_secret_flags"
              c:identifier="nma_utils_menu_to_secret_flags">
      <doc xml:space="preserve">Returns secret flags corresponding to the selected password storage menu
in the attached icon</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">secret flags corresponding to the active item in password menu</doc>
        <type name="NetworkManager.SettingSecretFlags"
              c:type="NMSettingSecretFlags"/>
      </return-value>
      <parameters>
        <parameter name="passwd_entry" transfer-ownership="none">
          <doc xml:space="preserve">password #GtkEntry which the password icon/menu is attached to</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_setup_password_storage"
              c:identifier="nma_utils_setup_password_storage">
      <doc xml:space="preserve">Adds a secondary icon and creates a popup menu for password entry.
The active menu item is set up according to initial_flags, or
from @setting/@password_flags_name (if they are not NULL).
If the @setting/@password_flags_name are not NULL, secret flags will
be automatically updated in the setting when menu is changed.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="passwd_entry" transfer-ownership="none">
          <doc xml:space="preserve">password #GtkEntry which the icon is attached to</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="initial_flags" transfer-ownership="none">
          <doc xml:space="preserve">initial secret flags to setup password menu from</doc>
          <type name="NetworkManager.SettingSecretFlags"
                c:type="NMSettingSecretFlags"/>
        </parameter>
        <parameter name="setting" transfer-ownership="none">
          <doc xml:space="preserve">#NMSetting containing the password, or NULL</doc>
          <type name="NetworkManager.Setting" c:type="NMSetting*"/>
        </parameter>
        <parameter name="password_flags_name" transfer-ownership="none">
          <doc xml:space="preserve">name of the secret flags (like psk-flags), or NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="with_not_required" transfer-ownership="none">
          <doc xml:space="preserve">whether to include "Not required" menu item</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="ask_mode" transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the entrie is shown in ASK mode. That means,
  while prompting for a password, contrary to being inside the
  editor mode.
  If %TRUE, the entry should be sensivive on selected "always-ask"
  icon (this is e.f. for nm-applet asking for password), otherwise
  not.
  If %TRUE, it shall not be possible to select a different storage,
  because we only prompt for a password, we cannot change the password
  location.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_update_password_storage"
              c:identifier="nma_utils_update_password_storage">
      <doc xml:space="preserve">Updates secret flags in the password storage popup menu and also
in the @setting (if @setting and @password_flags_name are not NULL).</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="passwd_entry" transfer-ownership="none">
          <doc xml:space="preserve">#GtkEntry with the password</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="secret_flags" transfer-ownership="none">
          <doc xml:space="preserve">secret flags to set</doc>
          <type name="NetworkManager.SettingSecretFlags"
                c:type="NMSettingSecretFlags"/>
        </parameter>
        <parameter name="setting" transfer-ownership="none">
          <doc xml:space="preserve">#NMSetting containing the password, or NULL</doc>
          <type name="NetworkManager.Setting" c:type="NMSetting*"/>
        </parameter>
        <parameter name="password_flags_name" transfer-ownership="none">
          <doc xml:space="preserve">name of the secret flags (like psk-flags), or NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
