summary refs log tree commit diff
path: root/introspection
diff options
context:
space:
mode:
Diffstat (limited to 'introspection')
-rw-r--r--introspection/Makefile.am43
-rw-r--r--introspection/Makefile.in54
-rw-r--r--introspection/errors.xml12
-rw-r--r--introspection/generic-types.xml26
-rw-r--r--introspection/nm-access-point.xml60
-rw-r--r--introspection/nm-active-connection.xml90
-rw-r--r--introspection/nm-agent-manager.xml26
-rw-r--r--introspection/nm-device-adsl.xml8
-rw-r--r--introspection/nm-device-bond.xml16
-rw-r--r--introspection/nm-device-bridge.xml16
-rw-r--r--introspection/nm-device-bt.xml26
-rw-r--r--introspection/nm-device-ethernet.xml24
-rw-r--r--introspection/nm-device-generic.xml12
-rw-r--r--introspection/nm-device-infiniband.xml12
-rw-r--r--introspection/nm-device-ip-tunnel.xml48
-rw-r--r--introspection/nm-device-macvlan.xml22
-rw-r--r--introspection/nm-device-modem.xml34
-rw-r--r--introspection/nm-device-olpc-mesh.xml20
-rw-r--r--introspection/nm-device-team.xml16
-rw-r--r--introspection/nm-device-tun.xml40
-rw-r--r--introspection/nm-device-veth.xml8
-rw-r--r--introspection/nm-device-vlan.xml20
-rw-r--r--introspection/nm-device-vxlan.xml72
-rw-r--r--introspection/nm-device-wifi.xml112
-rw-r--r--introspection/nm-device-wimax.xml64
-rw-r--r--introspection/nm-device.xml556
-rw-r--r--introspection/nm-dhcp4-config.xml10
-rw-r--r--introspection/nm-dhcp6-config.xml10
-rw-r--r--introspection/nm-ip4-config.xml42
-rw-r--r--introspection/nm-ip6-config.xml42
-rw-r--r--introspection/nm-manager.xml354
-rw-r--r--introspection/nm-secret-agent.xml122
-rw-r--r--introspection/nm-settings-connection.xml70
-rw-r--r--introspection/nm-settings.xml118
-rw-r--r--introspection/nm-vpn-connection.xml104
-rw-r--r--introspection/nm-vpn-plugin.xml184
-rw-r--r--introspection/nm-wimax-nsp.xml22
-rw-r--r--introspection/nmdbus-access-point-org.freedesktop.NetworkManager.AccessPoint.xml134
-rw-r--r--introspection/nmdbus-active-connection-org.freedesktop.NetworkManager.Connection.Active.xml179
-rw-r--r--introspection/nmdbus-agent-manager-org.freedesktop.NetworkManager.AgentManager.xml66
-rw-r--r--introspection/nmdbus-device-adsl-org.freedesktop.NetworkManager.Device.Adsl.xml53
-rw-r--r--introspection/nmdbus-device-bond-org.freedesktop.NetworkManager.Device.Bond.xml71
-rw-r--r--introspection/nmdbus-device-bridge-org.freedesktop.NetworkManager.Device.Bridge.xml71
-rw-r--r--introspection/nmdbus-device-bt-org.freedesktop.NetworkManager.Device.Bluetooth.xml71
-rw-r--r--introspection/nmdbus-device-ethernet-org.freedesktop.NetworkManager.Device.Wired.xml89
-rw-r--r--introspection/nmdbus-device-generic-org.freedesktop.NetworkManager.Device.Generic.xml62
-rw-r--r--introspection/nmdbus-device-infiniband-org.freedesktop.NetworkManager.Device.Infiniband.xml62
-rw-r--r--introspection/nmdbus-device-ip-tunnel-org.freedesktop.NetworkManager.Device.IPTunnel.xml143
-rw-r--r--introspection/nmdbus-device-macvlan-org.freedesktop.NetworkManager.Device.Macvlan.xml80
-rw-r--r--introspection/nmdbus-device-modem-org.freedesktop.NetworkManager.Device.Modem.xml62
-rw-r--r--introspection/nmdbus-device-olpc-mesh-org.freedesktop.NetworkManager.Device.OlpcMesh.xml71
-rw-r--r--introspection/nmdbus-device-org.freedesktop.NetworkManager.Device.xml370
-rw-r--r--introspection/nmdbus-device-team-org.freedesktop.NetworkManager.Device.Team.xml71
-rw-r--r--introspection/nmdbus-device-tun-org.freedesktop.NetworkManager.Device.Tun.xml107
-rw-r--r--introspection/nmdbus-device-veth-org.freedesktop.NetworkManager.Device.Veth.xml53
-rw-r--r--introspection/nmdbus-device-vlan-org.freedesktop.NetworkManager.Device.Vlan.xml80
-rw-r--r--introspection/nmdbus-device-vxlan-org.freedesktop.NetworkManager.Device.Vxlan.xml197
-rw-r--r--introspection/nmdbus-device-wifi-org.freedesktop.NetworkManager.Device.Wireless.xml190
-rw-r--r--introspection/nmdbus-device-wimax-org.freedesktop.NetworkManager.Device.WiMax.xml169
-rw-r--r--introspection/nmdbus-dhcp4-config-org.freedesktop.NetworkManager.DHCP4Config.xml53
-rw-r--r--introspection/nmdbus-dhcp6-config-org.freedesktop.NetworkManager.DHCP6Config.xml53
-rw-r--r--introspection/nmdbus-ip4-config-org.freedesktop.NetworkManager.IP4Config.xml134
-rw-r--r--introspection/nmdbus-ip6-config-org.freedesktop.NetworkManager.IP6Config.xml125
-rw-r--r--introspection/nmdbus-manager-org.freedesktop.NetworkManager.xml532
-rw-r--r--introspection/nmdbus-ppp-manager-org.freedesktop.NetworkManager.PPP.xml87
-rw-r--r--introspection/nmdbus-secret-agent-org.freedesktop.NetworkManager.SecretAgent.xml129
-rw-r--r--introspection/nmdbus-settings-connection-org.freedesktop.NetworkManager.Settings.Connection.xml172
-rw-r--r--introspection/nmdbus-settings-org.freedesktop.NetworkManager.Settings.xml244
-rw-r--r--introspection/nmdbus-vpn-connection-org.freedesktop.NetworkManager.VPN.Connection.xml83
-rw-r--r--introspection/nmdbus-vpn-plugin-org.freedesktop.NetworkManager.VPN.Plugin.xml298
-rw-r--r--introspection/vpn-errors.xml38
71 files changed, 5680 insertions, 1234 deletions
diff --git a/introspection/Makefile.am b/introspection/Makefile.am
index 735921d3..4d2e1298 100644
--- a/introspection/Makefile.am
+++ b/introspection/Makefile.am
@@ -78,21 +78,62 @@ nodist_libnmdbus_la_SOURCES = \
 	nmdbus-vpn-plugin.c \
 	nmdbus-vpn-plugin.h
 
+DBUS_INTERFACE_DOCS = \
+	nmdbus-access-point-org.freedesktop.NetworkManager.AccessPoint.xml \
+	nmdbus-active-connection-org.freedesktop.NetworkManager.Connection.Active.xml \
+	nmdbus-device-team-org.freedesktop.NetworkManager.Device.Team.xml \
+	nmdbus-dhcp6-config-org.freedesktop.NetworkManager.DHCP6Config.xml \
+	nmdbus-device-wifi-org.freedesktop.NetworkManager.Device.Wireless.xml \
+	nmdbus-manager-org.freedesktop.NetworkManager.xml \
+	nmdbus-vpn-connection-org.freedesktop.NetworkManager.VPN.Connection.xml \
+	nmdbus-secret-agent-org.freedesktop.NetworkManager.SecretAgent.xml \
+	nmdbus-device-org.freedesktop.NetworkManager.Device.xml \
+	nmdbus-vpn-plugin-org.freedesktop.NetworkManager.VPN.Plugin.xml \
+	nmdbus-device-bt-org.freedesktop.NetworkManager.Device.Bluetooth.xml \
+	nmdbus-device-vxlan-org.freedesktop.NetworkManager.Device.Vxlan.xml \
+	nmdbus-settings-connection-org.freedesktop.NetworkManager.Settings.Connection.xml \
+	nmdbus-device-bond-org.freedesktop.NetworkManager.Device.Bond.xml \
+	nmdbus-device-macvlan-org.freedesktop.NetworkManager.Device.Macvlan.xml \
+	nmdbus-ppp-manager-org.freedesktop.NetworkManager.PPP.xml \
+	nmdbus-device-vlan-org.freedesktop.NetworkManager.Device.Vlan.xml \
+	nmdbus-device-adsl-org.freedesktop.NetworkManager.Device.Adsl.xml \
+	nmdbus-agent-manager-org.freedesktop.NetworkManager.AgentManager.xml \
+	nmdbus-device-wimax-org.freedesktop.NetworkManager.Device.WiMax.xml \
+	nmdbus-device-ip-tunnel-org.freedesktop.NetworkManager.Device.IPTunnel.xml \
+	nmdbus-device-tun-org.freedesktop.NetworkManager.Device.Tun.xml \
+	nmdbus-device-bridge-org.freedesktop.NetworkManager.Device.Bridge.xml \
+	nmdbus-device-olpc-mesh-org.freedesktop.NetworkManager.Device.OlpcMesh.xml \
+	nmdbus-dhcp4-config-org.freedesktop.NetworkManager.DHCP4Config.xml \
+	nmdbus-device-generic-org.freedesktop.NetworkManager.Device.Generic.xml \
+	nmdbus-device-infiniband-org.freedesktop.NetworkManager.Device.Infiniband.xml \
+	nmdbus-device-modem-org.freedesktop.NetworkManager.Device.Modem.xml \
+	nmdbus-ip6-config-org.freedesktop.NetworkManager.IP6Config.xml \
+	nmdbus-device-veth-org.freedesktop.NetworkManager.Device.Veth.xml \
+	nmdbus-settings-org.freedesktop.NetworkManager.Settings.xml \
+	nmdbus-device-ethernet-org.freedesktop.NetworkManager.Device.Wired.xml \
+	nmdbus-ip4-config-org.freedesktop.NetworkManager.IP4Config.xml
+
 define _make_nmdbus_rule
 $(1): $(patsubst nmdbus-%.c,nm-%.xml,$(1))
 	$$(AM_V_GEN) gdbus-codegen \
 		--generate-c-code $$(basename $$@) \
+		--generate-docbook $$(basename $$@) \
 		--c-namespace NMDBus \
 		--interface-prefix org.freedesktop.NetworkManager \
 		$$<
 
+$(filter $(basename $(1))-org.freedesktop.NetworkManager.%,$(DBUS_INTERFACE_DOCS)): $(1)
+	@true
+
 $(basename $(1)).h: $(1)
 	@true
 endef
 
 $(foreach f,$(filter %.c,$(nodist_libnmdbus_la_SOURCES)),$(eval $(call _make_nmdbus_rule,$f)))
 
-CLEANFILES = $(nodist_libnmdbus_la_SOURCES)
+BUILT_SOURCES = $(nodist_libnmdbus_la_SOURCES) $(DBUS_INTERFACE_DOCS)
+
+CLEANFILES = $(BUILT_SOURCES)
 
 EXTRA_DIST = \
 	all.xml.in \
diff --git a/introspection/Makefile.in b/introspection/Makefile.in
index ac18d9ae..ea43b442 100644
--- a/introspection/Makefile.in
+++ b/introspection/Makefile.in
@@ -540,7 +540,43 @@ nodist_libnmdbus_la_SOURCES = \
 	nmdbus-vpn-plugin.c \
 	nmdbus-vpn-plugin.h
 
-CLEANFILES = $(nodist_libnmdbus_la_SOURCES)
+DBUS_INTERFACE_DOCS = \
+	nmdbus-access-point-org.freedesktop.NetworkManager.AccessPoint.xml \
+	nmdbus-active-connection-org.freedesktop.NetworkManager.Connection.Active.xml \
+	nmdbus-device-team-org.freedesktop.NetworkManager.Device.Team.xml \
+	nmdbus-dhcp6-config-org.freedesktop.NetworkManager.DHCP6Config.xml \
+	nmdbus-device-wifi-org.freedesktop.NetworkManager.Device.Wireless.xml \
+	nmdbus-manager-org.freedesktop.NetworkManager.xml \
+	nmdbus-vpn-connection-org.freedesktop.NetworkManager.VPN.Connection.xml \
+	nmdbus-secret-agent-org.freedesktop.NetworkManager.SecretAgent.xml \
+	nmdbus-device-org.freedesktop.NetworkManager.Device.xml \
+	nmdbus-vpn-plugin-org.freedesktop.NetworkManager.VPN.Plugin.xml \
+	nmdbus-device-bt-org.freedesktop.NetworkManager.Device.Bluetooth.xml \
+	nmdbus-device-vxlan-org.freedesktop.NetworkManager.Device.Vxlan.xml \
+	nmdbus-settings-connection-org.freedesktop.NetworkManager.Settings.Connection.xml \
+	nmdbus-device-bond-org.freedesktop.NetworkManager.Device.Bond.xml \
+	nmdbus-device-macvlan-org.freedesktop.NetworkManager.Device.Macvlan.xml \
+	nmdbus-ppp-manager-org.freedesktop.NetworkManager.PPP.xml \
+	nmdbus-device-vlan-org.freedesktop.NetworkManager.Device.Vlan.xml \
+	nmdbus-device-adsl-org.freedesktop.NetworkManager.Device.Adsl.xml \
+	nmdbus-agent-manager-org.freedesktop.NetworkManager.AgentManager.xml \
+	nmdbus-device-wimax-org.freedesktop.NetworkManager.Device.WiMax.xml \
+	nmdbus-device-ip-tunnel-org.freedesktop.NetworkManager.Device.IPTunnel.xml \
+	nmdbus-device-tun-org.freedesktop.NetworkManager.Device.Tun.xml \
+	nmdbus-device-bridge-org.freedesktop.NetworkManager.Device.Bridge.xml \
+	nmdbus-device-olpc-mesh-org.freedesktop.NetworkManager.Device.OlpcMesh.xml \
+	nmdbus-dhcp4-config-org.freedesktop.NetworkManager.DHCP4Config.xml \
+	nmdbus-device-generic-org.freedesktop.NetworkManager.Device.Generic.xml \
+	nmdbus-device-infiniband-org.freedesktop.NetworkManager.Device.Infiniband.xml \
+	nmdbus-device-modem-org.freedesktop.NetworkManager.Device.Modem.xml \
+	nmdbus-ip6-config-org.freedesktop.NetworkManager.IP6Config.xml \
+	nmdbus-device-veth-org.freedesktop.NetworkManager.Device.Veth.xml \
+	nmdbus-settings-org.freedesktop.NetworkManager.Settings.xml \
+	nmdbus-device-ethernet-org.freedesktop.NetworkManager.Device.Wired.xml \
+	nmdbus-ip4-config-org.freedesktop.NetworkManager.IP4Config.xml
+
+BUILT_SOURCES = $(nodist_libnmdbus_la_SOURCES) $(DBUS_INTERFACE_DOCS)
+CLEANFILES = $(BUILT_SOURCES)
 EXTRA_DIST = \
 	all.xml.in \
 	generic-types.xml \
@@ -581,7 +617,8 @@ EXTRA_DIST = \
 	nm-vpn-plugin.xml \
 	nm-wimax-nsp.xml
 
-all: all-am
+all: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
@@ -781,10 +818,12 @@ distdir: $(DISTFILES)
 	  fi; \
 	done
 check-am: all-am
-check: check-am
+check: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) check-am
 all-am: Makefile $(LTLIBRARIES)
 installdirs:
-install: install-am
+install: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) install-am
 install-exec: install-exec-am
 install-data: install-data-am
 uninstall: uninstall-am
@@ -815,6 +854,7 @@ distclean-generic:
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-am
 
 clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
@@ -886,7 +926,7 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: install-am install-strip
+.MAKE: all check install install-am install-strip
 
 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
 	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
@@ -909,10 +949,14 @@ define _make_nmdbus_rule
 $(1): $(patsubst nmdbus-%.c,nm-%.xml,$(1))
 	$$(AM_V_GEN) gdbus-codegen \
 		--generate-c-code $$(basename $$@) \
+		--generate-docbook $$(basename $$@) \
 		--c-namespace NMDBus \
 		--interface-prefix org.freedesktop.NetworkManager \
 		$$<
 
+$(filter $(basename $(1))-org.freedesktop.NetworkManager.%,$(DBUS_INTERFACE_DOCS)): $(1)
+	@true
+
 $(basename $(1)).h: $(1)
 	@true
 endef
diff --git a/introspection/errors.xml b/introspection/errors.xml
index f2db8667..34a0a7b9 100644
--- a/introspection/errors.xml
+++ b/introspection/errors.xml
@@ -4,21 +4,21 @@
   <tp:copyright>Copyright (C) 2008 Novell, Inc.</tp:copyright>
 
   <tp:error name="Unknown Connection">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
         Connection was not provided by the settings service.
-    </tp:docstring>
+    " />
   </tp:error>
 
   <tp:error name="Unknown Device">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
         Unknown device.
-    </tp:docstring>
+    " />
   </tp:error>
 
   <tp:error name="Permission Denied">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
     User does not have the permission to activate this connection.
-    </tp:docstring>
+    " />
   </tp:error>
 
 </tp:errors>
diff --git a/introspection/generic-types.xml b/introspection/generic-types.xml
index 681b6662..2fb680af 100644
--- a/introspection/generic-types.xml
+++ b/introspection/generic-types.xml
@@ -1,50 +1,50 @@
 <tp:generic-types
   xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
   <tp:mapping name="String_Variant_Map">
-    <tp:docstring>A mapping from strings to variants representing extra
-      key-value pairs.</tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="A mapping from strings to variants representing extra
+      key-value pairs." />
     <tp:member type="s" name="Key"/>
     <tp:member type="v" name="Value"/>
   </tp:mapping>
 
   <tp:mapping name="String_String_Map">
-    <tp:docstring>A mapping from strings to strings representing extra
-      key-value pairs.</tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="A mapping from strings to strings representing extra
+      key-value pairs." />
     <tp:member type="s" name="Key"/>
     <tp:member type="s" name="Value"/>
   </tp:mapping>
 
   <tp:mapping name="String_String_Variant_Map_Map">
-      <tp:docstring>A mapping from strings to a map of string to variant.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="A mapping from strings to a map of string to variant." />
       <tp:member type="s" name="Key"/>
       <tp:member type="a{sv}" name="Value" tp:type="String_Variant_Map"/>
   </tp:mapping>
 
   <tp:enum name="NM_802_11_MODE" type="u">
-    <tp:docstring></tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="" />
     <tp:enumvalue suffix="UNKNOWN" value="0">
-      <tp:docstring>Mode is unknown.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="Mode is unknown." />
     </tp:enumvalue>
     <tp:enumvalue suffix="ADHOC" value="1">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         For both devices and access point objects, indicates the object is
         part of an Ad-Hoc 802.11 network without a central coordinating access
         point.
-      </tp:docstring>
+      " />
     </tp:enumvalue>
     <tp:enumvalue suffix="INFRA" value="2">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The wireless device or access point is in infrastructure mode.  For
         devices, this indicates the device is an 802.11 client/station.  For
         access point objects, this indicates the object is an access point that
         provides connectivity to clients.
-      </tp:docstring>
+      " />
     </tp:enumvalue>
     <tp:enumvalue suffix="AP" value="3">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The device is an access point/hotspot.  Not valid for access point
         objects themselves.
-      </tp:docstring>
+      " />
     </tp:enumvalue>
   </tp:enum>
 </tp:generic-types>
diff --git a/introspection/nm-access-point.xml b/introspection/nm-access-point.xml
index 16eae044..603be713 100644
--- a/introspection/nm-access-point.xml
+++ b/introspection/nm-access-point.xml
@@ -3,99 +3,99 @@
 <node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
   <interface name="org.freedesktop.NetworkManager.AccessPoint">
     <property name="Flags" type="u" access="read" tp:type="NM_802_11_AP_FLAGS">
-      <tp:docstring>Flags describing the capabilities of the access point.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="Flags describing the capabilities of the access point." />
     </property>
     <property name="WpaFlags" type="u" access="read" tp:type="NM_802_11_AP_SEC">
-      <tp:docstring>Flags describing the access point's capabilities according to WPA (Wifi Protected Access).</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="Flags describing the access point's capabilities according to WPA (Wifi Protected Access)." />
     </property>
     <property name="RsnFlags" type="u" access="read" tp:type="NM_802_11_AP_SEC">
-      <tp:docstring>Flags describing the access point's capabilities according to the RSN (Robust Secure Network) protocol.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="Flags describing the access point's capabilities according to the RSN (Robust Secure Network) protocol." />
     </property>
     <property name="Ssid" type="ay" access="read">
       <!-- gdbus-codegen assumes that "ay" means "non-UTF-8 string" and
            won't deal with '\0' bytes correctly.
       -->
       <annotation name="org.gtk.GDBus.C.ForceGVariant" value="1"/>
-      <tp:docstring>The Service Set Identifier identifying the access point.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The Service Set Identifier identifying the access point." />
     </property>
     <property name="Frequency" type="u" access="read">
-      <tp:docstring>The radio channel frequency in use by the access point, in MHz.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The radio channel frequency in use by the access point, in MHz." />
     </property>
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>The hardware address (BSSID) of the access point.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The hardware address (BSSID) of the access point." />
     </property>
 
     <property name="Mode" type="u" access="read" tp:type="NM_802_11_MODE">
-      <tp:docstring>Describes the operating mode of the access point.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="Describes the operating mode of the access point." />
     </property>
     <property name="MaxBitrate" type="u" access="read">
-      <tp:docstring>The maximum bitrate this access point is capable of, in kilobits/second (Kb/s).</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The maximum bitrate this access point is capable of, in kilobits/second (Kb/s)." />
     </property>
     <property name="Strength" type="y" access="read">
-      <tp:docstring>The current signal quality of the access point, in percent.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The current signal quality of the access point, in percent." />
     </property>
     <property name="LastSeen" type="i" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The timestamp (in CLOCK_BOOTTIME seconds) for the last time the access
         point was found in scan results.  A value of -1 means the access point
         has never been found in scan results.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
     <tp:flags name="NM_802_11_AP_FLAGS" value-prefix="NM_802_11_AP_FLAGS" type="u">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Flags describing the general capabilities of the access point.
-      </tp:docstring>
+      " />
       <tp:flag suffix="NONE" value="0x0">
-        <tp:docstring>Null capability - says nothing about the access point.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Null capability - says nothing about the access point." />
       </tp:flag>
       <tp:flag suffix="PRIVACY" value="0x1">
-        <tp:docstring>Access point supports privacy measures.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Access point supports privacy measures." />
       </tp:flag>
     </tp:flags>
     <tp:flags name="NM_802_11_AP_SEC" value-prefix="NM_802_11_AP_SEC" type="u">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Flags describing the security capabilities of the access point.
-      </tp:docstring>
+      " />
       <tp:flag suffix="NONE" value="0x0">
-        <tp:docstring>Null flag.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Null flag." />
       </tp:flag>
       <tp:flag suffix="PAIR_WEP40" value="0x1">
-        <tp:docstring>Access point supports pairwise 40-bit WEP encryption.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Access point supports pairwise 40-bit WEP encryption." />
       </tp:flag>
       <tp:flag suffix="PAIR_WEP104" value="0x2">
-        <tp:docstring>Access point supports pairwise 104-bit WEP encryption.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Access point supports pairwise 104-bit WEP encryption." />
       </tp:flag>
       <tp:flag suffix="PAIR_TKIP" value="0x4">
-        <tp:docstring>Access point supports pairwise TKIP encryption.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Access point supports pairwise TKIP encryption." />
       </tp:flag>
       <tp:flag suffix="PAIR_CCMP" value="0x8">
-        <tp:docstring>Access point supports pairwise CCMP encryption.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Access point supports pairwise CCMP encryption." />
       </tp:flag>
       <tp:flag suffix="GROUP_WEP40" value="0x10">
-        <tp:docstring>Access point supports a group 40-bit WEP cipher.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Access point supports a group 40-bit WEP cipher." />
       </tp:flag>
       <tp:flag suffix="GROUP_WEP104" value="0x20">
-        <tp:docstring>Access point supports a group 104-bit WEP cipher.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Access point supports a group 104-bit WEP cipher." />
       </tp:flag>
       <tp:flag suffix="GROUP_TKIP" value="0x40">
-        <tp:docstring>Access point supports a group TKIP cipher.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Access point supports a group TKIP cipher." />
       </tp:flag>
       <tp:flag suffix="GROUP_CCMP" value="0x80">
-        <tp:docstring>Access point supports a group CCMP cipher.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Access point supports a group CCMP cipher." />
       </tp:flag>
       <tp:flag suffix="KEY_MGMT_PSK" value="0x100">
-        <tp:docstring>Access point supports PSK key management.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Access point supports PSK key management." />
       </tp:flag>
       <tp:flag suffix="KEY_MGMT_802_1X" value="0x200">
-        <tp:docstring>Access point supports 802.1x key management.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Access point supports 802.1x key management." />
       </tp:flag>
     </tp:flags>
   </interface>
diff --git a/introspection/nm-active-connection.xml b/introspection/nm-active-connection.xml
index 203437b7..59bf78f4 100644
--- a/introspection/nm-active-connection.xml
+++ b/introspection/nm-active-connection.xml
@@ -3,12 +3,12 @@
 <node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
   <interface name="org.freedesktop.NetworkManager.Connection.Active">
     <annotation name="org.gtk.GDBus.C.Name" value="ActiveConnection"/>
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       Objects that implement the Connection.Active interface represent an attempt
       to connect to a network using the details provided by a Connection object.
       The Connection.Active object tracks the life-cycle of the connection
       attempt and if successful indicates whether the connected network is the
-      "default" or preferred network for access.
+      &quot;default&quot; or preferred network for access.
       NetworkManager has the concept of connections, which can be thought of as
       settings, a profile or a configuration that can be applied on a networking
       device.
@@ -18,135 +18,135 @@
       versa. However, during activation and deactivation multiple active-connections
       can reference the same device or settings-connection as they are waiting to
       be activated or to be deactivated.
-    </tp:docstring>
+    " />
 
     <property name="Connection" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The path of the connection.
-      </tp:docstring>
+      " />
     </property>
     <property name="SpecificObject" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         A specific object associated with the active connection.  This property
         reflects the specific object used during connection activation, and will
         not change over the lifetime of the ActiveConnection once set.
-      </tp:docstring>
+      " />
     </property>
     <property name="Id" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The ID of the connection, provided as a convenience so that clients
         do not have to retrieve all connection details.
-      </tp:docstring>
+      " />
     </property>
     <property name="Uuid" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The UUID of the connection, provided as a convenience so that clients
         do not have to retrieve all connection details.
-      </tp:docstring>
+      " />
     </property>
     <property name="Type" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The type of the connection, provided as a convenience so that clients
         do not have to retrieve all connection details.
-      </tp:docstring>
+      " />
     </property>
     <property name="Devices" type="ao" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Array of object paths representing devices which are part of this active
         connection.
-      </tp:docstring>
+      " />
     </property>
     <property name="State" type="u" access="read" tp:type="NM_ACTIVE_CONNECTION_STATE">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The state of this active connection.
-      </tp:docstring>
+      " />
     </property>
     <property name="Default" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Whether this active connection is the default IPv4 connection, i.e.
         whether it currently owns the default IPv4 route.
-      </tp:docstring>
+      " />
     </property>
     <property name="Ip4Config" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Object path of the Ip4Config object describing the configuration of the
         connection. Only valid when the connection is in the
         NM_ACTIVE_CONNECTION_STATE_ACTIVATED state.
-      </tp:docstring>
+      " />
     </property>
     <property name="Dhcp4Config" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Object path of the Dhcp4Config object describing the DHCP options
         returned by the DHCP server (assuming the connection used DHCP). Only
         valid when the connection is in the NM_ACTIVE_CONNECTION_STATE_ACTIVATED
         state.
-      </tp:docstring>
+      " />
     </property>
     <property name="Default6" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Whether this active connection is the default IPv6 connection, i.e.
         whether it currently owns the default IPv6 route.
-      </tp:docstring>
+      " />
     </property>
     <property name="Ip6Config" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Object path of the Ip6Config object describing the configuration of the
         connection. Only valid when the connection is in the
         NM_ACTIVE_CONNECTION_STATE_ACTIVATED state.
-      </tp:docstring>
+      " />
     </property>
     <property name="Dhcp6Config" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Object path of the Dhcp6Config object describing the DHCP options
         returned by the DHCP server (assuming the connection used DHCP). Only
         valid when the connection is in the NM_ACTIVE_CONNECTION_STATE_ACTIVATED
         state.
-      </tp:docstring>
+      " />
     </property>
     <property name="Vpn" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Whether this active connection is also a VPN connection.
-      </tp:docstring>
+      " />
     </property>
     <property name="Master" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The path to the master device if the connection is a slave.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
     <tp:enum name="NM_ACTIVE_CONNECTION_STATE" type="u">
       <tp:enumvalue suffix="UNKNOWN" value="0">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The active connection is in an unknown state.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="ACTIVATING" value="1">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The connection is activating.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="ACTIVATED" value="2">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The connection is activated.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DEACTIVATING" value="3">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The connection is being torn down and cleaned up.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DEACTIVATED" value="4">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The connection is no longer active.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
     </tp:enum>
   </interface>
diff --git a/introspection/nm-agent-manager.xml b/introspection/nm-agent-manager.xml
index 4b53675c..52460eee 100644
--- a/introspection/nm-agent-manager.xml
+++ b/introspection/nm-agent-manager.xml
@@ -4,45 +4,45 @@
   <interface name="org.freedesktop.NetworkManager.AgentManager">
 
     <method name="Register">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Called by secret Agents to register their ability to provide and save
         network secrets.
-      </tp:docstring>
+      " />
       <arg name="identifier" type="s" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Identifies this agent; only one agent in each user session may use the
           same identifier.  Identifier formatting follows the same rules as
           D-Bus bus names with the exception that the ':' character is not
-          allowed.  The valid set of characters is "[A-Z][a-z][0-9]_-." and the
+          allowed.  The valid set of characters is &quot;[A-Z][a-z][0-9]_-.&quot; and the
           identifier is limited in length to 255 characters with a minimum
           of 3 characters.  An example valid identifier is 'org.gnome.nm-applet'
           (without quotes).
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="RegisterWithCapabilities">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Like Register() but indicates agent capabilities to NetworkManager.
-      </tp:docstring>
+      " />
       <arg name="identifier" type="s" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             See the Register() method's identifier argument.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="capabilities" type="u" direction="in" tp:type="NM_SECRET_AGENT_CAPABILITIES">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             Indicates various agent capabilities to NetworkManager.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="Unregister">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Called by secret Agents to notify NetworkManager that they will no
         longer handle requests for network secrets.  Agents are automatically
         unregistered when they disconnect from D-Bus.
-      </tp:docstring>
+      " />
     </method>
 
   </interface>
diff --git a/introspection/nm-device-adsl.xml b/introspection/nm-device-adsl.xml
index ec50d110..68859d3b 100644
--- a/introspection/nm-device-adsl.xml
+++ b/introspection/nm-device-adsl.xml
@@ -5,16 +5,16 @@
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
     <property name="Carrier" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates whether the physical carrier is found.
-      </tp:docstring>
+      " />
     </property>
 
   </interface>
diff --git a/introspection/nm-device-bond.xml b/introspection/nm-device-bond.xml
index a804ca0b..9bc21225 100644
--- a/introspection/nm-device-bond.xml
+++ b/introspection/nm-device-bond.xml
@@ -4,29 +4,29 @@
   <interface name="org.freedesktop.NetworkManager.Device.Bond">
 
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Carrier" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Slaves" type="ao" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Array of object paths representing devices which are currently
 	slaved to this device.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
diff --git a/introspection/nm-device-bridge.xml b/introspection/nm-device-bridge.xml
index f3b25602..6cf99a10 100644
--- a/introspection/nm-device-bridge.xml
+++ b/introspection/nm-device-bridge.xml
@@ -4,29 +4,29 @@
   <interface name="org.freedesktop.NetworkManager.Device.Bridge">
 
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Carrier" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Slaves" type="ao" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Array of object paths representing devices which are currently
 	slaved to this device.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
diff --git a/introspection/nm-device-bt.xml b/introspection/nm-device-bt.xml
index cc4a9b54..3b487158 100644
--- a/introspection/nm-device-bt.xml
+++ b/introspection/nm-device-bt.xml
@@ -4,43 +4,43 @@
   <interface name="org.freedesktop.NetworkManager.Device.Bluetooth">
 
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Bluetooth hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Name" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Bluetooth name of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="BtCapabilities" type="u" access="read" tp:type="NM_BT_CAPABILITIES">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Bluetooth capabilities of the device (either DUN or NAP).
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
     <tp:flags name="NM_BT_CAPABILITIES" value-prefix="NM_BT_CAPABILITY" type="u">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Flags describing the capabilities of a Bluetooth device.
-      </tp:docstring>
+      " />
       <tp:flag suffix="NONE" value="0x0">
-        <tp:docstring>The device has no recognized capabilities.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device has no recognized capabilities." />
       </tp:flag>
       <tp:flag suffix="DUN" value="0x1">
-        <tp:docstring>The device supports Bluetooth Dial-Up Networking.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device supports Bluetooth Dial-Up Networking." />
       </tp:flag>
       <tp:flag suffix="PAN" value="0x2">
-        <tp:docstring>The device supports Bluetooth Personal Area Networking.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device supports Bluetooth Personal Area Networking." />
       </tp:flag>
     </tp:flags>
 
diff --git a/introspection/nm-device-ethernet.xml b/introspection/nm-device-ethernet.xml
index 86d68a35..87b7f755 100644
--- a/introspection/nm-device-ethernet.xml
+++ b/introspection/nm-device-ethernet.xml
@@ -5,40 +5,40 @@
     <annotation name="org.gtk.GDBus.C.Name" value="DeviceEthernet"/>
 
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Active hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="PermHwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Permanent hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Speed" type="u" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Design speed of the device, in megabits/second (Mb/s).
-      </tp:docstring>
+      " />
     </property>
 
     <property name="S390Subchannels" type="as" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Array of S/390 subchannels for S/390 or z/Architecture devices.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Carrier" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
diff --git a/introspection/nm-device-generic.xml b/introspection/nm-device-generic.xml
index 79d19899..2f8fc7ee 100644
--- a/introspection/nm-device-generic.xml
+++ b/introspection/nm-device-generic.xml
@@ -4,22 +4,22 @@
   <interface name="org.freedesktop.NetworkManager.Device.Generic">
 
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="TypeDescription" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         A (non-localized) description of the interface type, if known.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
diff --git a/introspection/nm-device-infiniband.xml b/introspection/nm-device-infiniband.xml
index 097714c6..169c2c66 100644
--- a/introspection/nm-device-infiniband.xml
+++ b/introspection/nm-device-infiniband.xml
@@ -4,22 +4,22 @@
   <interface name="org.freedesktop.NetworkManager.Device.Infiniband">
 
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Carrier" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
diff --git a/introspection/nm-device-ip-tunnel.xml b/introspection/nm-device-ip-tunnel.xml
index fcb42ce2..3ca04ee6 100644
--- a/introspection/nm-device-ip-tunnel.xml
+++ b/introspection/nm-device-ip-tunnel.xml
@@ -4,81 +4,81 @@
   <interface name="org.freedesktop.NetworkManager.Device.IPTunnel">
 
     <property name="Mode" type="u" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The tunneling mode.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Parent" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The object path of the parent device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Local" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The local endpoint of the tunnel.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Remote" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The remote endpoint of the tunnel.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Ttl" type="y" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The TTL assigned to tunneled packets. 0 is a special value
         meaning that packets inherit the TTL value
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Tos" type="y" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The type of service (IPv4) or traffic class (IPv6) assigned to
         tunneled packets.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="PathMtuDiscovery" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Whether path MTU discovery is enabled on this tunnel.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="InputKey" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The key used for incoming packets.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="OutputKey" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The key used for outgoing packets.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="EncapsulationLimit" type="y" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         How many additional levels of encapsulation are permitted to
         be prepended to packets. This property applies only to IPv6
         tunnels.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="FlowLabel" type="u" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The flow label to assign to tunnel packets. This property
         applies only to IPv6 tunnels.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
diff --git a/introspection/nm-device-macvlan.xml b/introspection/nm-device-macvlan.xml
index c4dcb4e6..d5d66068 100644
--- a/introspection/nm-device-macvlan.xml
+++ b/introspection/nm-device-macvlan.xml
@@ -4,34 +4,34 @@
   <interface name="org.freedesktop.NetworkManager.Device.Macvlan">
 
     <property name="Parent" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The object path of the parent device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Mode" type="s" access="read">
-      <tp:docstring>
-        The macvlan mode, one of "private", "vepa", "bridge", or "passthru".
-      </tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
+        The macvlan mode, one of &quot;private&quot;, &quot;vepa&quot;, &quot;bridge&quot;, or &quot;passthru&quot;.
+      " />
     </property>
 
     <property name="NoPromisc" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Whether the device is blocked from going into promiscuous mode.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Tap" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Whether the device is a macvtap.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
diff --git a/introspection/nm-device-modem.xml b/introspection/nm-device-modem.xml
index 0ca101fd..67742c46 100644
--- a/introspection/nm-device-modem.xml
+++ b/introspection/nm-device-modem.xml
@@ -5,58 +5,58 @@
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
     <property name="ModemCapabilities" type="u" access="read" tp:type="NM_DEVICE_MODEM_CAPABILITIES">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The generic family of access technologies the modem supports.  Not all
         capabilities are available at the same time however; some modems require
         a firmware reload or other reinitialization to switch between eg CDMA/EVDO
         and GSM/UMTS.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="CurrentCapabilities" type="u" access="read" tp:type="NM_DEVICE_MODEM_CAPABILITIES">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The generic family of access technologies the modem currently supports
         without a firmware reload or reinitialization.
-      </tp:docstring>
+      " />
     </property>
 
     <tp:flags name="NM_DEVICE_MODEM_CAPABILITIES" value-prefix="NM_DEVICE_MODEM_CAPABILITY" type="u">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Flags describing one or more of the general access technology families
         that a modem device supports.
-      </tp:docstring>
+      " />
       <tp:flag suffix="NONE" value="0x0">
-        <tp:docstring>Modem has no capabilties.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Modem has no capabilties." />
       </tp:flag>
       <tp:flag suffix="POTS" value="0x1">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Modem supports the analog wired telephone network (ie 56k dialup) and
           does not have wireless/cellular capabilities.
-        </tp:docstring>
+        " />
       </tp:flag>
       <tp:flag suffix="CDMA_EVDO" value="0x2">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Modem supports at least one of CDMA 1xRTT, EVDO revision 0, EVDO
           revision A, or EVDO revision B.
-        </tp:docstring>
+        " />
       </tp:flag>
       <tp:flag suffix="GSM_UMTS" value="0x4">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Modem supports at least one of GSM, GPRS, EDGE, UMTS, HSDPA, HSUPA, or
           HSPA+ packet switched data capability.
-        </tp:docstring>
+        " />
       </tp:flag>
       <tp:flag suffix="LTE" value="0x8">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Modem has at LTE data capability.
-        </tp:docstring>
+        " />
       </tp:flag>
     </tp:flags>
 
diff --git a/introspection/nm-device-olpc-mesh.xml b/introspection/nm-device-olpc-mesh.xml
index c30ecfc6..a92e7370 100644
--- a/introspection/nm-device-olpc-mesh.xml
+++ b/introspection/nm-device-olpc-mesh.xml
@@ -3,32 +3,32 @@
 <node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
   <interface name="org.freedesktop.NetworkManager.Device.OlpcMesh">
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Companion" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The object path of the companion device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="ActiveChannel" type="u" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The currently active channel.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary containing the FIXME: check changed parameters.
-            </tp:docstring>
+            " />
         </arg>
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             Emitted when the wireless device's properties changed.
-        </tp:docstring>
+        " />
     </signal>
   </interface>
 </node>
diff --git a/introspection/nm-device-team.xml b/introspection/nm-device-team.xml
index baf39fa8..982b7670 100644
--- a/introspection/nm-device-team.xml
+++ b/introspection/nm-device-team.xml
@@ -4,29 +4,29 @@
   <interface name="org.freedesktop.NetworkManager.Device.Team">
 
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Carrier" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Slaves" type="ao" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Array of object paths representing devices which are currently
 	slaved to this device.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
diff --git a/introspection/nm-device-tun.xml b/introspection/nm-device-tun.xml
index 2b3ae2f5..0f74cf8c 100644
--- a/introspection/nm-device-tun.xml
+++ b/introspection/nm-device-tun.xml
@@ -4,56 +4,56 @@
   <interface name="org.freedesktop.NetworkManager.Device.Tun">
 
     <property name="Owner" type="x" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The uid of the tunnel owner, or -1 if it has no owner.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Group" type="x" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The gid of the tunnel group, or -1 if it has no owner.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Mode" type="s" access="read">
-      <tp:docstring>
-        The tunnel mode, either "tun" or "tap".
-      </tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
+        The tunnel mode, either &quot;tun&quot; or &quot;tap&quot;.
+      " />
     </property>
 
     <property name="NoPi" type="b" access="read">
-      <tp:docstring>
-        The tunnel's "TUN_NO_PI" flag; true if no protocol info is
+      <annotation name="org.gtk.GDBus.DocString" value="
+        The tunnel's &quot;TUN_NO_PI&quot; flag; true if no protocol info is
 	prepended to the tunnel packets.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="VnetHdr" type="b" access="read">
-      <tp:docstring>
-        The tunnel's "TUN_VNET_HDR" flag; true if the tunnel packets
+      <annotation name="org.gtk.GDBus.DocString" value="
+        The tunnel's &quot;TUN_VNET_HDR&quot; flag; true if the tunnel packets
 	include a virtio network header.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="MultiQueue" type="b" access="read">
-      <tp:docstring>
-        The tunnel's "TUN_TAP_MQ" flag; true if callers can connect to
+      <annotation name="org.gtk.GDBus.DocString" value="
+        The tunnel's &quot;TUN_TAP_MQ&quot; flag; true if callers can connect to
         the tap device multiple times, for multiple send/receive
         queues.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
diff --git a/introspection/nm-device-veth.xml b/introspection/nm-device-veth.xml
index e06d0ceb..a3cff6da 100644
--- a/introspection/nm-device-veth.xml
+++ b/introspection/nm-device-veth.xml
@@ -4,16 +4,16 @@
   <interface name="org.freedesktop.NetworkManager.Device.Veth">
 
     <property name="Peer" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The object path of the device's peer.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
diff --git a/introspection/nm-device-vlan.xml b/introspection/nm-device-vlan.xml
index 992340e0..bac220e8 100644
--- a/introspection/nm-device-vlan.xml
+++ b/introspection/nm-device-vlan.xml
@@ -4,34 +4,34 @@
   <interface name="org.freedesktop.NetworkManager.Device.Vlan">
 
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Carrier" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Parent" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Object path of the parent device of this VLAN device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="VlanId" type="u" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The VLAN ID of this VLAN interface.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
diff --git a/introspection/nm-device-vxlan.xml b/introspection/nm-device-vxlan.xml
index 97c517fb..de23020d 100644
--- a/introspection/nm-device-vxlan.xml
+++ b/introspection/nm-device-vxlan.xml
@@ -4,123 +4,123 @@
   <interface name="org.freedesktop.NetworkManager.Device.Vxlan">
 
     <property name="Parent" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The object path of the parent device (if the VXLAN is not
 	purely internal to this host).
-      </tp:docstring>
+      " />
     </property>
 
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Id" type="u" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The VXLAN Network Identifier (VNI).
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Group" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The IP (v4 or v6) multicast group used to communicate with other physical
 	hosts on this VXLAN.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Local" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The local IPv4 or IPv6 address to use when sending VXLAN packets to other
 	physical hosts.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Tos" type="y" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The value to use in the IP ToS field for VXLAN packets sent to
 	other physical hosts.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Ttl" type="y" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The value to use in the IP TTL field for VXLAN packets sent to
 	other physical hosts.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Learning" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         True if the VXLAN dynamically learns remote IP addresses.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Ageing" type="u" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The interval in seconds at which the kernel purges stale
         cached addresses.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Limit" type="u" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The maximum number of entries that can be added to the VXLAN's
 	forwarding table.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="DstPort" type="q" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Destination port for outgoing VXLAN packets.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="SrcPortMin" type="q" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The lowest source port number to use for outgoing VXLAN packets.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="SrcPortMax" type="q" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The highest source port number to use for outgoing VXLAN packets.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Proxy" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         True if the VXLAN is implementing DOVE ARP proxying for remote
         clients.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Rsc" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         True if the VXLAN is implementing DOVE route short-circuiting
 	of known remote IP addresses.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="L2miss" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         True if the VXLAN will emit netlink notifications of L2 switch
         misses.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="L3miss" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         True if the VXLAN will emit netlink notifications of L3 switch
         misses.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
diff --git a/introspection/nm-device-wifi.xml b/introspection/nm-device-wifi.xml
index 27f3eb90..2ece0ef0 100644
--- a/introspection/nm-device-wifi.xml
+++ b/introspection/nm-device-wifi.xml
@@ -6,164 +6,164 @@
 
     <method name="GetAccessPoints">
       <arg name="access_points" type="ao" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           List of access point object paths.
-        </tp:docstring>
+        " />
       </arg>
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         DEPRECATED.  Get the list of access points visible to this device.  Note
         that this list does not include access points which hide their SSID.  To
         retrieve a list of all access points (including hidden ones) use the
         GetAllAccessPoints() method.
-      </tp:docstring>
+      " />
     </method>
 
     <method name="GetAllAccessPoints">
       <arg name="access_points" type="ao" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           List of access point object paths.
-        </tp:docstring>
+        " />
       </arg>
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Get the list of all access points visible to this device, including
         hidden ones for which the SSID is not yet known.
-      </tp:docstring>
+      " />
     </method>
 
     <method name="RequestScan">
       <arg name="options" type="a{sv}" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Options of scan.
-          Currently 'ssids' option with value of "aay" type is supported.
-        </tp:docstring>
+          Currently 'ssids' option with value of &quot;aay&quot; type is supported.
+        " />
       </arg>
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Request the device to scan
-      </tp:docstring>
+      " />
     </method>
 
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The active hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="PermHwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The permanent hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Mode" type="u" access="read" tp:type="NM_802_11_MODE">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The operating mode of the wireless device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Bitrate" type="u" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The bit rate currently used by the wireless device, in kilobits/second (Kb/s).
-      </tp:docstring>
+      " />
     </property>
 
     <property name="AccessPoints" type="ao" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         List of object paths of access point visible to this wireless device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="ActiveAccessPoint" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Object path of the access point currently used by the wireless device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="WirelessCapabilities" type="u" access="read" tp:type="NM_802_11_DEVICE_CAP">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The capabilities of the wireless device.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary containing the FIXME: check changed parameters.
-            </tp:docstring>
+            " />
         </arg>
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             Emitted when the wireless device's properties changed.
-        </tp:docstring>
+        " />
     </signal>
 
     <signal name="AccessPointAdded">
         <arg name="access_point" type="o">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 The object path of the newly found access point.
-            </tp:docstring>
+            " />
         </arg>
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             Emitted when a new access point is found by the device.
-        </tp:docstring>
+        " />
     </signal>
 
     <signal name="AccessPointRemoved">
       <arg name="access_point" type="o">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 The object path of the access point that has disappeared.
-            </tp:docstring>
+            " />
         </arg>
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             Emitted when an access point disappears from view of the device.
-        </tp:docstring>
+        " />
     </signal>
 
     <tp:flags name="NM_802_11_DEVICE_CAP" type="u">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Flags describing the capabilities of a wireless device.
-      </tp:docstring>
+      " />
       <tp:flag suffix="NONE" value="0x0">
-        <tp:docstring>Null capability - syntactic sugar for no capabilities supported.  Do not AND this with other capabilities!</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Null capability - syntactic sugar for no capabilities supported.  Do not AND this with other capabilities!" />
       </tp:flag>
       <tp:flag suffix="CIPHER_WEP40" value="0x1">
-        <tp:docstring>The device supports the 40-bit WEP cipher.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device supports the 40-bit WEP cipher." />
       </tp:flag>
       <tp:flag suffix="CIPHER_WEP104" value="0x2">
-        <tp:docstring>The device supports the 104-bit WEP cipher.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device supports the 104-bit WEP cipher." />
       </tp:flag>
       <tp:flag suffix="CIPHER_TKIP" value="0x4">
-        <tp:docstring>The device supports the TKIP cipher.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device supports the TKIP cipher." />
       </tp:flag>
       <tp:flag suffix="CIPHER_CCMP" value="0x8">
-        <tp:docstring>The device supports the CCMP cipher.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device supports the CCMP cipher." />
       </tp:flag>
       <tp:flag suffix="WPA" value="0x10">
-        <tp:docstring>The device supports the WPA encryption/authentication protocol.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device supports the WPA encryption/authentication protocol." />
       </tp:flag>
       <tp:flag suffix="RSN" value="0x20">
-        <tp:docstring>The device supports the RSN encryption/authentication protocol.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device supports the RSN encryption/authentication protocol." />
       </tp:flag>
       <tp:flag suffix="AP" value="0x40">
-        <tp:docstring>The device supports Access Point mode.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device supports Access Point mode." />
       </tp:flag>
       <tp:flag suffix="ADHOC" value="0x80">
-        <tp:docstring>The device supports Ad-Hoc mode.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device supports Ad-Hoc mode." />
       </tp:flag>
       <tp:flag suffix="FREQ_VALID" value="0x100">
-	<tp:docstring>
+	<annotation name="org.gtk.GDBus.DocString" value="
 	  The device properly reports information about supported
 	  frequencies and thus both NM_802_11_DEVICE_CAP_FREQ_2GHZ and
 	  NM_802_11_DEVICE_CAP_FREQ_5GHZ are valid.
-	</tp:docstring>
+	" />
       </tp:flag>
       <tp:flag suffix="FREQ_2GHZ" value="0x200">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device supports 2.4GHz frequencies.
-        </tp:docstring>
+        " />
       </tp:flag>
       <tp:flag suffix="FREQ_5GHZ" value="0x400">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device supports 5GHz frequencies.
-        </tp:docstring>
+        " />
       </tp:flag>
     </tp:flags>
   </interface>
diff --git a/introspection/nm-device-wimax.xml b/introspection/nm-device-wimax.xml
index 3bad6245..e790e4fc 100644
--- a/introspection/nm-device-wimax.xml
+++ b/introspection/nm-device-wimax.xml
@@ -4,105 +4,105 @@
   <interface name="org.freedesktop.NetworkManager.Device.WiMax">
     <method name="GetNspList">
       <arg name="nsps" type="ao" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           List of NSP object paths
-        </tp:docstring>
+        " />
       </arg>
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Get the list of NSPs visible to this device.
-      </tp:docstring>
+      " />
     </method>
 
     <property name="Nsps" type="ao" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         List of object paths of Network Service Providers (NSPs) visible to this
         WiMAX device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="HwAddress" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Hardware address of the device.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="CenterFrequency" type="u" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Center frequency (in KHz) of the radio channel the device is using to
         communicate with the network when connected.  Has no meaning when the
         device is not connected.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Rssi" type="i" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         RSSI of the current radio link in dBm.  This value indicates how strong
         the raw received RF signal from the base station is, but does not
         indicate the overall quality of the radio link.  Has no meaning when the
         device is not connected.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Cinr" type="i" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         CINR (Carrier to Interference + Noise Ratio) of the current radio link
         in dB.  CINR is a more accurate measure of radio link quality.  Has no
         meaning when the device is not connected.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="TxPower" type="i" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Average power of the last burst transmitted by the device, in units of
         0.5 dBm.  i.e. a TxPower of -11 represents an actual device TX power of
         -5.5 dBm.  Has no meaning when the device is not connected.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Bsid" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The ID of the serving base station as received from the network.  Has
         no meaning when the device is not connected.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="ActiveNsp" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Object path of the NSP currently used by the WiMax device.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values.
-            </tp:docstring>
+            " />
         </arg>
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             Emitted when the WiMax device's properties changed.
-        </tp:docstring>
+        " />
     </signal>
 
     <signal name="NspAdded">
         <arg name="nsp" type="o">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 The object path of the newly found NSP.
-            </tp:docstring>
+            " />
         </arg>
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             Emitted when a new NSP is found by the device.
-        </tp:docstring>
+        " />
     </signal>
 
     <signal name="NspRemoved">
       <arg name="nsp" type="o">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 The object path of the NSP that has disappeared.
-            </tp:docstring>
+            " />
         </arg>
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             Emitted when an NSP disappears from view of the device.
-        </tp:docstring>
+        " />
     </signal>
 
   </interface>
diff --git a/introspection/nm-device.xml b/introspection/nm-device.xml
index f1033c73..321cace1 100644
--- a/introspection/nm-device.xml
+++ b/introspection/nm-device.xml
@@ -3,7 +3,7 @@
 <node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
   <interface name="org.freedesktop.NetworkManager.Device">
     <property name="Udi" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Operating-system specific transient device hardware identifier.  This
         is an opaque string representing the underlying hardware for the device,
         and shouldn't be used to keep track of individual devices.  For some
@@ -16,183 +16,183 @@
         object path.  If you're looking for a way to track a specific piece of
         hardware across reboot or hotplug, use a MAC address or USB serial
         number.
-      </tp:docstring>
+      " />
     </property>
     <property name="Interface" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The name of the device's control (and often data) interface.
-      </tp:docstring>
+      " />
     </property>
     <property name="IpInterface" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The name of the device's data interface when available.  This property
         may not refer to the actual data interface until the device has
         successfully established a data connection, indicated by the device's
         State becoming ACTIVATED.
-      </tp:docstring>
+      " />
     </property>
     <property name="Driver" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The driver handling the device.
-      </tp:docstring>
+      " />
     </property>
     <property name="DriverVersion" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The version of the driver handling the device.
-      </tp:docstring>
+      " />
     </property>
     <property name="FirmwareVersion" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The firmware version for the device.
-      </tp:docstring>
+      " />
     </property>
     <property name="Capabilities" type="u" access="read" tp:type="NM_DEVICE_CAP">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Flags describing the capabilities of the device.
-      </tp:docstring>
+      " />
     </property>
     <property name="Ip4Address" type="u" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         DEPRECATED; use the 'Addresses' property of the 'Ip4Config' object instead.
-      </tp:docstring>
+      " />
     </property>
     <property name="State" type="u" access="read" tp:type="NM_DEVICE_STATE">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The current state of the device.
-      </tp:docstring>
+      " />
     </property>
     <property name="StateReason" type="(uu)" access="read" tp:type="NM_DEVICE_STATE_REASON_STRUCT">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The current state and reason for changing to that state.
-      </tp:docstring>
+      " />
     </property>
     <property name="ActiveConnection" type="o" access="read">
-      <tp:docstring>
-        Object path of an ActiveConnection object that "owns" this device during
+      <annotation name="org.gtk.GDBus.DocString" value="
+        Object path of an ActiveConnection object that &quot;owns&quot; this device during
         activation.  The ActiveConnection object tracks the life-cycle of a
         connection to a specific network and implements the
         org.freedesktop.NetworkManager.Connection.Active D-Bus interface.
-      </tp:docstring>
+      " />
     </property>
     <property name="Ip4Config" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Object path of the Ip4Config object describing the configuration of the device.  Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
-      </tp:docstring>
+      " />
     </property>
     <property name="Dhcp4Config" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Object path of the Dhcp4Config object describing the DHCP options returned by the DHCP server.  Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
-      </tp:docstring>
+      " />
     </property>
     <property name="Ip6Config" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Object path of the Ip6Config object describing the configuration of the device.  Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
-      </tp:docstring>
+      " />
     </property>
     <property name="Dhcp6Config" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Object path of the Dhcp6Config object describing the DHCP options
         returned by the DHCP server.  Only valid when the device is in the
         NM_DEVICE_STATE_ACTIVATED state.
-      </tp:docstring>
+      " />
     </property>
     <property name="Managed" type="b" access="readwrite">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Whether or not this device is managed by NetworkManager. Setting this
         property has a similar effect to configuring the device as unmanaged
         via the keyfile.unmanaged-devices setting in NetworkManager.conf.
         Changes to this value are not persistent and lost after NetworkManager
         restart.
-      </tp:docstring>
+      " />
     </property>
     <property name="Autoconnect" type="b" access="readwrite">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         If TRUE, indicates the device is allowed to autoconnect.  If FALSE,
         manual intervention is required before the device will automatically
         connect to a known network, such as activating a connection using the
         device, or setting this property to TRUE.  This property cannot be
         set to TRUE for default-unmanaged devices, since they never autoconnect.
-      </tp:docstring>
+      " />
     </property>
     <property name="FirmwareMissing" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         If TRUE, indicates the device is likely missing firmware necessary for
         its operation.
-      </tp:docstring>
+      " />
     </property>
     <property name="NmPluginMissing" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         If TRUE, indicates the NetworkManager plugin for the device is likely
         missing or misconfigured.
-      </tp:docstring>
+      " />
     </property>
     <property name="DeviceType" type="u" access="read" tp:type="NM_DEVICE_TYPE">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The general type of the network device; ie Ethernet, WiFi, etc.
-      </tp:docstring>
+      " />
     </property>
     <property name="AvailableConnections" type="ao" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         An array of object paths of every configured connection that is currently 'available' through this device.
-      </tp:docstring>
+      " />
     </property>
     <property name="PhysicalPortId" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         If non-empty, an (opaque) indicator of the physical network
         port associated with the device. This can be used to recognize
 	when two seemingly-separate hardware devices are actually just
 	different virtual interfaces to the same physical port.
-      </tp:docstring>
+      " />
     </property>
     <property name="Mtu" type="u" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The device MTU (maximum transmission unit).
-      </tp:docstring>
+      " />
     </property>
     <property name="Metered" type="u" access="read" tp:type="NM_METERED">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Whether the amount of traffic flowing through the device is
         subject to limitations, for example set by service providers.
-      </tp:docstring>
+      " />
     </property>
     <property name="LldpNeighbors" type="aa{sv}" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Array of LLDP neighbors; each element is a dictionary mapping
         LLDP TLV names to variant boxed values.
-      </tp:docstring>
+      " />
     </property>
     <property name="Real" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         True if the device exists, or False for placeholder devices that
         do not yet exist but could be automatically created by NetworkManager
         if one of their AvailableConnections was activated.
-      </tp:docstring>
+      " />
     </property>
 
     <method name="Reapply">
       <arg name="connection" type="a{sa{sv}}" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The optional connection settings that will be reapplied on the device. If empty, the
           currently active settings-connection will be used. The connection cannot arbitrarly
           differ from the current applied-connection otherwise the call will fail.
           Only certain changes are supported, like adding or removing IP addresses.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="version_id" type="t" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           If non-zero, the current version id of the applied-connection must match.
           The current version id can be retrieved via GetAppliedConnection.
           This optional argument allows to catch concurrent modifications between
           the GetAppliedConnection call and Reapply.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="flags" type="u" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Flags which would modify the behavior of the Reapply call.
           There are no flags defined currently and the users should use the value of 0.
-        </tp:docstring>
+        " />
       </arg>
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Attempts to update the configuration of a device without deactivating it. NetworkManager
         has the concept of connections, which are profiles that contain the configuration for
         a networking device. Those connections are exposed via D-Bus as individual objects
@@ -211,587 +211,587 @@
         of NetworkManager).
         Reapply can make the applied-connection different from the settings-connection,
         just like updating the settings-connection can make them different.
-      </tp:docstring>
+      " />
     </method>
 
     <method name="GetAppliedConnection">
       <arg name="flags" type="u" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Flags which would modify the behavior of the GetAppliedConnection call.
           There are no flags defined currently and the users should use the value of 0.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="connection" type="a{sa{sv}}" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             The effective connection settings that the connection has currently applied.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="version_id" type="t" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             The version-id of the currently applied connection. This can be specified during
             Reapply to avoid races where you first fetch the applied connection, modify it
             and try to reapply it. If the applied connection is modified in the meantime, the
             version_id gets incremented and Reapply will fail.
-        </tp:docstring>
+        " />
       </arg>
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Get the currently applied connection on the device. This is a snapshot of the last activated
         connection on the device, that is the configuration that is currently applied on the device.
         Usually this is the same as GetSettings of the referenced settings connection. However, it
         can differ if the settings connection was subsequently modified or the applied connection was
         modified by Reapply. The applied connection is set when activating a device or when calling
         Reapply.
-      </tp:docstring>
+      " />
     </method>
 
     <method name="Disconnect">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Disconnects a device and prevents the device from automatically activating further connections without user intervention.
-      </tp:docstring>
+      " />
     </method>
 
     <method name="Delete">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Deletes a software device from NetworkManager and removes the interface from the system.
         The method returns an error when called for a hardware device.
-      </tp:docstring>
+      " />
     </method>
 
     <signal name="StateChanged">
       <arg name="new_state" type="u" tp:type="NM_DEVICE_STATE">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The new state of the device.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="old_state" type="u" tp:type="NM_DEVICE_STATE">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The previous state of the device.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="reason" type="u" tp:type="NM_DEVICE_STATE_REASON">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           A reason for the state transition.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <tp:enum name="NM_DEVICE_STATE" type="u">
       <tp:enumvalue suffix="UNKNOWN" value="0">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is in an unknown state.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="UNMANAGED" value="10">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is recognized but not managed by NetworkManager.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="UNAVAILABLE" value="20">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device cannot be used (carrier off, rfkill, etc).
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DISCONNECTED" value="30">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is not connected.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="PREPARE" value="40">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is preparing to connect.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONFIG" value="50">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is being configured.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="NEED_AUTH" value="60">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is awaiting secrets necessary to continue connection.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="IP_CONFIG" value="70">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The IP settings of the device are being requested and configured.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="IP_CHECK" value="80">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device's IP connectivity ability is being determined.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SECONDARIES" value="90">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is waiting for secondary connections to be activated.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="ACTIVATED" value="100">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is active.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DEACTIVATING" value="110">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device's network connection is being torn down.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="FAILED" value="120">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is in a failure state following an attempt to activate it.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
     </tp:enum>
 
     <tp:enum name="NM_DEVICE_TYPE" type="u">
       <tp:enumvalue suffix="UNKNOWN" value="0">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device type is unknown.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="ETHERNET" value="1">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is wired Ethernet device.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="WIFI" value="2">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is an 802.11 WiFi device.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="UNUSED1" value="3">
-        <tp:docstring>Unused</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Unused" />
       </tp:enumvalue>
       <tp:enumvalue suffix="UNUSED2" value="4">
-        <tp:docstring>Unused</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Unused" />
       </tp:enumvalue>
       <tp:enumvalue suffix="BT" value="5">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is Bluetooth device that provides PAN or DUN capabilities.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="OLPC_MESH" value="6">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is an OLPC mesh networking device.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="WIMAX" value="7">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is an 802.16e Mobile WiMAX device.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="MODEM" value="8">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is a modem supporting one or more of analog telephone,
           CDMA/EVDO, GSM/UMTS/HSPA, or LTE standards to access a cellular or
           wireline data network.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="INFINIBAND" value="9">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is an IP-capable InfiniBand interface.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="BOND" value="10">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is a bond master interface.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="VLAN" value="11">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is a VLAN interface.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="ADSL" value="12">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is an ADSL device supporting PPPoE and PPPoATM protocols.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="BRIDGE" value="13">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is a bridge interface.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GENERIC" value="14">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is a generic interface type unrecognized by NetworkManager.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="TEAM" value="15">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is a team master interface.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
     </tp:enum>
 
     <tp:flags name="NM_DEVICE_CAP" value-prefix="NM_DEVICE_CAP" type="u">
       <tp:flag suffix="NONE" value="0x0">
-        <tp:docstring>Null capability.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Null capability." />
       </tp:flag>
       <tp:flag suffix="NM_SUPPORTED" value="0x1">
-        <tp:docstring>The device is supported by NetworkManager.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device is supported by NetworkManager." />
       </tp:flag>
       <tp:flag suffix="CARRIER_DETECT" value="0x2">
-        <tp:docstring>The device supports carrier detection.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="The device supports carrier detection." />
       </tp:flag>
     </tp:flags>
 
     <tp:enum name="NM_DEVICE_STATE_REASON" type="u">
       <tp:enumvalue suffix="UNKNOWN" value="0">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The reason for the device state change is unknown.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="NONE" value="1">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The state change is normal.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="NOW_MANAGED" value="2">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is now managed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="NOW_UNMANAGED" value="3">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is no longer managed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONFIG_FAILED" value="4">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device could not be readied for configuration.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONFIG_UNAVAILABLE" value="5">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           IP configuration could not be reserved (no available address, timeout, etc).
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONFIG_EXPIRED" value="6">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The IP configuration is no longer valid.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="NO_SECRETS" value="7">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Secrets were required, but not provided.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SUPPLICANT_DISCONNECT" value="8">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The 802.1X supplicant disconnected from the access point or authentication server.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SUPPLICANT_CONFIG_FAILED" value="9">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Configuration of the 802.1X supplicant failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SUPPLICANT_FAILED" value="10">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The 802.1X supplicant quit or failed unexpectedly.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SUPPLICANT_TIMEOUT" value="11">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The 802.1X supplicant took too long to authenticate.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="PPP_START_FAILED" value="12">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The PPP service failed to start within the allowed time.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="PPP_DISCONNECT" value="13">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The PPP service disconnected unexpectedly.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="PPP_FAILED" value="14">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The PPP service quit or failed unexpectedly.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DHCP_START_FAILED" value="15">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The DHCP service failed to start within the allowed time.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DHCP_ERROR" value="16">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The DHCP service reported an unexpected error.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DHCP_FAILED" value="17">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The DHCP service quit or failed unexpectedly.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SHARED_START_FAILED" value="18">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The shared connection service failed to start.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SHARED_FAILED" value="19">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The shared connection service quit or failed unexpectedly.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="AUTOIP_START_FAILED" value="20">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The AutoIP service failed to start.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="AUTOIP_ERROR" value="21">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The AutoIP service reported an unexpected error.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="AUTOIP_FAILED" value="22">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The AutoIP service quit or failed unexpectedly.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="MODEM_BUSY" value="23">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Dialing failed because the line was busy.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="MODEM_NO_DIAL_TONE" value="24">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Dialing failed because there was no dial tone.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="MODEM_NO_CARRIER" value="25">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Dialing failed because there was carrier.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="MODEM_DIAL_TIMEOUT" value="26">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Dialing timed out.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="MODEM_DIAL_FAILED" value="27">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Dialing failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="MODEM_INIT_FAILED" value="28">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Modem initialization failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GSM_APN_FAILED" value="29">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Failed to select the specified GSM APN.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GSM_REGISTRATION_NOT_SEARCHING" value="30">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Not searching for networks.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GSM_REGISTRATION_DENIED" value="31">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Network registration was denied.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GSM_REGISTRATION_TIMEOUT" value="32">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Network registration timed out.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GSM_REGISTRATION_FAILED" value="33">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Failed to register with the requested GSM network.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GSM_PIN_CHECK_FAILED" value="34">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           PIN check failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="FIRMWARE_MISSING" value="35">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Necessary firmware for the device may be missing.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="REMOVED" value="36">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device was removed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SLEEPING" value="37">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           NetworkManager went to sleep.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONNECTION_REMOVED" value="38">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device's active connection was removed or disappeared.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="USER_REQUESTED" value="39">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           A user or client requested the disconnection.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CARRIER" value="40">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device's carrier/link changed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONNECTION_ASSUMED" value="41">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device's existing connection was assumed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SUPPLICANT_AVAILABLE" value="42">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The 802.1x supplicant is now available.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="MODEM_NOT_FOUND" value="43">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The modem could not be found.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="BT_FAILED" value="44">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The Bluetooth connection timed out or failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GSM_SIM_NOT_INSERTED" value="45">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           GSM Modem's SIM Card not inserted.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GSM_SIM_PIN_REQUIRED" value="46">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           GSM Modem's SIM Pin required.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GSM_SIM_PUK_REQUIRED" value="47">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           GSM Modem's SIM Puk required.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GSM_SIM_WRONG" value="48">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           GSM Modem's SIM wrong
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="INFINIBAND_MODE" value="49">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           InfiniBand device does not support connected mode.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DEPENDENCY_FAILED" value="50">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           A dependency of the connection failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="BR2684_FAILED" value="51">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Problem with the RFC 2684 Ethernet over ADSL bridge.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="MODEM_MANAGER_UNAVAILABLE" value="52">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           ModemManager was not running or quit unexpectedly.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SSID_NOT_FOUND" value="53">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The 802.11 Wi-Fi network could not be found.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SECONDARY_CONNECTION_FAILED" value="54">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           A secondary connection of the base connection failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DCB_FCOE_FAILED" value="55">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           DCB or FCoE setup failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="TEAMD_CONTROL_FAILED" value="56">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           teamd control failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="MODEM_FAILED" value="57">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Modem failed or no longer available.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="MODEM_AVAILABLE" value="58">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Modem now ready and available.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SIM_PIN_INCORRECT" value="59">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The SIM PIN was incorrect.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="NEW_ACTIVATION" value="60">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           A new connection activation was enqueued.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="PARENT_CHANGED" value="61">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device's parent changed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="PARENT_MANAGED_CHANGED" value="62">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device parent's management changed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
     </tp:enum>
 
     <tp:enum name="NM_METERED" type="u">
       <tp:enumvalue suffix="UNKNOWN" value="0">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device metered status is unknown.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="YES" value="1">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is metered and the value was statically set.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="NO" value="2">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is not metered and the value was statically set.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GUESS_YES" value="3">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is metered and the value was guessed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="GUESS_NO" value="4">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device is not metered and the value was guessed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
     </tp:enum>
 
     <tp:struct name="NM_DEVICE_STATE_REASON_STRUCT">
       <tp:member type="u" name="state" tp:type="NM_DEVICE_STATE">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The device state.
-        </tp:docstring>
+        " />
       </tp:member>
       <tp:member type="u" name="reason" tp:type="NM_DEVICE_STATE_REASON">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The reason for originally changing to the device state.
-        </tp:docstring>
+        " />
       </tp:member>
     </tp:struct>
   </interface>
diff --git a/introspection/nm-dhcp4-config.xml b/introspection/nm-dhcp4-config.xml
index 379c50f9..bca34fc5 100644
--- a/introspection/nm-dhcp4-config.xml
+++ b/introspection/nm-dhcp4-config.xml
@@ -3,18 +3,18 @@
 <node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
     <interface name="org.freedesktop.NetworkManager.DHCP4Config">
         <annotation name="org.gtk.GDBus.C.Name" value="Dhcp4Config"/>
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             Options and configuration returned by the IPv4 DHCP server.
-        </tp:docstring>
+        " />
         <property name="Options" type="a{sv}" access="read">
-            <tp:docstring>Configuration options returned by a DHCP server, if any.</tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="Configuration options returned by a DHCP server, if any." />
         </property>
 
         <signal name="PropertiesChanged">
             <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     A dictionary mapping property names to variant boxed values
-                </tp:docstring>
+                " />
             </arg>
         </signal>
     </interface>
diff --git a/introspection/nm-dhcp6-config.xml b/introspection/nm-dhcp6-config.xml
index df75660a..84e13b77 100644
--- a/introspection/nm-dhcp6-config.xml
+++ b/introspection/nm-dhcp6-config.xml
@@ -3,18 +3,18 @@
 <node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
     <interface name="org.freedesktop.NetworkManager.DHCP6Config">
         <annotation name="org.gtk.GDBus.C.Name" value="Dhcp6Config"/>
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             Options and configuration returned by the IPv6 DHCP server.
-        </tp:docstring>
+        " />
         <property name="Options" type="a{sv}" access="read">
-            <tp:docstring>Configuration options returned by a DHCP server, if any.</tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="Configuration options returned by a DHCP server, if any." />
         </property>
 
         <signal name="PropertiesChanged">
             <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     A dictionary mapping property names to variant boxed values
-                </tp:docstring>
+                " />
             </arg>
         </signal>
     </interface>
diff --git a/introspection/nm-ip4-config.xml b/introspection/nm-ip4-config.xml
index 5a9e8ea1..111e1acf 100644
--- a/introspection/nm-ip4-config.xml
+++ b/introspection/nm-ip4-config.xml
@@ -3,26 +3,26 @@
 <node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
   <interface name="org.freedesktop.NetworkManager.IP4Config">
     <property name="Addresses" type="aau" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
 	Array of arrays of IPv4 address/prefix/gateway.  All 3
 	elements of each array are in network byte order.  Essentially:
 	[(addr, prefix, gateway), (addr, prefix, gateway), ...]
 
 	Deprecated: use AddressData and Gateway
-      </tp:docstring>
+      " />
     </property>
     <property name="AddressData" type="aa{sv}" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
 	Array of IP address data objects. All addresses will include
-	"address" (an IP address string), and "prefix" (a uint). Some
+	&quot;address&quot; (an IP address string), and &quot;prefix&quot; (a uint). Some
 	addresses may include additional attributes.
-      </tp:docstring>
+      " />
     </property>
     <property name="Gateway" type="s" access="read">
-      <tp:docstring>The gateway in use.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The gateway in use." />
     </property>
     <property name="Routes" type="aau" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
 	Arrays of IPv4 route/prefix/next-hop/metric. All 4 elements of
 	each tuple are in network byte order. 'route' and 'next hop'
 	are IPv4 addresses, while prefix and metric are simple
@@ -30,41 +30,41 @@
 	metric), (route, prefix, next-hop, metric), ...]
 
 	Deprecated: use RouteData
-      </tp:docstring>
+      " />
     </property>
     <property name="RouteData" type="aa{sv}" access="read">
-      <tp:docstring>
-	Array of IP route data objects. All routes will include "dest"
-	(an IP address string) and "prefix" (a uint). Some routes may
-	include "next-hop" (an IP address string), "metric" (a uint),
+      <annotation name="org.gtk.GDBus.DocString" value="
+	Array of IP route data objects. All routes will include &quot;dest&quot;
+	(an IP address string) and &quot;prefix&quot; (a uint). Some routes may
+	include &quot;next-hop&quot; (an IP address string), &quot;metric&quot; (a uint),
 	and additional attributes.
-      </tp:docstring>
+      " />
     </property>
     <property name="Nameservers" type="au" access="read">
-      <tp:docstring>The nameservers in use.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The nameservers in use." />
     </property>
     <property name="Domains" type="as" access="read">
-      <tp:docstring>A list of domains this address belongs to.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="A list of domains this address belongs to." />
     </property>
     <property name="Searches" type="as" access="read">
-      <tp:docstring>A list of dns searches.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="A list of dns searches." />
     </property>
     <property name="DnsOptions" type="as" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
 	A list of DNS options that modify the behavior of the DNS
 	resolver. See resolv.conf(5) manual page for the list of
 	supported options.
-      </tp:docstring>
+      " />
     </property>
     <property name="WinsServers" type="au" access="read">
-      <tp:docstring>The Windows Internet Name Service servers associated with the connection.  Each address is in network byte order.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The Windows Internet Name Service servers associated with the connection.  Each address is in network byte order." />
     </property>
 
     <signal name="PropertiesChanged">
       <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           A dictionary mapping property names to variant boxed values
-        </tp:docstring>
+        " />
       </arg>
     </signal>
   </interface>
diff --git a/introspection/nm-ip6-config.xml b/introspection/nm-ip6-config.xml
index 1a107bf2..0cca33c4 100644
--- a/introspection/nm-ip6-config.xml
+++ b/introspection/nm-ip6-config.xml
@@ -3,63 +3,63 @@
 <node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
   <interface name="org.freedesktop.NetworkManager.IP6Config">
     <property name="Addresses" type="a(ayuay)" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
 	Array of tuples of IPv6 address/prefix/gateway.
 
 	Deprecated: use AddressData and Gateway.
-      </tp:docstring>
+      " />
     </property>
     <property name="AddressData" type="aa{sv}" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
 	Array of IP address data objects. All addresses will include
-	"address" (an IP address string), and "prefix" (a uint). Some
+	&quot;address&quot; (an IP address string), and &quot;prefix&quot; (a uint). Some
 	addresses may include additional attributes.
-      </tp:docstring>
+      " />
     </property>
     <property name="Gateway" type="s" access="read">
-      <tp:docstring>The gateway in use.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The gateway in use." />
     </property>
     <property name="Routes" type="a(ayuayu)" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
 	Tuples of IPv6 route/prefix/next-hop/metric.
 
 	Deprecated: use RouteData
-      </tp:docstring>
+      " />
     </property>
     <property name="RouteData" type="aa{sv}" access="read">
-      <tp:docstring>
-	Array of IP route data objects. All routes will include "dest"
-	(an IP address string) and "prefix" (a uint). Some routes may
-	include "next-hop" (an IP address string), "metric" (a uint),
+      <annotation name="org.gtk.GDBus.DocString" value="
+	Array of IP route data objects. All routes will include &quot;dest&quot;
+	(an IP address string) and &quot;prefix&quot; (a uint). Some routes may
+	include &quot;next-hop&quot; (an IP address string), &quot;metric&quot; (a uint),
 	and additional attributes.
-      </tp:docstring>
+      " />
     </property>
     <property name="Nameservers" type="aay" access="read">
       <!-- gdbus-codegen assumes that "aay" means "array of non-UTF-8
-	   string" and so would make this a char **.
+	   string&quot; and so would make this a char **.
       -->
       <annotation name="org.gtk.GDBus.C.ForceGVariant" value="1"/>
-      <tp:docstring>The nameservers in use.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The nameservers in use." />
     </property>
     <property name="Domains" type="as" access="read">
-      <tp:docstring>A list of domains this address belongs to.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="A list of domains this address belongs to." />
     </property>
     <property name="Searches" type="as" access="read">
-      <tp:docstring>A list of dns searches.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="A list of dns searches." />
     </property>
     <property name="DnsOptions" type="as" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
 	A list of DNS options that modify the behavior of the DNS
 	resolver. See resolv.conf(5) manual page for the list of
 	supported options.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
       <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           A dictionary mapping property names to variant boxed values
-        </tp:docstring>
+        " />
       </arg>
     </signal>
   </interface>
diff --git a/introspection/nm-manager.xml b/introspection/nm-manager.xml
index dd6fc4bd..8203020b 100644
--- a/introspection/nm-manager.xml
+++ b/introspection/nm-manager.xml
@@ -5,213 +5,213 @@
     <annotation name="org.gtk.GDBus.C.Name" value="Manager"/>
 
     <method name="GetDevices">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Get the list of realized network devices.
-      </tp:docstring>
+      " />
       <arg name="devices" type="ao" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           List of object paths of network devices known to the system.  This
           list does not include device placeholders (see GetAllDevices()).
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="GetAllDevices">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Get the list of all network devices.
-      </tp:docstring>
+      " />
       <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_get_all_devices"/>
       <arg name="devices" type="ao" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           List of object paths of network devices and device placeholders
           (eg, devices that do not yet exist but which can be automatically
           created by NetworkManager if one of their AvailableConnections
           was activated).
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="GetDeviceByIpIface">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Return the object path of the network device referenced by its IP
         interface name.  Note that some devices (usually modems) only have an
         IP interface name when they are connected.
-      </tp:docstring>
+      " />
       <arg name="iface" type="s" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Interface name of the device to find.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="device" type="o" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Object path of the network device.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="ActivateConnection">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Activate a connection using the supplied device.
-      </tp:docstring>
+      " />
       <arg name="connection" type="o" direction="in">
-        <tp:docstring>
-          The connection to activate.  If "/" is given, a valid device path must
+        <annotation name="org.gtk.GDBus.DocString" value="
+          The connection to activate.  If &quot;/&quot; is given, a valid device path must
           be given, and NetworkManager picks the best connection to activate for
           the given device.  VPN connections must always pass a valid connection
           path.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="device" type="o" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The object path of device to be activated for physical connections.
           This parameter is ignored for VPN connections, because the
           specific_object (if provided) specifies the device to use.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="specific_object" type="o" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The path of a connection-type-specific object this activation should use. 
           This parameter is currently ignored for wired and mobile broadband connections,
-          and the value of "/" should be used (ie, no specific object).  For WiFi
+          and the value of &quot;/&quot; should be used (ie, no specific object).  For WiFi
           connections, pass the object path of a specific AP from the card's scan
-          list, or "/" to pick an AP automatically.  For VPN connections, pass
+          list, or &quot;/&quot; to pick an AP automatically.  For VPN connections, pass
           the object path of an ActiveConnection object that should serve as the
-          "base" connection (to which the VPN connections lifetime will be tied),
-          or pass "/" and NM will automatically use the current default device.
-        </tp:docstring>
+          &quot;base&quot; connection (to which the VPN connections lifetime will be tied),
+          or pass &quot;/&quot; and NM will automatically use the current default device.
+        " />
       </arg>
       <arg name="active_connection" type="o" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The path of the active connection object representing this active connection.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="AddAndActivateConnection">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Adds a new connection using the given details (if any) as a template
         (automatically filling in missing settings with the capabilities of the
         given device and specific object), then activate the new connection.
         Cannot be used for VPN connections at this time.
-      </tp:docstring>
+      " />
       <arg name="connection" type="a{sa{sv}}" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Connection settings and properties; if incomplete missing settings will
           be automatically completed using the given device and specific object.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="device" type="o" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The object path of device to be activated using the given connection.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="specific_object" type="o" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The path of a connection-type-specific object this activation should use. 
           This parameter is currently ignored for wired and mobile broadband connections,
-          and the value of "/" should be used (ie, no specific object).  For WiFi
+          and the value of &quot;/&quot; should be used (ie, no specific object).  For WiFi
           connections, pass the object path of a specific AP from the card's scan
           list, which will be used to complete the details of the newly added
           connection.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="path" type="o" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Object path of the new connection that was just added.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="active_connection" type="o" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The path of the active connection object representing this active connection.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="DeactivateConnection">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Deactivate an active connection.
-      </tp:docstring>
+      " />
       <arg name="active_connection" type="o" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The currently active connection to deactivate.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="Sleep">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Control the NetworkManager daemon's sleep state.  When asleep, all
         interfaces that it manages are deactivated.  When awake, devices are
         available to be activated.  This command should not be called directly
         by users or clients; it is intended for system suspend/resume tracking.
-      </tp:docstring>
+      " />
       <arg name="sleep" type="b" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Indicates whether the NetworkManager daemon should sleep or wake.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="Enable">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Control whether overall networking is enabled or disabled.  When
         disabled, all interfaces that NM manages are deactivated.  When enabled,
         all managed interfaces are re-enabled and available to be activated.
         This command should be used by clients that provide to users the ability
         to enable/disable all networking.
-      </tp:docstring>
+      " />
       <arg name="enable" type="b" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           If FALSE, indicates that all networking should be disabled.  If TRUE,
           indicates that NetworkManager should begin managing network devices.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="GetPermissions">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Returns the permissions a caller has for various authenticated operations
         that NetworkManager provides, like Enable/Disable networking, changing
         WiFi, WWAN, and WiMAX state, etc.
-      </tp:docstring>
+      " />
       <arg name="permissions" type="a{ss}" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Dictionary of available permissions and results.  Each permission
-          is represented by a name (ie "org.freedesktop.NetworkManager.Foobar")
-          and each result is one of the following values: "yes" (the permission
-          is available), "auth" (the permission is available after a successful
-          authentication), or "no" (the permission is denied).  Clients may use
+          is represented by a name (ie &quot;org.freedesktop.NetworkManager.Foobar&quot;)
+          and each result is one of the following values: &quot;yes&quot; (the permission
+          is available), &quot;auth&quot; (the permission is available after a successful
+          authentication), or &quot;no&quot; (the permission is denied).  Clients may use
           these values in the UI to indicate the ability to perform certain
           operations.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <signal name="CheckPermissions">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Emitted when system authorization details change, indicating that
         clients may wish to recheck permissions with GetPermissions.
-      </tp:docstring>
+      " />
     </signal>
 
     <method name="SetLogging">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Set logging verbosity and which operations are logged.
-      </tp:docstring>
+      " />
       <arg name="level" type="s" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           One of [ERR, WARN, INFO, DEBUG, TRACE, OFF, KEEP].
           This level is applied to the domains as specified in the domains
-          argument. Except for the special level "KEEP", all unmentioned
-          domains are disabled entirely. "KEEP" is special and allows
+          argument. Except for the special level &quot;KEEP&quot;, all unmentioned
+          domains are disabled entirely. &quot;KEEP&quot; is special and allows
           not to change the current setting except for the specified
           domains. E.g. level=KEEP and domains=PLATFORM:DEBUG will only
           touch the platform domain.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="domains" type="s" direction="in">
-        <tp:docstring>
-          A combination of logging domains separated by commas (','), or "NONE"
+        <annotation name="org.gtk.GDBus.DocString" value="
+          A combination of logging domains separated by commas (','), or &quot;NONE&quot;
           to disable logging.  Each domain enables logging for operations
           related to that domain.  Available domains are: [PLATFORM, RFKILL, ETHER,
           WIFI, BT, MB, DHCP4, DHCP6, PPP, WIFI_SCAN, IP4, IP6, AUTOIP4, DNS,
@@ -224,308 +224,308 @@
           and a log level (eg, 'WIFI:DEBUG').  If an empty string is given, the
           log level is changed but the current set of log domains remains
           unchanged.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="GetLogging">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Get current logging verbosity level and operations domains.
-      </tp:docstring>
+      " />
       <arg name="level" type="s" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           One of [ERR, WARN, INFO, DEBUG, TRACE].
-        </tp:docstring>
+        " />
       </arg>
       <arg name="domains" type="s" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           For available domains see SetLogging() call.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="CheckConnectivity">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
 	Re-check the network connectivity state.
-      </tp:docstring>
+      " />
       <arg name="connectivity" type="u" tp:type="NM_CONNECTIVITY" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The current connectivity state.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="state">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The overall networking state as determined by the NetworkManager daemon,
         based on the state of network devices under it's management.
-      </tp:docstring>
+      " />
       <arg name="state" type="u" direction="out" tp:type="NM_STATE"/>
     </method>
 
     <property name="Devices" type="ao" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The list of realized network devices. Realized devices are those which
         have backing resources (eg from the kernel or a management daemon like
         ModemManager, teamd, etc).
-      </tp:docstring>
+      " />
     </property>
 
     <property name="AllDevices" type="ao" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The list of both realized and un-realized network devices. Un-realized
         devices are software devices which do not yet have backing resources,
         but for which backing resources can be created if the device is
         activated.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="NetworkingEnabled" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates if overall networking is currently enabled or not.  See the
         Enable() method.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="WirelessEnabled" type="b" access="readwrite">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates if wireless is currently enabled or not.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="WirelessHardwareEnabled" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates if the wireless hardware is currently enabled, i.e. the state of the RF kill switch.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="WwanEnabled" type="b" access="readwrite">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates if mobile broadband devices are currently enabled or not.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="WwanHardwareEnabled" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates if the mobile broadband hardware is currently enabled, i.e. the state of the RF kill switch.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="WimaxEnabled" type="b" access="readwrite">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates if WiMAX devices are currently enabled or not.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="WimaxHardwareEnabled" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates if the WiMAX hardware is currently enabled, i.e. the state of the RF kill switch.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="ActiveConnections" type="ao" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         List of active connection object paths.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="PrimaryConnection" type="o" access="read">
-      <tp:docstring>
-        The object path of the "primary" active connection being used
+      <annotation name="org.gtk.GDBus.DocString" value="
+        The object path of the &quot;primary&quot; active connection being used
         to access the network. In particular, if there is no VPN
         active, or the VPN does not have the default route, then this
         indicates the connection that has the default route. If there
         is a VPN active with the default route, then this indicates
         the connection that contains the route to the VPN endpoint.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="PrimaryConnectionType" type="s" access="read">
-      <tp:docstring>
-        The connection type of the "primary" active connection being
+      <annotation name="org.gtk.GDBus.DocString" value="
+        The connection type of the &quot;primary&quot; active connection being
         used to access the network. This is the same as the Type
         property on the object indicated by PrimaryConnection.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Metered" type="u" access="read" tp:type="NM_METERED">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates whether the connectivity is metered. This is equivalent
         to the metered property of the device associated with the primary
         connection.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="ActivatingConnection" type="o" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The object path of an active connection that is currently
         being activated and which is expected to become the new
         PrimaryConnection when it finishes activating.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Startup" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicates whether NM is still starting up; this becomes FALSE
         when NM has finished attempting to activate every connection
         that it might be able to activate at startup.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Version" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         NetworkManager version.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="State" type="u" access="read" tp:type="NM_STATE">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The overall state of the NetworkManager daemon.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="StateChanged">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         NetworkManager's state changed.
-      </tp:docstring>
+      " />
       <arg name="state" type="u" tp:type="NM_STATE">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The new state of NetworkManager.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <property name="Connectivity" type="u" access="read" tp:type="NM_CONNECTIVITY">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The network connectivity state.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="GlobalDnsConfiguration" type="a{sv}" access="readwrite">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Dictionary of global DNS settings where the key is one of
-        "searches", "options" and "domains".  The values for the
-        "searches" and "options" keys are string arrays describing the
+        &quot;searches&quot;, &quot;options&quot; and &quot;domains&quot;.  The values for the
+        &quot;searches&quot; and &quot;options&quot; keys are string arrays describing the
         list of search domains and resolver options, respectively.
-        The value of the "domains" key is a second-level dictionary,
+        The value of the &quot;domains&quot; key is a second-level dictionary,
         where each key is a domain name, and each key's value is a
-        third-level dictionary with the keys "servers" and
-        "options". "servers" is a string array of DNS servers,
-        "options" is a string array of domain-specific options.
-      </tp:docstring>
+        third-level dictionary with the keys &quot;servers&quot; and
+        &quot;options&quot;. &quot;servers&quot; is a string array of DNS servers,
+        &quot;options&quot; is a string array of domain-specific options.
+      " />
     </property>
 
     <signal name="PropertiesChanged">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         NetworkManager's properties changed.
-      </tp:docstring>
+      " />
       <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The changed properties.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <signal name="DeviceAdded">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         A device was added to the system
-      </tp:docstring>
+      " />
       <arg name="device_path" type="o">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The object path of the newly added device.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <signal name="DeviceRemoved">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         A device was removed from the system, and is no longer available.
-      </tp:docstring>
+      " />
       <arg name="device_path" type="o">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The object path of the device that was just removed.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <tp:enum name="NM_STATE" type="u">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Describes the overall state of the daemon.
-      </tp:docstring>
+      " />
       <tp:enumvalue suffix="UNKNOWN" value="0">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Networking state is unknown.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="ASLEEP" value="10">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Networking is inactive and all devices are disabled.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DISCONNECTED" value="20">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           There is no active network connection.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DISCONNECTING" value="30">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Network connections are being cleaned up.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONNECTING" value="40">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           A network device is connecting to a network and there is no other
           available network connection.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONNECTED_LOCAL" value="50">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           A network device is connected, but there is only link-local connectivity.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONNECTED_SITE" value="60">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           A network device is connected, but there is only site-local connectivity.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONNECTED_GLOBAL" value="70">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           A network device is connected, with global network connectivity.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
     </tp:enum>
 
     <tp:enum name="NM_CONNECTIVITY" type="u">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Describes the network-connectivity state.
-      </tp:docstring>
+      " />
       <tp:enumvalue suffix="UNKNOWN" value="0">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Network connectivity is unknown.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="NONE" value="1">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The host is not connected to any network.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="PORTAL" value="2">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The host is behind a captive portal and cannot reach the
           full Internet.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="LIMITED" value="3">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The host is connected to a network, but does not appear to
 	  be able to reach the full Internet.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="FULL" value="4">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
 	  The host is connected to a network, and appears to be able
 	  to reach the full Internet
-        </tp:docstring>
+        " />
       </tp:enumvalue>
     </tp:enum>
 
diff --git a/introspection/nm-secret-agent.xml b/introspection/nm-secret-agent.xml
index 337d0a7f..ec7ede09 100644
--- a/introspection/nm-secret-agent.xml
+++ b/introspection/nm-secret-agent.xml
@@ -3,20 +3,20 @@
 <node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
 
     <interface name="org.freedesktop.NetworkManager.SecretAgent">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             Private D-Bus interface used by secret agents that store and provide
             secrets to NetworkManager.  If an agent provides secrets to
             NetworkManager as part of connection creation, and the some of those
-            secrets are "agent owned" the agent should store those secrets
+            secrets are &quot;agent owned&quot; the agent should store those secrets
             itself and should not expect its SaveSecrets() method to be called.
             SaveSecrets() will be called eg if some program other than the
             agent itself (like a connection editor) changes the secrets out of
             band.  The agent should implement this D-Bus interface on an object
             with the path /org/freedesktop/NetworkManager/SecretAgent.
-        </tp:docstring>
+        " />
 
         <method name="GetSecrets">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 Retrieve and return stored secrets, if any, or request new
                 secrets from the agent's user.  If user interaction is allowed
                 and the user enters new secrets, the agent is expected to save
@@ -25,31 +25,31 @@
                 secrets back to the same agent via a SaveSecrets() call.  If
                 the user canceled any interaction, the agent should return the
                 UserCanceled error (see below).
-            </tp:docstring>
+            " />
             <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_secret_agent_get_secrets"/>
             <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
             <arg name="connection" type="a{sa{sv}}" direction="in" tp:type="String_String_Variant_Map_Map">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Nested settings maps containing the connection for which
                     secrets are being requested.  This may contain system-owned
                     secrets if the agent has successfully authenticated to
                     modify system network settings and the GetSecrets request
                     flags allow user interaction.
-                </tp:docstring>
+                " />
             </arg>
             <arg name="connection_path" type="o" direction="in">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Object path of the connection for which secrets are being
                     requested.
-                </tp:docstring>
+                " />
             </arg>
             <arg name="setting_name" type="s" direction="in">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Setting name for which secrets are being requested.
-                </tp:docstring>
+                " />
             </arg>
             <arg name="hints" type="as" direction="in">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Array of strings of key names in the requested setting for
                     which NetworkManager thinks a secrets may be required,
                     and/or well-known identifiers and data that may be useful
@@ -61,180 +61,180 @@
                     in this request.  Some hints have special prefixes that
                     provide information to the agent; for example, VPN requests
                     may send server-specific messages prefixed with
-                    "x-vpn-message:".
-                </tp:docstring>
+                    &quot;x-vpn-message:&quot;.
+                " />
             </arg>
             <arg name="flags" type="u" direction="in" tp:type="NM_SECRET_AGENT_GET_SECRETS_FLAGS">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Flags which modify the behavior of the secrets request.
                     If true, new secrets are assumed to be invalid or incorrect,
                     and the agent should ask the user for new secrets.  If false,
                     existing secrets should be retrieved from storage and 
                     returned without interrupting the user.
-                </tp:docstring>
+                " />
             </arg>
 
             <arg name="secrets" type="a{sa{sv}}" direction="out" tp:type="String_String_Variant_Map_Map">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Nested settings maps containing secrets.  Each setting MUST
                     contain at least the 'name' field, containing the name of
                     the setting, and one or more secrets.
-                </tp:docstring>
+                " />
             </arg>
 
             <tp:possible-errors>
               <tp:error name="org.freedesktop.NetworkManager.SecretAgent.NotAuthorized">
-                  <tp:docstring>
+                  <annotation name="org.gtk.GDBus.DocString" value="
                       Should be returned when the process requesting secrets is
                       not authorized to do so (like if the caller is not root
                       or not NetworkManager).
-                  </tp:docstring>
+                  " />
               </tp:error>
               <tp:error name="org.freedesktop.NetworkManager.SecretAgent.InvalidConnection">
-                  <tp:docstring>
+                  <annotation name="org.gtk.GDBus.DocString" value="
                       Should be returned if the 'connection' argument is invalid.
-                  </tp:docstring>
+                  " />
               </tp:error>
               <tp:error name="org.freedesktop.NetworkManager.SecretAgent.UserCanceled">
-                  <tp:docstring>
+                  <annotation name="org.gtk.GDBus.DocString" value="
                       Should be returned when the user has canceled the request.
-                  </tp:docstring>
+                  " />
               </tp:error>
               <tp:error name="org.freedesktop.NetworkManager.SecretAgent.AgentCanceled">
-                  <tp:docstring>
+                  <annotation name="org.gtk.GDBus.DocString" value="
                       Should be returned when NetworkManager has requested that
                       the agent cancel the request.
-                  </tp:docstring>
+                  " />
               </tp:error>
               <tp:error name="org.freedesktop.NetworkManager.SecretAgent.InternalError">
-                  <tp:docstring>
+                  <annotation name="org.gtk.GDBus.DocString" value="
                       Should be returned if the agent has encountered some internal
                       error processing the request.
-                  </tp:docstring>
+                  " />
               </tp:error>
               <tp:error name="org.freedesktop.NetworkManager.SecretAgent.NoSecrets">
-                  <tp:docstring>
+                  <annotation name="org.gtk.GDBus.DocString" value="
                       Should be returned if there are no available secrets, for
                       example if user interaction is not allowed and there are
                       no secrets stored by the agent for this connection.
-                  </tp:docstring>
+                  " />
               </tp:error>
             </tp:possible-errors>
         </method>
 
         <tp:flags name="NM_SECRET_AGENT_GET_SECRETS_FLAGS" value-prefix="NM_SECRET_AGENT_GET_SECRETS_FLAG" type="u">
-          <tp:docstring>
+          <annotation name="org.gtk.GDBus.DocString" value="
             Flags modifying the behavior of GetSecrets request.
-          </tp:docstring>
+          " />
           <tp:flag suffix="NONE" value="0x0">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
               No special behavior; by default no user interaction is allowed and
               requests for secrets are fulfilled from persistent storage, or
               if no secrets are available an error is returned.
-            </tp:docstring>
+            " />
           </tp:flag>
           <tp:flag suffix="ALLOW_INTERACTION" value="0x1">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
               Allows the request to interact with the user, possibly prompting
               via UI for secrets if any are required, or if none are found in
               persistent storage.
-            </tp:docstring>
+            " />
           </tp:flag>
           <tp:flag suffix="REQUEST_NEW" value="0x2">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
               Explicitly prompt for new secrets from the user.  This flag
               signals that NetworkManager thinks any existing secrets are
               invalid or wrong.  This flag implies that interaction is allowed.
-            </tp:docstring>
+            " />
           </tp:flag>
           <tp:flag suffix="USER_REQUESTED" value="0x4">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
               Set if the request was initiated by user-requested action via the
               D-Bus interface, as opposed to automatically initiated by
               NetworkManager in response to (for example) scan results or
               carrier changes.
-            </tp:docstring>
+            " />
           </tp:flag>
         </tp:flags>
 
         <method name="CancelGetSecrets">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 Cancel a pending GetSecrets request for secrets of the given
                 connection.  Any GetSecrets request with the same
                 'connection_path' and 'setting_name' that are given in a
                 CancelGetSecrets request should be canceled.
-            </tp:docstring>
+            " />
             <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_secret_agent_cancel_get_secrets"/>
             <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
             <arg name="connection_path" type="o" direction="in">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Object path of the connection for which, if secrets for
                     the given 'setting_name' are being requested, the request
                     should be canceled.
-                </tp:docstring>
+                " />
             </arg>
             <arg name="setting_name" type="s" direction="in">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Setting name for which secrets for this connection were
                     originally being requested.
-                </tp:docstring>
+                " />
             </arg>
         </method>
 
         <method name="SaveSecrets">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 Save given secrets to backing storage.
-            </tp:docstring>
+            " />
             <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_secret_agent_save_secrets"/>
             <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
             <arg name="connection" type="a{sa{sv}}" direction="in" tp:type="String_String_Variant_Map_Map">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Nested settings maps containing the entire connection
                     (including secrets), for which the agent should save the
                     secrets to backing storage.  This method will not be called
                     when the agent itself is the process creating or updating
                     a connection; in that case the agent is assumed to have
                     already saved those secrets since it had them already.
-                </tp:docstring>
+                " />
             </arg>
             <arg name="connection_path" type="o" direction="in">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Object path of the connection for which the agent should
                     save secrets to backing storage.
-                </tp:docstring>
+                " />
             </arg>
         </method>
 
         <method name="DeleteSecrets">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 Delete secrets from backing storage.
-            </tp:docstring>
+            " />
             <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_secret_agent_delete_secrets"/>
             <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
             <arg name="connection" type="a{sa{sv}}" direction="in" tp:type="String_String_Variant_Map_Map">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Nested settings maps containing the connection properties
                     (sans secrets), for which the agent should delete the
                     secrets from backing storage.
-                </tp:docstring>
+                " />
             </arg>
             <arg name="connection_path" type="o" direction="in">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Object path of the connection for which the agent should
                     delete secrets from backing storage.
-                </tp:docstring>
+                " />
             </arg>
         </method>
 
         <tp:flags name="NM_SECRET_AGENT_CAPABILITIES" value-prefix="NM_SECRET_AGENT_CAPABILITY" type="u">
             <tp:flag suffix="NONE" value="0x0">
-                <tp:docstring>No special capabilities.</tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="No special capabilities." />
             </tp:flag>
             <tp:flag suffix="VPN_HINTS" value="0x1">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     The agent supports passing hints to VPN plugin authentication
                     dialogs.
-                </tp:docstring>
+                " />
             </tp:flag>
         </tp:flags>
 
diff --git a/introspection/nm-settings-connection.xml b/introspection/nm-settings-connection.xml
index 2d919619..fc62046c 100644
--- a/introspection/nm-settings-connection.xml
+++ b/introspection/nm-settings-connection.xml
@@ -3,27 +3,27 @@
 <node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
 
     <interface name="org.freedesktop.NetworkManager.Settings.Connection">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
             Represents a single network connection configuration.
-        </tp:docstring>
+        " />
 
         <method name="Update">
-          <tp:docstring>
+          <annotation name="org.gtk.GDBus.DocString" value="
             Update the connection with new settings and properties (replacing
             all previous settings and properties) and save the connection to
             disk.  Secrets may be part of the update request, and will be either
             stored in persistent storage or sent to a Secret Agent for storage,
             depending on the flags associated with each secret.
-          </tp:docstring>
+          " />
           <arg name="properties" type="a{sa{sv}}" direction="in">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
               New connection settings, properties, and (optionally) secrets.
-            </tp:docstring>
+            " />
           </arg>
         </method>
 
         <method name="UpdateUnsaved">
-          <tp:docstring>
+          <annotation name="org.gtk.GDBus.DocString" value="
             Update the connection with new settings and properties (replacing
             all previous settings and properties) but do not immediately save
             the connection to disk.  Secrets may be part of the update request
@@ -34,102 +34,102 @@
             that unsaved changes will be lost if the connection is
             reloaded from disk (either automatically on file change or
             due to an explicit ReloadConnections call).
-          </tp:docstring>
+          " />
           <arg name="properties" type="a{sa{sv}}" direction="in">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
               New connection settings, properties, and (optionally) secrets.
-            </tp:docstring>
+            " />
           </arg>
         </method>
 
         <method name="Delete">
-          <tp:docstring>
+          <annotation name="org.gtk.GDBus.DocString" value="
             Delete the connection.
-          </tp:docstring>
+          " />
         </method>
 
         <method name="GetSettings">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 Get the settings maps describing this network configuration.
                 This will never include any secrets required for connection
                 to the network, as those are often protected.  Secrets must
                 be requested separately using the GetSecrets() call.
-            </tp:docstring>
+            " />
             <arg name="settings" type="a{sa{sv}}" direction="out" tp:type="String_String_Variant_Map_Map">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     The nested settings maps describing this object.
-                </tp:docstring>
+                " />
             </arg>
         </method>
 
         <method name="GetSecrets">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 Get the secrets belonging to this network configuration.  Only
                 secrets from persistent storage or a Secret Agent running in
                 the requestor's session will be returned.  The user will never
                 be prompted for secrets as a result of this request.
-            </tp:docstring>
+            " />
             <arg name="setting_name" type="s" direction="in">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Name of the setting to return secrets for.  If empty, all
                     all secrets will be returned.
-                </tp:docstring>
+                " />
             </arg>
 
             <arg name="secrets" type="a{sa{sv}}" direction="out" tp:type="String_String_Variant_Map_Map">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     Nested settings maps containing secrets.
-                </tp:docstring>
+                " />
             </arg>
         </method>
 
         <method name="ClearSecrets">
-          <tp:docstring>
+          <annotation name="org.gtk.GDBus.DocString" value="
             Clear the secrets belonging to this network connection profile.
-          </tp:docstring>
+          " />
         </method>
 
         <method name="Save">
-            <tp:docstring>
-                Saves a "dirty" connection (that had previously been
+            <annotation name="org.gtk.GDBus.DocString" value="
+                Saves a &quot;dirty&quot; connection (that had previously been
                 updated with UpdateUnsaved) to persistent storage.
-            </tp:docstring>
+            " />
         </method>
 
         <signal name="Updated">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 Emitted when any settings or permissions change.  When handling
                 this signal, clients should re-read the connection using the
                 GetSettings method to get the changes and to ensure the client
                 still has permission to access the connection.
-            </tp:docstring>
+            " />
         </signal>
 
         <signal name="Removed">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 Emitted when this connection is no longer available.  This
                 happens when the connection is deleted or if it is no longer
                 accessible by any of the system's logged-in users.  After
                 receipt of this signal, the object no longer exists.  Also
                 see the Settings.ConnectionRemoved signal.
-            </tp:docstring>
+            " />
         </signal>
 
         <property name="Unsaved" type="b" access="read">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 If set, indicates that the in-memory state of the
                 connection does not match the on-disk state. This flag
                 will be set when UpdateUnsaved() is called or when any
                 connection details change, and cleared when the connection
                 is saved to disk via Save() or from internal operations.
-            </tp:docstring>
+            " />
         </property>
 
         <signal name="PropertiesChanged">
             <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-                <tp:docstring>
+                <annotation name="org.gtk.GDBus.DocString" value="
                     A dictionary mapping property names to variant boxed values.
-                </tp:docstring>
+                " />
             </arg>
         </signal>
 
diff --git a/introspection/nm-settings.xml b/introspection/nm-settings.xml
index b6ab8260..62892025 100644
--- a/introspection/nm-settings.xml
+++ b/introspection/nm-settings.xml
@@ -2,58 +2,58 @@
 
 <node name="/org/freedesktop/NetworkManager/Settings" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
   <interface name="org.freedesktop.NetworkManager.Settings">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       The Settings interface allows clients to view and administrate the connections stored and used by NetworkManager.
-    </tp:docstring>
+    " />
 
     <method name="ListConnections">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         List the saved network connections known to NetworkManager.
-      </tp:docstring>
+      " />
       <arg name="connections" type="ao" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           List of connections.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="GetConnectionByUuid">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Retrieve the object path of a connection, given that connection's UUID.
-      </tp:docstring>
+      " />
       <arg name="uuid" type="s" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The UUID to find the connection object path for.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="connection" type="o" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The connection's object path.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="AddConnection">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Add new connection and save it to disk.  This operation does not start
         the network connection unless (1) device is idle and able to connect to
         the network described by the new connection, and (2) the connection
         is allowed to be started automatically.
-      </tp:docstring>
+      " />
       <arg name="connection" type="a{sa{sv}}" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Connection settings and properties.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="path" type="o" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Object path of the new connection that was just added.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="AddConnectionUnsaved">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Add new connection but do not save it to disk immediately.  This
         operation does not start the network connection unless (1) device is
         idle and able to connect to the network described by the new connection,
@@ -63,105 +63,105 @@
         to disk. Note that unsaved changes will be lost if the
         connection is reloaded from disk (either automatically on file
         change or due to an explicit ReloadConnections call).
-      </tp:docstring>
+      " />
       <arg name="connection" type="a{sa{sv}}" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Connection settings and properties.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="path" type="o" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Object path of the new connection that was just added.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="LoadConnections">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Loads or reloads the indicated connections from disk. You
         should call this after making changes directly to an on-disk
         connection file to make sure that NetworkManager sees the
-        changes. (If "monitor-connection-files" in NetworkManager.conf
-        is "true", then this will have no real effect, but is
+        changes. (If &quot;monitor-connection-files&quot; in NetworkManager.conf
+        is &quot;true&quot;, then this will have no real effect, but is
         harmless.) As with AddConnection(), this operation does not
         necessarily start the network connection.
-      </tp:docstring>
+      " />
       <arg name="filenames" type="as" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Array of paths to on-disk connection profiles in directories
           monitored by NetworkManager.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="status" type="b" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Success or failure of the operation as a whole. True if
           NetworkManager at least tried to load the indicated
           connections, even if it did not succeed. False if an error
           occurred before trying to load the connections (eg,
           permission denied).
-        </tp:docstring>
+        " />
       </arg>
       <arg name="failures" type="as" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Paths of connection files that could not be loaded.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="ReloadConnections">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Tells NetworkManager to reload all connection files from disk,
         including noticing any added or deleted connection files. By
         default, connections are re-read automatically any time they
         change, so you only need to use this command if you have set
-        "monitor-connection-files=false" in NetworkManager.conf.
-      </tp:docstring>
+        &quot;monitor-connection-files=false&quot; in NetworkManager.conf.
+      " />
       <arg name="status" type="b" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Success or failure.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="SaveHostname">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Save the hostname to persistent configuration.
-      </tp:docstring>
+      " />
       <arg name="hostname" type="s" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The hostname to save to persistent configuration.  If blank, the persistent hostname is cleared.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <property name="Connections" type="ao" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         List of object paths of available network connection profiles.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="Hostname" type="s" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The machine hostname stored in persistent configuration.
-      </tp:docstring>
+      " />
     </property>
 
     <property name="CanModify" type="b" access="read">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         If true, adding and modifying connections is supported.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
     <signal name="NewConnection">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Emitted when a new connection has been added after NetworkManager has
         started up and initialized.  This signal is not emitted for connections
         read while starting up, because NetworkManager's D-Bus service is only
@@ -170,26 +170,26 @@
         connection list, call the ListConnections() method once, and then listen
         for individual Settings.NewConnection and Settings.Connection.Deleted
         signals for further updates.
-      </tp:docstring>
+      " />
       <arg name="connection" type="o">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Object path of the new connection.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <signal name="ConnectionRemoved">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Emitted when a connection is no longer available.  This happens when
         the connection is deleted or if it is no longer accessible by any of
         the system's logged-in users.  After receipt of this signal, the
         connection no longer exists and cannot be used.  Also see the
         Settings.Connection.Removed signal.
-      </tp:docstring>
+      " />
       <arg name="connection" type="o">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Object path of the removed connection.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
diff --git a/introspection/nm-vpn-connection.xml b/introspection/nm-vpn-connection.xml
index 03bbbe98..6a4fb37d 100644
--- a/introspection/nm-vpn-connection.xml
+++ b/introspection/nm-vpn-connection.xml
@@ -4,143 +4,143 @@
   <interface name="org.freedesktop.NetworkManager.VPN.Connection">
     <annotation name="org.gtk.GDBus.C.Name" value="VpnConnection"/>
 
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       Represents an active connection to a Virtual Private Network.
-    </tp:docstring>
+    " />
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
     <property name="VpnState" type="u" access="read" tp:type="NM_VPN_CONNECTION_STATE">
-      <tp:docstring>The VPN-specific state of the connection.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The VPN-specific state of the connection." />
     </property>
     <property name="Banner" type="s" access="read">
-      <tp:docstring>The banner string of the VPN connection.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The banner string of the VPN connection." />
     </property>
 
     <signal name="VpnStateChanged">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Emitted when the state of the VPN connection has changed.
-      </tp:docstring>
+      " />
       <arg name="state" type="u" tp:type="NM_VPN_CONNECTION_STATE">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The new state of the VPN connection.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="reason" type="u" tp:type="NM_VPN_CONNECTION_STATE_REASON">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Reason code describing the change to the new state.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <tp:enum name="NM_VPN_CONNECTION_STATE" type="u">
       <tp:enumvalue suffix="UNKNOWN" value="0">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The state of the VPN connection is unknown.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="PREPARE" value="1">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The VPN connection is preparing to connect.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="NEED_AUTH" value="2">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The VPN connection needs authorization credentials.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONNECT" value="3">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The VPN connection is being established.  FIXME: Should be CONNECTING or CONNECTED.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="IP_CONFIG_GET" value="4">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The VPN connection is getting an IP address.  FIXME: Should be an -ING 
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="ACTIVATED" value="5">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The VPN connection is active.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="FAILED" value="6">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The VPN connection failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DISCONNECTED" value="7">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The VPN connection is disconnected.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
     </tp:enum>
     <tp:enum name="NM_VPN_CONNECTION_STATE_REASON" type="u">
       <tp:enumvalue suffix="UNKNOWN" value="0">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The reason for the VPN connection state change is unknown.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="NONE" value="1">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           No reason was given for the VPN connection state change.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="USER_DISCONNECTED" value="2">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The VPN connection changed state because the user disconnected it.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="DEVICE_DISCONNECTED" value="3">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The VPN connection changed state because the device it was using was disconnected.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SERVICE_STOPPED" value="4">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The service providing the VPN connection was stopped.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="IP_CONFIG_INVALID" value="5">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The IP config of the VPN connection was invalid.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONNECT_TIMEOUT" value="6">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The connection attempt to the VPN service timed out.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SERVICE_START_TIMEOUT" value="7">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           A timeout occurred while starting the service providing the VPN connection.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SERVICE_START_FAILED" value="8">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Starting the service starting the service providing the VPN connection failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="NO_SECRETS" value="9">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Necessary secrets for the VPN connection were not provided.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="LOGIN_FAILED" value="10">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Authentication to the VPN server failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONNECTION_REMOVED" value="11">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The connection was deleted from settings.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
     </tp:enum>
   </interface>
diff --git a/introspection/nm-vpn-plugin.xml b/introspection/nm-vpn-plugin.xml
index adb6a085..ee8c69f8 100644
--- a/introspection/nm-vpn-plugin.xml
+++ b/introspection/nm-vpn-plugin.xml
@@ -4,20 +4,20 @@
   <interface name="org.freedesktop.NetworkManager.VPN.Plugin">
     <annotation name="org.gtk.GDBus.C.Name" value="VpnPlugin"/>
 
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       This interface is provided by plugins providing VPN services to the NetworkManager daemon.
-    </tp:docstring>
+    " />
 
     <method name="Connect">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Tells the plugin to connect.  Interactive secrets requests (eg, emitting
         the SecretsRequired signal) are not allowed.
-      </tp:docstring>
+      " />
       <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_connect"/>
       <arg name="connection" type="a{sa{sv}}" direction="in" tp:type="String_String_Variant_Map_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Describes the connection to be established.
-        </tp:docstring>
+        " />
       </arg>
       <tp:possible-errors>
         <tp:error name="org.freedesktop.NetworkManager.VPN.Error.StartingInProgress"/>
@@ -30,22 +30,22 @@
     </method>
 
     <method name="ConnectInteractive">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Tells the plugin to connect, allowing interactive secrets requests (eg
         the plugin is allowed to emit the SecretsRequired signal if the VPN
         service indicates that it needs additional secrets during the connect
         process).
-      </tp:docstring>
+      " />
       <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_connect_interactive"/>
       <arg name="connection" type="a{sa{sv}}" direction="in" tp:type="String_String_Variant_Map_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Describes the connection to be established.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="details" type="a{sv}" direction="in" tp:type="String_Variant_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Additional details about the Connect process.
-        </tp:docstring>
+        " />
       </arg>
       <tp:possible-errors>
         <tp:error name="org.freedesktop.NetworkManager.VPN.Error.StartingInProgress"/>
@@ -59,19 +59,19 @@
     </method>
 
     <method name="NeedSecrets">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Asks the plugin whether the provided connection will require secrets to connect successfully.
-      </tp:docstring>
+      " />
       <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_need_secrets"/>
       <arg name="settings" type="a{sa{sv}}" direction="in" tp:type="String_String_Variant_Map_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Describes the connection that may need secrets.
-        </tp:docstring>
+        " />
       </arg>
       <arg name="setting_name" type="s" direction="out">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The setting name within the provided connection that requires secrets, if any.
-        </tp:docstring>
+        " />
       </arg>
       <tp:possible-errors>
         <tp:error name="org.freedesktop.NetworkManager.VPN.Error.ConnectionInvalid"/>
@@ -79,9 +79,9 @@
     </method>
 
     <method name="Disconnect">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Disconnect the plugin.
-      </tp:docstring>
+      " />
       <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_disconnect"/>
       <tp:possible-errors>
         <tp:error name="org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress"/>
@@ -90,105 +90,105 @@
     </method>
 
     <method name="SetConfig">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Set generic connection details on the connection.
-      </tp:docstring>
+      " />
       <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_config"/>
       <arg name="config" type="a{sv}" direction="in" tp:type="String_Variant_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Generic configuration details for the connection.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="SetIp4Config">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Set IPv4 details on the connection.
-      </tp:docstring>
+      " />
       <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_ip4_config"/>
       <arg name="config" type="a{sv}" direction="in" tp:type="String_Variant_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Ip4Config details for the connection. You must call
 	  SetConfig() before calling this.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="SetIp6Config">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Set IPv6 details on the connection.
-      </tp:docstring>
+      " />
       <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_ip6_config"/>
       <arg name="config" type="a{sv}" direction="in" tp:type="String_Variant_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Ip6Config details for the connection. You must call
 	  SetConfig() before calling this.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <method name="SetFailure">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Indicate a failure to the plugin.
-      </tp:docstring>
+      " />
       <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_failure"/>
       <arg name="reason" type="s" direction="in">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The reason for the failure.
-        </tp:docstring>
+        " />
       </arg>
     </method>
 
     <property name="State" type="u" access="read" tp:type="NM_VPN_SERVICE_STATE">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The state of the plugin.
-      </tp:docstring>
+      " />
     </property>
 
     <signal name="StateChanged">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Emitted when the plugin state changes.
-      </tp:docstring>
+      " />
       <arg name="state" type="u" tp:type="NM_VPN_SERVICE_STATE">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The new state of the plugin.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <signal name="SecretsRequired">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Emitted during an ongoing ConnectInteractive() request when the plugin
         has determined that new secrets are required.  NetworkManager will then
         call the NewSecrets() method with a connection hash including the new
         secrets.
-      </tp:docstring>
+      " />
       <arg name="message" type="s" direction="out">
-          <tp:docstring>
+          <annotation name="org.gtk.GDBus.DocString" value="
               Informational message, if any, about the request.  For example, if
               a second PIN is required, could indicate to the user to wait for
               the token code to change until entering the next PIN.
-          </tp:docstring>
+          " />
       </arg>
       <arg name="secrets" type="as" direction="out">
-          <tp:docstring>
+          <annotation name="org.gtk.GDBus.DocString" value="
               Array of strings of VPN secret names which the plugin thinks
               secrets may be required for, or other VPN-specific data to be
               processed by the VPN's front-end.
-          </tp:docstring>
+          " />
       </arg>
     </signal>
 
     <method name="NewSecrets">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Called in response to a SecretsRequired signal to deliver updated secrets
         or other information to the plugin.
-      </tp:docstring>
+      " />
       <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_new_secrets"/>
       <arg name="connection" type="a{sa{sv}}" direction="in" tp:type="String_String_Variant_Map_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Describes the connection including the new secrets.
-        </tp:docstring>
+        " />
       </arg>
       <tp:possible-errors>
         <tp:error name="org.freedesktop.NetworkManager.VPN.Error.WrongState"/>
@@ -199,113 +199,113 @@
     </method>
 
     <signal name="Config">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The plugin obtained generic configuration information.
-      </tp:docstring>
+      " />
       <arg name="config" type="a{sv}" tp:type="String_Variant_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The configuration information.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <signal name="Ip4Config">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The plugin obtained an IPv4 configuration.
-      </tp:docstring>
+      " />
       <arg name="ip4config" type="a{sv}" tp:type="String_Variant_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The IPv4 configuration.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <signal name="Ip6Config">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         The plugin obtained an IPv6 configuration.
-      </tp:docstring>
+      " />
       <arg name="ip6config" type="a{sv}" tp:type="String_Variant_Map">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The IPv6 configuration.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <signal name="LoginBanner">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Emitted when the plugin receives a login banner from the VPN service.
-      </tp:docstring>
+      " />
       <arg name="banner" type="s">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The login banner string.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <signal name="Failure">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Emitted when a failure in the VPN plugin occurs.
-      </tp:docstring>
+      " />
       <arg name="reason" type="u" tp:type="NM_VPN_PLUGIN_FAILURE">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Reason code for the failure.
-        </tp:docstring>
+        " />
       </arg>
     </signal>
 
     <tp:enum name="NM_VPN_SERVICE_STATE" type="u">
       <tp:enumvalue suffix="UNKNOWN" value="0">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The state of the VPN plugin is unknown.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="INIT" value="1">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The VPN plugin is initialized.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="SHUTDOWN" value="2">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           (Not used.)
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="STARTING" value="3">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The plugin is attempting to connect to a VPN server.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="STARTED" value="4">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The plugin has connected to a VPN server.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="STOPPING" value="5">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The plugin is disconnecting from the VPN server.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="STOPPED" value="6">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           The plugin has disconnected from the VPN server.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
     </tp:enum>
 
     <tp:enum name="NM_VPN_PLUGIN_FAILURE" type="u">
       <tp:enumvalue suffix="LOGIN_FAILED" value="0">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Login failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="CONNECT_FAILED" value="1">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Connect failed.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
       <tp:enumvalue suffix="BAD_IP_CONFIG" value="2">
-        <tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="
           Invalid IP configuration returned from the VPN plugin.
-        </tp:docstring>
+        " />
       </tp:enumvalue>
     </tp:enum>
 
diff --git a/introspection/nm-wimax-nsp.xml b/introspection/nm-wimax-nsp.xml
index 55ac4abc..6174ad67 100644
--- a/introspection/nm-wimax-nsp.xml
+++ b/introspection/nm-wimax-nsp.xml
@@ -4,38 +4,38 @@
   <interface name="org.freedesktop.NetworkManager.WiMax.Nsp">
 
     <property name="Name" type="s" access="read">
-      <tp:docstring>The name of the NSP.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The name of the NSP." />
     </property>
     <property name="SignalQuality" type="u" access="read">
-      <tp:docstring>The current signal quality of the NSP, in percent.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The current signal quality of the NSP, in percent." />
     </property>
     <property name="NetworkType" type="u" access="read" tp:type="NM_WIMAX_NSP_NETWORK_TYPE">
-      <tp:docstring>The network type of the NSP.</tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="The network type of the NSP." />
     </property>
 
     <signal name="PropertiesChanged">
         <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
-            <tp:docstring>
+            <annotation name="org.gtk.GDBus.DocString" value="
                 A dictionary mapping property names to variant boxed values.
-            </tp:docstring>
+            " />
         </arg>
     </signal>
 
     <tp:flags name="NM_WIMAX_NSP_NETWORK_TYPE" value-prefix="NM_WIMAX_NSP_NETWORK_TYPE" type="u">
-      <tp:docstring>
+      <annotation name="org.gtk.GDBus.DocString" value="
         Network type of the NSP.
-      </tp:docstring>
+      " />
       <tp:flag suffix="UNKNOWN" value="0x0">
-        <tp:docstring>Unknown network.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Unknown network." />
       </tp:flag>
       <tp:flag suffix="HOME" value="0x1">
-        <tp:docstring>Home network.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Home network." />
       </tp:flag>
       <tp:flag suffix="PARTNER" value="0x2">
-        <tp:docstring>Partner network.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Partner network." />
       </tp:flag>
       <tp:flag suffix="ROAMING_PARTNER" value="0x3">
-        <tp:docstring>Roaming partner network.</tp:docstring>
+        <annotation name="org.gtk.GDBus.DocString" value="Roaming partner network." />
       </tp:flag>
 
     </tp:flags>
diff --git a/introspection/nmdbus-access-point-org.freedesktop.NetworkManager.AccessPoint.xml b/introspection/nmdbus-access-point-org.freedesktop.NetworkManager.AccessPoint.xml
new file mode 100644
index 00000000..eae6fef6
--- /dev/null
+++ b/introspection/nmdbus-access-point-org.freedesktop.NetworkManager.AccessPoint.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.AccessPoint">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-AccessPoint.top_of_page">org.freedesktop.NetworkManager.AccessPoint</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-AccessPoint.top_of_page"><primary sortas=".AccessPoint">org.freedesktop.NetworkManager.AccessPoint</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.AccessPoint</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-AccessPoint.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Flags">Flags</link>       readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.WpaFlags">WpaFlags</link>    readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.RsnFlags">RsnFlags</link>    readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Ssid">Ssid</link>        readable   ay
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Frequency">Frequency</link>   readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.HwAddress">HwAddress</link>   readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Mode">Mode</link>        readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.MaxBitrate">MaxBitrate</link>  readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Strength">Strength</link>    readable   y
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.LastSeen">LastSeen</link>    readable   i
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-AccessPoint">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.AccessPoint">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-AccessPoint.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-AccessPoint.PropertiesChanged"><primary sortas=".AccessPoint::PropertiesChanged">org.freedesktop.NetworkManager.AccessPoint::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.AccessPoint">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Flags">
+  <title>The "Flags" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Flags"><primary sortas=".AccessPoint:Flags">org.freedesktop.NetworkManager.AccessPoint:Flags</primary></indexterm>
+<programlisting>
+Flags  readable   u
+</programlisting>
+<para>Flags describing the capabilities of the access point.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.WpaFlags">
+  <title>The "WpaFlags" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.WpaFlags"><primary sortas=".AccessPoint:WpaFlags">org.freedesktop.NetworkManager.AccessPoint:WpaFlags</primary></indexterm>
+<programlisting>
+WpaFlags  readable   u
+</programlisting>
+<para>Flags describing the access point's capabilities according to WPA (Wifi Protected Access).</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.RsnFlags">
+  <title>The "RsnFlags" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.RsnFlags"><primary sortas=".AccessPoint:RsnFlags">org.freedesktop.NetworkManager.AccessPoint:RsnFlags</primary></indexterm>
+<programlisting>
+RsnFlags  readable   u
+</programlisting>
+<para>Flags describing the access point's capabilities according to the RSN (Robust Secure Network) protocol.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Ssid">
+  <title>The "Ssid" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Ssid"><primary sortas=".AccessPoint:Ssid">org.freedesktop.NetworkManager.AccessPoint:Ssid</primary></indexterm>
+<programlisting>
+Ssid  readable   ay
+</programlisting>
+<para>The Service Set Identifier identifying the access point.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Frequency">
+  <title>The "Frequency" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Frequency"><primary sortas=".AccessPoint:Frequency">org.freedesktop.NetworkManager.AccessPoint:Frequency</primary></indexterm>
+<programlisting>
+Frequency  readable   u
+</programlisting>
+<para>The radio channel frequency in use by the access point, in MHz.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.HwAddress"><primary sortas=".AccessPoint:HwAddress">org.freedesktop.NetworkManager.AccessPoint:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>The hardware address (BSSID) of the access point.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Mode">
+  <title>The "Mode" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Mode"><primary sortas=".AccessPoint:Mode">org.freedesktop.NetworkManager.AccessPoint:Mode</primary></indexterm>
+<programlisting>
+Mode  readable   u
+</programlisting>
+<para>Describes the operating mode of the access point.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.MaxBitrate">
+  <title>The "MaxBitrate" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.MaxBitrate"><primary sortas=".AccessPoint:MaxBitrate">org.freedesktop.NetworkManager.AccessPoint:MaxBitrate</primary></indexterm>
+<programlisting>
+MaxBitrate  readable   u
+</programlisting>
+<para>The maximum bitrate this access point is capable of, in kilobits/second (Kb/s).</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Strength">
+  <title>The "Strength" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Strength"><primary sortas=".AccessPoint:Strength">org.freedesktop.NetworkManager.AccessPoint:Strength</primary></indexterm>
+<programlisting>
+Strength  readable   y
+</programlisting>
+<para>The current signal quality of the access point, in percent.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.LastSeen">
+  <title>The "LastSeen" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-AccessPoint.LastSeen"><primary sortas=".AccessPoint:LastSeen">org.freedesktop.NetworkManager.AccessPoint:LastSeen</primary></indexterm>
+<programlisting>
+LastSeen  readable   i
+</programlisting>
+<para>The timestamp (in CLOCK_BOOTTIME seconds) for the last time the access         point was found in scan results.  A value of -1 means the access point         has never been found in scan results.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-active-connection-org.freedesktop.NetworkManager.Connection.Active.xml b/introspection/nmdbus-active-connection-org.freedesktop.NetworkManager.Connection.Active.xml
new file mode 100644
index 00000000..a2a352f6
--- /dev/null
+++ b/introspection/nmdbus-active-connection-org.freedesktop.NetworkManager.Connection.Active.xml
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Connection.Active">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Connection-Active.top_of_page">org.freedesktop.NetworkManager.Connection.Active</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Connection-Active.top_of_page"><primary sortas="ActiveConnection">org.freedesktop.NetworkManager.Connection.Active</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Connection.Active</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Connection-Active.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Connection">Connection</link>      readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.SpecificObject">SpecificObject</link>  readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Id">Id</link>              readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Uuid">Uuid</link>            readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Type">Type</link>            readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Devices">Devices</link>         readable   ao
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.State">State</link>           readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Default">Default</link>         readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Ip4Config">Ip4Config</link>       readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Dhcp4Config">Dhcp4Config</link>     readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Default6">Default6</link>        readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Ip6Config">Ip6Config</link>       readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Dhcp6Config">Dhcp6Config</link>     readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Vpn">Vpn</link>             readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Master">Master</link>          readable   o
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Connection-Active">
+  <title role="desc.title">Description</title>
+  <para>Objects that implement the Connection.Active interface represent an attempt       to connect to a network using the details provided by a Connection object.       The Connection.Active object tracks the life-cycle of the connection       attempt and if successful indicates whether the connected network is the       "default" or preferred network for access.       NetworkManager has the concept of connections, which can be thought of as       settings, a profile or a configuration that can be applied on a networking       device.       Such settings-connections are exposed as D-Bus object and the active-connection       expresses this relationship between device and settings-connection.       At any time a settings-connection can only be activated on one device and vice       versa. However, during activation and deactivation multiple active-connections       can reference the same device or settings-connection as they are waiting to       be activated or to be deactivated.</para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Connection.Active">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Connection-Active.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Connection-Active.PropertiesChanged"><primary sortas="ActiveConnection::PropertiesChanged">org.freedesktop.NetworkManager.Connection.Active::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Connection.Active">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Connection">
+  <title>The "Connection" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Connection"><primary sortas="ActiveConnection:Connection">org.freedesktop.NetworkManager.Connection.Active:Connection</primary></indexterm>
+<programlisting>
+Connection  readable   o
+</programlisting>
+<para>The path of the connection.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.SpecificObject">
+  <title>The "SpecificObject" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.SpecificObject"><primary sortas="ActiveConnection:SpecificObject">org.freedesktop.NetworkManager.Connection.Active:SpecificObject</primary></indexterm>
+<programlisting>
+SpecificObject  readable   o
+</programlisting>
+<para>A specific object associated with the active connection.  This property         reflects the specific object used during connection activation, and will         not change over the lifetime of the ActiveConnection once set.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Id">
+  <title>The "Id" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Id"><primary sortas="ActiveConnection:Id">org.freedesktop.NetworkManager.Connection.Active:Id</primary></indexterm>
+<programlisting>
+Id  readable   s
+</programlisting>
+<para>The ID of the connection, provided as a convenience so that clients         do not have to retrieve all connection details.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Uuid">
+  <title>The "Uuid" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Uuid"><primary sortas="ActiveConnection:Uuid">org.freedesktop.NetworkManager.Connection.Active:Uuid</primary></indexterm>
+<programlisting>
+Uuid  readable   s
+</programlisting>
+<para>The UUID of the connection, provided as a convenience so that clients         do not have to retrieve all connection details.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Type">
+  <title>The "Type" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Type"><primary sortas="ActiveConnection:Type">org.freedesktop.NetworkManager.Connection.Active:Type</primary></indexterm>
+<programlisting>
+Type  readable   s
+</programlisting>
+<para>The type of the connection, provided as a convenience so that clients         do not have to retrieve all connection details.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Devices">
+  <title>The "Devices" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Devices"><primary sortas="ActiveConnection:Devices">org.freedesktop.NetworkManager.Connection.Active:Devices</primary></indexterm>
+<programlisting>
+Devices  readable   ao
+</programlisting>
+<para>Array of object paths representing devices which are part of this active         connection.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.State">
+  <title>The "State" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.State"><primary sortas="ActiveConnection:State">org.freedesktop.NetworkManager.Connection.Active:State</primary></indexterm>
+<programlisting>
+State  readable   u
+</programlisting>
+<para>The state of this active connection.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Default">
+  <title>The "Default" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Default"><primary sortas="ActiveConnection:Default">org.freedesktop.NetworkManager.Connection.Active:Default</primary></indexterm>
+<programlisting>
+Default  readable   b
+</programlisting>
+<para>Whether this active connection is the default IPv4 connection, i.e.         whether it currently owns the default IPv4 route.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Ip4Config">
+  <title>The "Ip4Config" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Ip4Config"><primary sortas="ActiveConnection:Ip4Config">org.freedesktop.NetworkManager.Connection.Active:Ip4Config</primary></indexterm>
+<programlisting>
+Ip4Config  readable   o
+</programlisting>
+<para>Object path of the Ip4Config object describing the configuration of the         connection. Only valid when the connection is in the         NM_ACTIVE_CONNECTION_STATE_ACTIVATED state.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Dhcp4Config">
+  <title>The "Dhcp4Config" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Dhcp4Config"><primary sortas="ActiveConnection:Dhcp4Config">org.freedesktop.NetworkManager.Connection.Active:Dhcp4Config</primary></indexterm>
+<programlisting>
+Dhcp4Config  readable   o
+</programlisting>
+<para>Object path of the Dhcp4Config object describing the DHCP options         returned by the DHCP server (assuming the connection used DHCP). Only         valid when the connection is in the NM_ACTIVE_CONNECTION_STATE_ACTIVATED         state.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Default6">
+  <title>The "Default6" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Default6"><primary sortas="ActiveConnection:Default6">org.freedesktop.NetworkManager.Connection.Active:Default6</primary></indexterm>
+<programlisting>
+Default6  readable   b
+</programlisting>
+<para>Whether this active connection is the default IPv6 connection, i.e.         whether it currently owns the default IPv6 route.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Ip6Config">
+  <title>The "Ip6Config" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Ip6Config"><primary sortas="ActiveConnection:Ip6Config">org.freedesktop.NetworkManager.Connection.Active:Ip6Config</primary></indexterm>
+<programlisting>
+Ip6Config  readable   o
+</programlisting>
+<para>Object path of the Ip6Config object describing the configuration of the         connection. Only valid when the connection is in the         NM_ACTIVE_CONNECTION_STATE_ACTIVATED state.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Dhcp6Config">
+  <title>The "Dhcp6Config" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Dhcp6Config"><primary sortas="ActiveConnection:Dhcp6Config">org.freedesktop.NetworkManager.Connection.Active:Dhcp6Config</primary></indexterm>
+<programlisting>
+Dhcp6Config  readable   o
+</programlisting>
+<para>Object path of the Dhcp6Config object describing the DHCP options         returned by the DHCP server (assuming the connection used DHCP). Only         valid when the connection is in the NM_ACTIVE_CONNECTION_STATE_ACTIVATED         state.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Vpn">
+  <title>The "Vpn" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Vpn"><primary sortas="ActiveConnection:Vpn">org.freedesktop.NetworkManager.Connection.Active:Vpn</primary></indexterm>
+<programlisting>
+Vpn  readable   b
+</programlisting>
+<para>Whether this active connection is also a VPN connection.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Master">
+  <title>The "Master" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Master"><primary sortas="ActiveConnection:Master">org.freedesktop.NetworkManager.Connection.Active:Master</primary></indexterm>
+<programlisting>
+Master  readable   o
+</programlisting>
+<para>The path to the master device if the connection is a slave.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-agent-manager-org.freedesktop.NetworkManager.AgentManager.xml b/introspection/nmdbus-agent-manager-org.freedesktop.NetworkManager.AgentManager.xml
new file mode 100644
index 00000000..29bb71d7
--- /dev/null
+++ b/introspection/nmdbus-agent-manager-org.freedesktop.NetworkManager.AgentManager.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.AgentManager">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-AgentManager.top_of_page">org.freedesktop.NetworkManager.AgentManager</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-AgentManager.top_of_page"><primary sortas=".AgentManager">org.freedesktop.NetworkManager.AgentManager</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.AgentManager</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsynopsisdiv role="synopsis">
+    <title role="synopsis.title">Methods</title>
+    <synopsis>
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-AgentManager.Register">Register</link>                 (IN  s identifier);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-AgentManager.RegisterWithCapabilities">RegisterWithCapabilities</link> (IN  s identifier,
+                          IN  u capabilities);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-AgentManager.Unregister">Unregister</link>               ();
+</synopsis>
+  </refsynopsisdiv>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-AgentManager">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-methods-org.freedesktop.NetworkManager.AgentManager">
+  <title role="details.title">Method Details</title>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-AgentManager.Register">
+  <title>The Register() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-AgentManager.Register"><primary sortas=".AgentManager.Register">org.freedesktop.NetworkManager.AgentManager.Register()</primary></indexterm>
+<programlisting>
+Register (IN  s identifier);
+</programlisting>
+<para>Called by secret Agents to register their ability to provide and save         network secrets.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN s <parameter>identifier</parameter></literal>:</term>
+  <listitem><para>Identifies this agent; only one agent in each user session may use the           same identifier.  Identifier formatting follows the same rules as           D-Bus bus names with the exception that the ':' character is not           allowed.  The valid set of characters is "[A-Z][a-z][0-9]_-." and the           identifier is limited in length to 255 characters with a minimum           of 3 characters.  An example valid identifier is 'org.gnome.nm-applet'           (without quotes).</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-AgentManager.RegisterWithCapabilities">
+  <title>The RegisterWithCapabilities() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-AgentManager.RegisterWithCapabilities"><primary sortas=".AgentManager.RegisterWithCapabilities">org.freedesktop.NetworkManager.AgentManager.RegisterWithCapabilities()</primary></indexterm>
+<programlisting>
+RegisterWithCapabilities (IN  s identifier,
+                          IN  u capabilities);
+</programlisting>
+<para>Like Register() but indicates agent capabilities to NetworkManager.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN s <parameter>identifier</parameter></literal>:</term>
+  <listitem><para>See the Register() method's identifier argument.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN u <parameter>capabilities</parameter></literal>:</term>
+  <listitem><para>Indicates various agent capabilities to NetworkManager.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-AgentManager.Unregister">
+  <title>The Unregister() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-AgentManager.Unregister"><primary sortas=".AgentManager.Unregister">org.freedesktop.NetworkManager.AgentManager.Unregister()</primary></indexterm>
+<programlisting>
+Unregister ();
+</programlisting>
+<para>Called by secret Agents to notify NetworkManager that they will no         longer handle requests for network secrets.  Agents are automatically         unregistered when they disconnect from D-Bus.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-adsl-org.freedesktop.NetworkManager.Device.Adsl.xml b/introspection/nmdbus-device-adsl-org.freedesktop.NetworkManager.Device.Adsl.xml
new file mode 100644
index 00000000..ab85429d
--- /dev/null
+++ b/introspection/nmdbus-device-adsl-org.freedesktop.NetworkManager.Device.Adsl.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Adsl">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Adsl.top_of_page">org.freedesktop.NetworkManager.Device.Adsl</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Adsl.top_of_page"><primary sortas=".Device.Adsl">org.freedesktop.NetworkManager.Device.Adsl</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Adsl</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Adsl.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Adsl.Carrier">Carrier</link>  readable   b
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Adsl">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Adsl">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Adsl.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Adsl.PropertiesChanged"><primary sortas=".Device.Adsl::PropertiesChanged">org.freedesktop.NetworkManager.Device.Adsl::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Adsl">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Adsl.Carrier">
+  <title>The "Carrier" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Adsl.Carrier"><primary sortas=".Device.Adsl:Carrier">org.freedesktop.NetworkManager.Device.Adsl:Carrier</primary></indexterm>
+<programlisting>
+Carrier  readable   b
+</programlisting>
+<para>Indicates whether the physical carrier is found.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-bond-org.freedesktop.NetworkManager.Device.Bond.xml b/introspection/nmdbus-device-bond-org.freedesktop.NetworkManager.Device.Bond.xml
new file mode 100644
index 00000000..22bd4ccf
--- /dev/null
+++ b/introspection/nmdbus-device-bond-org.freedesktop.NetworkManager.Device.Bond.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Bond">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Bond.top_of_page">org.freedesktop.NetworkManager.Device.Bond</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Bond.top_of_page"><primary sortas=".Device.Bond">org.freedesktop.NetworkManager.Device.Bond</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Bond</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Bond.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Bond.HwAddress">HwAddress</link>  readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Bond.Carrier">Carrier</link>    readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Bond.Slaves">Slaves</link>     readable   ao
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Bond">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Bond">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Bond.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Bond.PropertiesChanged"><primary sortas=".Device.Bond::PropertiesChanged">org.freedesktop.NetworkManager.Device.Bond::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Bond">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Bond.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Bond.HwAddress"><primary sortas=".Device.Bond:HwAddress">org.freedesktop.NetworkManager.Device.Bond:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>Hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Bond.Carrier">
+  <title>The "Carrier" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Bond.Carrier"><primary sortas=".Device.Bond:Carrier">org.freedesktop.NetworkManager.Device.Bond:Carrier</primary></indexterm>
+<programlisting>
+Carrier  readable   b
+</programlisting>
+<para>Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Bond.Slaves">
+  <title>The "Slaves" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Bond.Slaves"><primary sortas=".Device.Bond:Slaves">org.freedesktop.NetworkManager.Device.Bond:Slaves</primary></indexterm>
+<programlisting>
+Slaves  readable   ao
+</programlisting>
+<para>Array of object paths representing devices which are currently  slaved to this device.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-bridge-org.freedesktop.NetworkManager.Device.Bridge.xml b/introspection/nmdbus-device-bridge-org.freedesktop.NetworkManager.Device.Bridge.xml
new file mode 100644
index 00000000..20946e34
--- /dev/null
+++ b/introspection/nmdbus-device-bridge-org.freedesktop.NetworkManager.Device.Bridge.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Bridge">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Bridge.top_of_page">org.freedesktop.NetworkManager.Device.Bridge</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Bridge.top_of_page"><primary sortas=".Device.Bridge">org.freedesktop.NetworkManager.Device.Bridge</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Bridge</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Bridge.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.HwAddress">HwAddress</link>  readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.Carrier">Carrier</link>    readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.Slaves">Slaves</link>     readable   ao
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Bridge">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Bridge">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Bridge.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Bridge.PropertiesChanged"><primary sortas=".Device.Bridge::PropertiesChanged">org.freedesktop.NetworkManager.Device.Bridge::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Bridge">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.HwAddress"><primary sortas=".Device.Bridge:HwAddress">org.freedesktop.NetworkManager.Device.Bridge:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>Hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.Carrier">
+  <title>The "Carrier" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.Carrier"><primary sortas=".Device.Bridge:Carrier">org.freedesktop.NetworkManager.Device.Bridge:Carrier</primary></indexterm>
+<programlisting>
+Carrier  readable   b
+</programlisting>
+<para>Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.Slaves">
+  <title>The "Slaves" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.Slaves"><primary sortas=".Device.Bridge:Slaves">org.freedesktop.NetworkManager.Device.Bridge:Slaves</primary></indexterm>
+<programlisting>
+Slaves  readable   ao
+</programlisting>
+<para>Array of object paths representing devices which are currently  slaved to this device.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-bt-org.freedesktop.NetworkManager.Device.Bluetooth.xml b/introspection/nmdbus-device-bt-org.freedesktop.NetworkManager.Device.Bluetooth.xml
new file mode 100644
index 00000000..7cca9d2c
--- /dev/null
+++ b/introspection/nmdbus-device-bt-org.freedesktop.NetworkManager.Device.Bluetooth.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Bluetooth.top_of_page">org.freedesktop.NetworkManager.Device.Bluetooth</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Bluetooth.top_of_page"><primary sortas=".Device.Bluetooth">org.freedesktop.NetworkManager.Device.Bluetooth</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Bluetooth</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Bluetooth.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.HwAddress">HwAddress</link>       readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.Name">Name</link>            readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.BtCapabilities">BtCapabilities</link>  readable   u
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Bluetooth">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Bluetooth">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Bluetooth.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Bluetooth.PropertiesChanged"><primary sortas=".Device.Bluetooth::PropertiesChanged">org.freedesktop.NetworkManager.Device.Bluetooth::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Bluetooth">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.HwAddress"><primary sortas=".Device.Bluetooth:HwAddress">org.freedesktop.NetworkManager.Device.Bluetooth:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>Bluetooth hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.Name">
+  <title>The "Name" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.Name"><primary sortas=".Device.Bluetooth:Name">org.freedesktop.NetworkManager.Device.Bluetooth:Name</primary></indexterm>
+<programlisting>
+Name  readable   s
+</programlisting>
+<para>Bluetooth name of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.BtCapabilities">
+  <title>The "BtCapabilities" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.BtCapabilities"><primary sortas=".Device.Bluetooth:BtCapabilities">org.freedesktop.NetworkManager.Device.Bluetooth:BtCapabilities</primary></indexterm>
+<programlisting>
+BtCapabilities  readable   u
+</programlisting>
+<para>Bluetooth capabilities of the device (either DUN or NAP).</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-ethernet-org.freedesktop.NetworkManager.Device.Wired.xml b/introspection/nmdbus-device-ethernet-org.freedesktop.NetworkManager.Device.Wired.xml
new file mode 100644
index 00000000..ef6e7e8b
--- /dev/null
+++ b/introspection/nmdbus-device-ethernet-org.freedesktop.NetworkManager.Device.Wired.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Wired">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Wired.top_of_page">org.freedesktop.NetworkManager.Device.Wired</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Wired.top_of_page"><primary sortas="DeviceEthernet">org.freedesktop.NetworkManager.Device.Wired</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Wired</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Wired.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.HwAddress">HwAddress</link>        readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.PermHwAddress">PermHwAddress</link>    readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.Speed">Speed</link>            readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.S390Subchannels">S390Subchannels</link>  readable   as
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.Carrier">Carrier</link>          readable   b
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Wired">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Wired">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Wired.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Wired.PropertiesChanged"><primary sortas="DeviceEthernet::PropertiesChanged">org.freedesktop.NetworkManager.Device.Wired::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Wired">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.HwAddress"><primary sortas="DeviceEthernet:HwAddress">org.freedesktop.NetworkManager.Device.Wired:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>Active hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.PermHwAddress">
+  <title>The "PermHwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.PermHwAddress"><primary sortas="DeviceEthernet:PermHwAddress">org.freedesktop.NetworkManager.Device.Wired:PermHwAddress</primary></indexterm>
+<programlisting>
+PermHwAddress  readable   s
+</programlisting>
+<para>Permanent hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.Speed">
+  <title>The "Speed" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.Speed"><primary sortas="DeviceEthernet:Speed">org.freedesktop.NetworkManager.Device.Wired:Speed</primary></indexterm>
+<programlisting>
+Speed  readable   u
+</programlisting>
+<para>Design speed of the device, in megabits/second (Mb/s).</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.S390Subchannels">
+  <title>The "S390Subchannels" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.S390Subchannels"><primary sortas="DeviceEthernet:S390Subchannels">org.freedesktop.NetworkManager.Device.Wired:S390Subchannels</primary></indexterm>
+<programlisting>
+S390Subchannels  readable   as
+</programlisting>
+<para>Array of S/390 subchannels for S/390 or z/Architecture devices.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.Carrier">
+  <title>The "Carrier" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Wired.Carrier"><primary sortas="DeviceEthernet:Carrier">org.freedesktop.NetworkManager.Device.Wired:Carrier</primary></indexterm>
+<programlisting>
+Carrier  readable   b
+</programlisting>
+<para>Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-generic-org.freedesktop.NetworkManager.Device.Generic.xml b/introspection/nmdbus-device-generic-org.freedesktop.NetworkManager.Device.Generic.xml
new file mode 100644
index 00000000..13d81172
--- /dev/null
+++ b/introspection/nmdbus-device-generic-org.freedesktop.NetworkManager.Device.Generic.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Generic">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Generic.top_of_page">org.freedesktop.NetworkManager.Device.Generic</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Generic.top_of_page"><primary sortas=".Device.Generic">org.freedesktop.NetworkManager.Device.Generic</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Generic</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Generic.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Generic.HwAddress">HwAddress</link>        readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Generic.TypeDescription">TypeDescription</link>  readable   s
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Generic">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Generic">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Generic.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Generic.PropertiesChanged"><primary sortas=".Device.Generic::PropertiesChanged">org.freedesktop.NetworkManager.Device.Generic::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Generic">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Generic.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Generic.HwAddress"><primary sortas=".Device.Generic:HwAddress">org.freedesktop.NetworkManager.Device.Generic:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>Hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Generic.TypeDescription">
+  <title>The "TypeDescription" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Generic.TypeDescription"><primary sortas=".Device.Generic:TypeDescription">org.freedesktop.NetworkManager.Device.Generic:TypeDescription</primary></indexterm>
+<programlisting>
+TypeDescription  readable   s
+</programlisting>
+<para>A (non-localized) description of the interface type, if known.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-infiniband-org.freedesktop.NetworkManager.Device.Infiniband.xml b/introspection/nmdbus-device-infiniband-org.freedesktop.NetworkManager.Device.Infiniband.xml
new file mode 100644
index 00000000..bbafdbfc
--- /dev/null
+++ b/introspection/nmdbus-device-infiniband-org.freedesktop.NetworkManager.Device.Infiniband.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Infiniband">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Infiniband.top_of_page">org.freedesktop.NetworkManager.Device.Infiniband</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Infiniband.top_of_page"><primary sortas=".Device.Infiniband">org.freedesktop.NetworkManager.Device.Infiniband</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Infiniband</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Infiniband.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Infiniband.HwAddress">HwAddress</link>  readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Infiniband.Carrier">Carrier</link>    readable   b
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Infiniband">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Infiniband">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Infiniband.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Infiniband.PropertiesChanged"><primary sortas=".Device.Infiniband::PropertiesChanged">org.freedesktop.NetworkManager.Device.Infiniband::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Infiniband">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Infiniband.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Infiniband.HwAddress"><primary sortas=".Device.Infiniband:HwAddress">org.freedesktop.NetworkManager.Device.Infiniband:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>Hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Infiniband.Carrier">
+  <title>The "Carrier" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Infiniband.Carrier"><primary sortas=".Device.Infiniband:Carrier">org.freedesktop.NetworkManager.Device.Infiniband:Carrier</primary></indexterm>
+<programlisting>
+Carrier  readable   b
+</programlisting>
+<para>Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-ip-tunnel-org.freedesktop.NetworkManager.Device.IPTunnel.xml b/introspection/nmdbus-device-ip-tunnel-org.freedesktop.NetworkManager.Device.IPTunnel.xml
new file mode 100644
index 00000000..f1a8bba7
--- /dev/null
+++ b/introspection/nmdbus-device-ip-tunnel-org.freedesktop.NetworkManager.Device.IPTunnel.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-IPTunnel.top_of_page">org.freedesktop.NetworkManager.Device.IPTunnel</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-IPTunnel.top_of_page"><primary sortas=".Device.IPTunnel">org.freedesktop.NetworkManager.Device.IPTunnel</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.IPTunnel</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-IPTunnel.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Mode">Mode</link>                readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Parent">Parent</link>              readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Local">Local</link>               readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Remote">Remote</link>              readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Ttl">Ttl</link>                 readable   y
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Tos">Tos</link>                 readable   y
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.PathMtuDiscovery">PathMtuDiscovery</link>    readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.InputKey">InputKey</link>            readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.OutputKey">OutputKey</link>           readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.EncapsulationLimit">EncapsulationLimit</link>  readable   y
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.FlowLabel">FlowLabel</link>           readable   u
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-IPTunnel">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.IPTunnel">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-IPTunnel.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-IPTunnel.PropertiesChanged"><primary sortas=".Device.IPTunnel::PropertiesChanged">org.freedesktop.NetworkManager.Device.IPTunnel::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.IPTunnel">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Mode">
+  <title>The "Mode" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Mode"><primary sortas=".Device.IPTunnel:Mode">org.freedesktop.NetworkManager.Device.IPTunnel:Mode</primary></indexterm>
+<programlisting>
+Mode  readable   u
+</programlisting>
+<para>The tunneling mode.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Parent">
+  <title>The "Parent" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Parent"><primary sortas=".Device.IPTunnel:Parent">org.freedesktop.NetworkManager.Device.IPTunnel:Parent</primary></indexterm>
+<programlisting>
+Parent  readable   o
+</programlisting>
+<para>The object path of the parent device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Local">
+  <title>The "Local" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Local"><primary sortas=".Device.IPTunnel:Local">org.freedesktop.NetworkManager.Device.IPTunnel:Local</primary></indexterm>
+<programlisting>
+Local  readable   s
+</programlisting>
+<para>The local endpoint of the tunnel.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Remote">
+  <title>The "Remote" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Remote"><primary sortas=".Device.IPTunnel:Remote">org.freedesktop.NetworkManager.Device.IPTunnel:Remote</primary></indexterm>
+<programlisting>
+Remote  readable   s
+</programlisting>
+<para>The remote endpoint of the tunnel.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Ttl">
+  <title>The "Ttl" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Ttl"><primary sortas=".Device.IPTunnel:Ttl">org.freedesktop.NetworkManager.Device.IPTunnel:Ttl</primary></indexterm>
+<programlisting>
+Ttl  readable   y
+</programlisting>
+<para>The TTL assigned to tunneled packets. 0 is a special value         meaning that packets inherit the TTL value</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Tos">
+  <title>The "Tos" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Tos"><primary sortas=".Device.IPTunnel:Tos">org.freedesktop.NetworkManager.Device.IPTunnel:Tos</primary></indexterm>
+<programlisting>
+Tos  readable   y
+</programlisting>
+<para>The type of service (IPv4) or traffic class (IPv6) assigned to         tunneled packets.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.PathMtuDiscovery">
+  <title>The "PathMtuDiscovery" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.PathMtuDiscovery"><primary sortas=".Device.IPTunnel:PathMtuDiscovery">org.freedesktop.NetworkManager.Device.IPTunnel:PathMtuDiscovery</primary></indexterm>
+<programlisting>
+PathMtuDiscovery  readable   b
+</programlisting>
+<para>Whether path MTU discovery is enabled on this tunnel.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.InputKey">
+  <title>The "InputKey" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.InputKey"><primary sortas=".Device.IPTunnel:InputKey">org.freedesktop.NetworkManager.Device.IPTunnel:InputKey</primary></indexterm>
+<programlisting>
+InputKey  readable   s
+</programlisting>
+<para>The key used for incoming packets.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.OutputKey">
+  <title>The "OutputKey" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.OutputKey"><primary sortas=".Device.IPTunnel:OutputKey">org.freedesktop.NetworkManager.Device.IPTunnel:OutputKey</primary></indexterm>
+<programlisting>
+OutputKey  readable   s
+</programlisting>
+<para>The key used for outgoing packets.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.EncapsulationLimit">
+  <title>The "EncapsulationLimit" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.EncapsulationLimit"><primary sortas=".Device.IPTunnel:EncapsulationLimit">org.freedesktop.NetworkManager.Device.IPTunnel:EncapsulationLimit</primary></indexterm>
+<programlisting>
+EncapsulationLimit  readable   y
+</programlisting>
+<para>How many additional levels of encapsulation are permitted to         be prepended to packets. This property applies only to IPv6         tunnels.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.FlowLabel">
+  <title>The "FlowLabel" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.FlowLabel"><primary sortas=".Device.IPTunnel:FlowLabel">org.freedesktop.NetworkManager.Device.IPTunnel:FlowLabel</primary></indexterm>
+<programlisting>
+FlowLabel  readable   u
+</programlisting>
+<para>The flow label to assign to tunnel packets. This property         applies only to IPv6 tunnels.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-macvlan-org.freedesktop.NetworkManager.Device.Macvlan.xml b/introspection/nmdbus-device-macvlan-org.freedesktop.NetworkManager.Device.Macvlan.xml
new file mode 100644
index 00000000..ca5d7367
--- /dev/null
+++ b/introspection/nmdbus-device-macvlan-org.freedesktop.NetworkManager.Device.Macvlan.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Macvlan">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Macvlan.top_of_page">org.freedesktop.NetworkManager.Device.Macvlan</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Macvlan.top_of_page"><primary sortas=".Device.Macvlan">org.freedesktop.NetworkManager.Device.Macvlan</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Macvlan</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Macvlan.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Parent">Parent</link>     readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Mode">Mode</link>       readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.NoPromisc">NoPromisc</link>  readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Tap">Tap</link>        readable   b
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Macvlan">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Macvlan">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Macvlan.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Macvlan.PropertiesChanged"><primary sortas=".Device.Macvlan::PropertiesChanged">org.freedesktop.NetworkManager.Device.Macvlan::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Macvlan">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Parent">
+  <title>The "Parent" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Parent"><primary sortas=".Device.Macvlan:Parent">org.freedesktop.NetworkManager.Device.Macvlan:Parent</primary></indexterm>
+<programlisting>
+Parent  readable   o
+</programlisting>
+<para>The object path of the parent device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Mode">
+  <title>The "Mode" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Mode"><primary sortas=".Device.Macvlan:Mode">org.freedesktop.NetworkManager.Device.Macvlan:Mode</primary></indexterm>
+<programlisting>
+Mode  readable   s
+</programlisting>
+<para>The macvlan mode, one of "private", "vepa", "bridge", or "passthru".</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.NoPromisc">
+  <title>The "NoPromisc" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.NoPromisc"><primary sortas=".Device.Macvlan:NoPromisc">org.freedesktop.NetworkManager.Device.Macvlan:NoPromisc</primary></indexterm>
+<programlisting>
+NoPromisc  readable   b
+</programlisting>
+<para>Whether the device is blocked from going into promiscuous mode.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Tap">
+  <title>The "Tap" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Tap"><primary sortas=".Device.Macvlan:Tap">org.freedesktop.NetworkManager.Device.Macvlan:Tap</primary></indexterm>
+<programlisting>
+Tap  readable   b
+</programlisting>
+<para>Whether the device is a macvtap.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-modem-org.freedesktop.NetworkManager.Device.Modem.xml b/introspection/nmdbus-device-modem-org.freedesktop.NetworkManager.Device.Modem.xml
new file mode 100644
index 00000000..2143ef62
--- /dev/null
+++ b/introspection/nmdbus-device-modem-org.freedesktop.NetworkManager.Device.Modem.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Modem">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Modem.top_of_page">org.freedesktop.NetworkManager.Device.Modem</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Modem.top_of_page"><primary sortas=".Device.Modem">org.freedesktop.NetworkManager.Device.Modem</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Modem</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Modem.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Modem.ModemCapabilities">ModemCapabilities</link>    readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Modem.CurrentCapabilities">CurrentCapabilities</link>  readable   u
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Modem">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Modem">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Modem.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Modem.PropertiesChanged"><primary sortas=".Device.Modem::PropertiesChanged">org.freedesktop.NetworkManager.Device.Modem::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Modem">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Modem.ModemCapabilities">
+  <title>The "ModemCapabilities" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Modem.ModemCapabilities"><primary sortas=".Device.Modem:ModemCapabilities">org.freedesktop.NetworkManager.Device.Modem:ModemCapabilities</primary></indexterm>
+<programlisting>
+ModemCapabilities  readable   u
+</programlisting>
+<para>The generic family of access technologies the modem supports.  Not all         capabilities are available at the same time however; some modems require         a firmware reload or other reinitialization to switch between eg CDMA/EVDO         and GSM/UMTS.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Modem.CurrentCapabilities">
+  <title>The "CurrentCapabilities" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Modem.CurrentCapabilities"><primary sortas=".Device.Modem:CurrentCapabilities">org.freedesktop.NetworkManager.Device.Modem:CurrentCapabilities</primary></indexterm>
+<programlisting>
+CurrentCapabilities  readable   u
+</programlisting>
+<para>The generic family of access technologies the modem currently supports         without a firmware reload or reinitialization.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-olpc-mesh-org.freedesktop.NetworkManager.Device.OlpcMesh.xml b/introspection/nmdbus-device-olpc-mesh-org.freedesktop.NetworkManager.Device.OlpcMesh.xml
new file mode 100644
index 00000000..4a512547
--- /dev/null
+++ b/introspection/nmdbus-device-olpc-mesh-org.freedesktop.NetworkManager.Device.OlpcMesh.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-OlpcMesh.top_of_page">org.freedesktop.NetworkManager.Device.OlpcMesh</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-OlpcMesh.top_of_page"><primary sortas=".Device.OlpcMesh">org.freedesktop.NetworkManager.Device.OlpcMesh</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.OlpcMesh</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-OlpcMesh.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.HwAddress">HwAddress</link>      readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.Companion">Companion</link>      readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.ActiveChannel">ActiveChannel</link>  readable   u
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-OlpcMesh">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.OlpcMesh">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-OlpcMesh.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-OlpcMesh.PropertiesChanged"><primary sortas=".Device.OlpcMesh::PropertiesChanged">org.freedesktop.NetworkManager.Device.OlpcMesh::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para>Emitted when the wireless device's properties changed.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary containing the FIXME: check changed parameters.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.OlpcMesh">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.HwAddress"><primary sortas=".Device.OlpcMesh:HwAddress">org.freedesktop.NetworkManager.Device.OlpcMesh:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>The hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.Companion">
+  <title>The "Companion" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.Companion"><primary sortas=".Device.OlpcMesh:Companion">org.freedesktop.NetworkManager.Device.OlpcMesh:Companion</primary></indexterm>
+<programlisting>
+Companion  readable   o
+</programlisting>
+<para>The object path of the companion device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.ActiveChannel">
+  <title>The "ActiveChannel" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.ActiveChannel"><primary sortas=".Device.OlpcMesh:ActiveChannel">org.freedesktop.NetworkManager.Device.OlpcMesh:ActiveChannel</primary></indexterm>
+<programlisting>
+ActiveChannel  readable   u
+</programlisting>
+<para>The currently active channel.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-org.freedesktop.NetworkManager.Device.xml b/introspection/nmdbus-device-org.freedesktop.NetworkManager.Device.xml
new file mode 100644
index 00000000..a5a0697b
--- /dev/null
+++ b/introspection/nmdbus-device-org.freedesktop.NetworkManager.Device.xml
@@ -0,0 +1,370 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device.top_of_page">org.freedesktop.NetworkManager.Device</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device.top_of_page"><primary sortas=".Device">org.freedesktop.NetworkManager.Device</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsynopsisdiv role="synopsis">
+    <title role="synopsis.title">Methods</title>
+    <synopsis>
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Device.Reapply">Reapply</link>              (IN  a{sa{sv}} connection,
+                      IN  t         version_id,
+                      IN  u         flags);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Device.GetAppliedConnection">GetAppliedConnection</link> (IN  u         flags,
+                      OUT a{sa{sv}} connection,
+                      OUT t         version_id);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Device.Disconnect">Disconnect</link>           ();
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Device.Delete">Delete</link>               ();
+</synopsis>
+  </refsynopsisdiv>
+  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device.StateChanged">StateChanged</link> (u new_state,
+              u old_state,
+              u reason);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Udi">Udi</link>                   readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Interface">Interface</link>             readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.IpInterface">IpInterface</link>           readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Driver">Driver</link>                readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.DriverVersion">DriverVersion</link>         readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.FirmwareVersion">FirmwareVersion</link>       readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Capabilities">Capabilities</link>          readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Ip4Address">Ip4Address</link>            readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.State">State</link>                 readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.StateReason">StateReason</link>           readable   (uu)
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.ActiveConnection">ActiveConnection</link>      readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Ip4Config">Ip4Config</link>             readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Dhcp4Config">Dhcp4Config</link>           readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Ip6Config">Ip6Config</link>             readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Dhcp6Config">Dhcp6Config</link>           readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Managed">Managed</link>               readwrite  b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Autoconnect">Autoconnect</link>           readwrite  b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.FirmwareMissing">FirmwareMissing</link>       readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.NmPluginMissing">NmPluginMissing</link>       readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.DeviceType">DeviceType</link>            readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.AvailableConnections">AvailableConnections</link>  readable   ao
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.PhysicalPortId">PhysicalPortId</link>        readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Mtu">Mtu</link>                   readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Metered">Metered</link>               readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.LldpNeighbors">LldpNeighbors</link>         readable   aa{sv}
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device.Real">Real</link>                  readable   b
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-methods-org.freedesktop.NetworkManager.Device">
+  <title role="details.title">Method Details</title>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Device.Reapply">
+  <title>The Reapply() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Device.Reapply"><primary sortas=".Device.Reapply">org.freedesktop.NetworkManager.Device.Reapply()</primary></indexterm>
+<programlisting>
+Reapply (IN  a{sa{sv}} connection,
+         IN  t         version_id,
+         IN  u         flags);
+</programlisting>
+<para>Attempts to update the configuration of a device without deactivating it. NetworkManager         has the concept of connections, which are profiles that contain the configuration for         a networking device. Those connections are exposed via D-Bus as individual objects         that can be created, modified and deleted. When activating such a settings-connection         on a device, the settings-connection is cloned to become an applied-connection and used to         configure the device (see GetAppliedConnection). Subsequent modification of the         settings-connection don't propagate automatically to the device's applied-connection         (with exception of the firewall-zone and the metered property). For the changes to take         effect, you can either re-activate the settings-connection, or call Reapply.         The Reapply call allows you to directly update the applied-connection and reconfigure         the device.         Reapply can also be useful if the currently applied-connection is equal to the connection         that is about to be reapplied. This allows to reconfigure the device and revert external         changes like removing or adding an IP address (which NetworkManager doesn't revert         automatically because it is assumed that the user made these changes intentionally outside         of NetworkManager).         Reapply can make the applied-connection different from the settings-connection,         just like updating the settings-connection can make them different.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>connection</parameter></literal>:</term>
+  <listitem><para>The optional connection settings that will be reapplied on the device. If empty, the           currently active settings-connection will be used. The connection cannot arbitrarly           differ from the current applied-connection otherwise the call will fail.           Only certain changes are supported, like adding or removing IP addresses.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN t <parameter>version_id</parameter></literal>:</term>
+  <listitem><para>If non-zero, the current version id of the applied-connection must match.           The current version id can be retrieved via GetAppliedConnection.           This optional argument allows to catch concurrent modifications between           the GetAppliedConnection call and Reapply.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN u <parameter>flags</parameter></literal>:</term>
+  <listitem><para>Flags which would modify the behavior of the Reapply call.           There are no flags defined currently and the users should use the value of 0.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Device.GetAppliedConnection">
+  <title>The GetAppliedConnection() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Device.GetAppliedConnection"><primary sortas=".Device.GetAppliedConnection">org.freedesktop.NetworkManager.Device.GetAppliedConnection()</primary></indexterm>
+<programlisting>
+GetAppliedConnection (IN  u         flags,
+                      OUT a{sa{sv}} connection,
+                      OUT t         version_id);
+</programlisting>
+<para>Get the currently applied connection on the device. This is a snapshot of the last activated         connection on the device, that is the configuration that is currently applied on the device.         Usually this is the same as GetSettings of the referenced settings connection. However, it         can differ if the settings connection was subsequently modified or the applied connection was         modified by Reapply. The applied connection is set when activating a device or when calling         Reapply.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN u <parameter>flags</parameter></literal>:</term>
+  <listitem><para>Flags which would modify the behavior of the GetAppliedConnection call.           There are no flags defined currently and the users should use the value of 0.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT a{sa{sv}} <parameter>connection</parameter></literal>:</term>
+  <listitem><para>The effective connection settings that the connection has currently applied.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT t <parameter>version_id</parameter></literal>:</term>
+  <listitem><para>The version-id of the currently applied connection. This can be specified during             Reapply to avoid races where you first fetch the applied connection, modify it             and try to reapply it. If the applied connection is modified in the meantime, the             version_id gets incremented and Reapply will fail.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Device.Disconnect">
+  <title>The Disconnect() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Device.Disconnect"><primary sortas=".Device.Disconnect">org.freedesktop.NetworkManager.Device.Disconnect()</primary></indexterm>
+<programlisting>
+Disconnect ();
+</programlisting>
+<para>Disconnects a device and prevents the device from automatically activating further connections without user intervention.</para>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Device.Delete">
+  <title>The Delete() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Device.Delete"><primary sortas=".Device.Delete">org.freedesktop.NetworkManager.Device.Delete()</primary></indexterm>
+<programlisting>
+Delete ();
+</programlisting>
+<para>Deletes a software device from NetworkManager and removes the interface from the system.         The method returns an error when called for a hardware device.</para>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device.StateChanged">
+  <title>The "StateChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device.StateChanged"><primary sortas=".Device::StateChanged">org.freedesktop.NetworkManager.Device::StateChanged</primary></indexterm>
+<programlisting>
+StateChanged (u new_state,
+              u old_state,
+              u reason);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>u <parameter>new_state</parameter></literal>:</term>
+  <listitem><para>The new state of the device.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>u <parameter>old_state</parameter></literal>:</term>
+  <listitem><para>The previous state of the device.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>u <parameter>reason</parameter></literal>:</term>
+  <listitem><para>A reason for the state transition.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Udi">
+  <title>The "Udi" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Udi"><primary sortas=".Device:Udi">org.freedesktop.NetworkManager.Device:Udi</primary></indexterm>
+<programlisting>
+Udi  readable   s
+</programlisting>
+<para>Operating-system specific transient device hardware identifier.  This         is an opaque string representing the underlying hardware for the device,         and shouldn't be used to keep track of individual devices.  For some         device types (Bluetooth, Modems) it is an identifier used by the         hardware service (ie bluez or ModemManager) to refer to that device,         and client programs use it get additional information from those         services which NM does not provide.  The Udi is not guaranteed to be         consistent across reboots or hotplugs of the hardware. If you're looking         for a way to uniquely track each device in your application, use the         object path.  If you're looking for a way to track a specific piece of         hardware across reboot or hotplug, use a MAC address or USB serial         number.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Interface">
+  <title>The "Interface" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Interface"><primary sortas=".Device:Interface">org.freedesktop.NetworkManager.Device:Interface</primary></indexterm>
+<programlisting>
+Interface  readable   s
+</programlisting>
+<para>The name of the device's control (and often data) interface.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.IpInterface">
+  <title>The "IpInterface" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.IpInterface"><primary sortas=".Device:IpInterface">org.freedesktop.NetworkManager.Device:IpInterface</primary></indexterm>
+<programlisting>
+IpInterface  readable   s
+</programlisting>
+<para>The name of the device's data interface when available.  This property         may not refer to the actual data interface until the device has         successfully established a data connection, indicated by the device's         State becoming ACTIVATED.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Driver">
+  <title>The "Driver" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Driver"><primary sortas=".Device:Driver">org.freedesktop.NetworkManager.Device:Driver</primary></indexterm>
+<programlisting>
+Driver  readable   s
+</programlisting>
+<para>The driver handling the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.DriverVersion">
+  <title>The "DriverVersion" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.DriverVersion"><primary sortas=".Device:DriverVersion">org.freedesktop.NetworkManager.Device:DriverVersion</primary></indexterm>
+<programlisting>
+DriverVersion  readable   s
+</programlisting>
+<para>The version of the driver handling the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.FirmwareVersion">
+  <title>The "FirmwareVersion" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.FirmwareVersion"><primary sortas=".Device:FirmwareVersion">org.freedesktop.NetworkManager.Device:FirmwareVersion</primary></indexterm>
+<programlisting>
+FirmwareVersion  readable   s
+</programlisting>
+<para>The firmware version for the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Capabilities">
+  <title>The "Capabilities" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Capabilities"><primary sortas=".Device:Capabilities">org.freedesktop.NetworkManager.Device:Capabilities</primary></indexterm>
+<programlisting>
+Capabilities  readable   u
+</programlisting>
+<para>Flags describing the capabilities of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Ip4Address">
+  <title>The "Ip4Address" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Ip4Address"><primary sortas=".Device:Ip4Address">org.freedesktop.NetworkManager.Device:Ip4Address</primary></indexterm>
+<programlisting>
+Ip4Address  readable   u
+</programlisting>
+<para>DEPRECATED; use the 'Addresses' property of the 'Ip4Config' object instead.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.State">
+  <title>The "State" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.State"><primary sortas=".Device:State">org.freedesktop.NetworkManager.Device:State</primary></indexterm>
+<programlisting>
+State  readable   u
+</programlisting>
+<para>The current state of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.StateReason">
+  <title>The "StateReason" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.StateReason"><primary sortas=".Device:StateReason">org.freedesktop.NetworkManager.Device:StateReason</primary></indexterm>
+<programlisting>
+StateReason  readable   (uu)
+</programlisting>
+<para>The current state and reason for changing to that state.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.ActiveConnection">
+  <title>The "ActiveConnection" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.ActiveConnection"><primary sortas=".Device:ActiveConnection">org.freedesktop.NetworkManager.Device:ActiveConnection</primary></indexterm>
+<programlisting>
+ActiveConnection  readable   o
+</programlisting>
+<para>Object path of an ActiveConnection object that "owns" this device during         activation.  The ActiveConnection object tracks the life-cycle of a         connection to a specific network and implements the         org.freedesktop.NetworkManager.Connection.Active D-Bus interface.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Ip4Config">
+  <title>The "Ip4Config" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Ip4Config"><primary sortas=".Device:Ip4Config">org.freedesktop.NetworkManager.Device:Ip4Config</primary></indexterm>
+<programlisting>
+Ip4Config  readable   o
+</programlisting>
+<para>Object path of the Ip4Config object describing the configuration of the device.  Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Dhcp4Config">
+  <title>The "Dhcp4Config" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Dhcp4Config"><primary sortas=".Device:Dhcp4Config">org.freedesktop.NetworkManager.Device:Dhcp4Config</primary></indexterm>
+<programlisting>
+Dhcp4Config  readable   o
+</programlisting>
+<para>Object path of the Dhcp4Config object describing the DHCP options returned by the DHCP server.  Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Ip6Config">
+  <title>The "Ip6Config" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Ip6Config"><primary sortas=".Device:Ip6Config">org.freedesktop.NetworkManager.Device:Ip6Config</primary></indexterm>
+<programlisting>
+Ip6Config  readable   o
+</programlisting>
+<para>Object path of the Ip6Config object describing the configuration of the device.  Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Dhcp6Config">
+  <title>The "Dhcp6Config" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Dhcp6Config"><primary sortas=".Device:Dhcp6Config">org.freedesktop.NetworkManager.Device:Dhcp6Config</primary></indexterm>
+<programlisting>
+Dhcp6Config  readable   o
+</programlisting>
+<para>Object path of the Dhcp6Config object describing the DHCP options         returned by the DHCP server.  Only valid when the device is in the         NM_DEVICE_STATE_ACTIVATED state.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Managed">
+  <title>The "Managed" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Managed"><primary sortas=".Device:Managed">org.freedesktop.NetworkManager.Device:Managed</primary></indexterm>
+<programlisting>
+Managed  readwrite  b
+</programlisting>
+<para>Whether or not this device is managed by NetworkManager. Setting this         property has a similar effect to configuring the device as unmanaged         via the keyfile.unmanaged-devices setting in NetworkManager.conf.         Changes to this value are not persistent and lost after NetworkManager         restart.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Autoconnect">
+  <title>The "Autoconnect" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Autoconnect"><primary sortas=".Device:Autoconnect">org.freedesktop.NetworkManager.Device:Autoconnect</primary></indexterm>
+<programlisting>
+Autoconnect  readwrite  b
+</programlisting>
+<para>If TRUE, indicates the device is allowed to autoconnect.  If FALSE,         manual intervention is required before the device will automatically         connect to a known network, such as activating a connection using the         device, or setting this property to TRUE.  This property cannot be         set to TRUE for default-unmanaged devices, since they never autoconnect.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.FirmwareMissing">
+  <title>The "FirmwareMissing" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.FirmwareMissing"><primary sortas=".Device:FirmwareMissing">org.freedesktop.NetworkManager.Device:FirmwareMissing</primary></indexterm>
+<programlisting>
+FirmwareMissing  readable   b
+</programlisting>
+<para>If TRUE, indicates the device is likely missing firmware necessary for         its operation.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.NmPluginMissing">
+  <title>The "NmPluginMissing" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.NmPluginMissing"><primary sortas=".Device:NmPluginMissing">org.freedesktop.NetworkManager.Device:NmPluginMissing</primary></indexterm>
+<programlisting>
+NmPluginMissing  readable   b
+</programlisting>
+<para>If TRUE, indicates the NetworkManager plugin for the device is likely         missing or misconfigured.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.DeviceType">
+  <title>The "DeviceType" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.DeviceType"><primary sortas=".Device:DeviceType">org.freedesktop.NetworkManager.Device:DeviceType</primary></indexterm>
+<programlisting>
+DeviceType  readable   u
+</programlisting>
+<para>The general type of the network device; ie Ethernet, WiFi, etc.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.AvailableConnections">
+  <title>The "AvailableConnections" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.AvailableConnections"><primary sortas=".Device:AvailableConnections">org.freedesktop.NetworkManager.Device:AvailableConnections</primary></indexterm>
+<programlisting>
+AvailableConnections  readable   ao
+</programlisting>
+<para>An array of object paths of every configured connection that is currently 'available' through this device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.PhysicalPortId">
+  <title>The "PhysicalPortId" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.PhysicalPortId"><primary sortas=".Device:PhysicalPortId">org.freedesktop.NetworkManager.Device:PhysicalPortId</primary></indexterm>
+<programlisting>
+PhysicalPortId  readable   s
+</programlisting>
+<para>If non-empty, an (opaque) indicator of the physical network         port associated with the device. This can be used to recognize  when two seemingly-separate hardware devices are actually just  different virtual interfaces to the same physical port.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Mtu">
+  <title>The "Mtu" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Mtu"><primary sortas=".Device:Mtu">org.freedesktop.NetworkManager.Device:Mtu</primary></indexterm>
+<programlisting>
+Mtu  readable   u
+</programlisting>
+<para>The device MTU (maximum transmission unit).</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Metered">
+  <title>The "Metered" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Metered"><primary sortas=".Device:Metered">org.freedesktop.NetworkManager.Device:Metered</primary></indexterm>
+<programlisting>
+Metered  readable   u
+</programlisting>
+<para>Whether the amount of traffic flowing through the device is         subject to limitations, for example set by service providers.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.LldpNeighbors">
+  <title>The "LldpNeighbors" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.LldpNeighbors"><primary sortas=".Device:LldpNeighbors">org.freedesktop.NetworkManager.Device:LldpNeighbors</primary></indexterm>
+<programlisting>
+LldpNeighbors  readable   aa{sv}
+</programlisting>
+<para>Array of LLDP neighbors; each element is a dictionary mapping         LLDP TLV names to variant boxed values.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device.Real">
+  <title>The "Real" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device.Real"><primary sortas=".Device:Real">org.freedesktop.NetworkManager.Device:Real</primary></indexterm>
+<programlisting>
+Real  readable   b
+</programlisting>
+<para>True if the device exists, or False for placeholder devices that         do not yet exist but could be automatically created by NetworkManager         if one of their AvailableConnections was activated.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-team-org.freedesktop.NetworkManager.Device.Team.xml b/introspection/nmdbus-device-team-org.freedesktop.NetworkManager.Device.Team.xml
new file mode 100644
index 00000000..6d6ae5aa
--- /dev/null
+++ b/introspection/nmdbus-device-team-org.freedesktop.NetworkManager.Device.Team.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Team">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Team.top_of_page">org.freedesktop.NetworkManager.Device.Team</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Team.top_of_page"><primary sortas=".Device.Team">org.freedesktop.NetworkManager.Device.Team</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Team</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Team.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Team.HwAddress">HwAddress</link>  readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Team.Carrier">Carrier</link>    readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Team.Slaves">Slaves</link>     readable   ao
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Team">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Team">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Team.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Team.PropertiesChanged"><primary sortas=".Device.Team::PropertiesChanged">org.freedesktop.NetworkManager.Device.Team::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Team">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Team.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Team.HwAddress"><primary sortas=".Device.Team:HwAddress">org.freedesktop.NetworkManager.Device.Team:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>Hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Team.Carrier">
+  <title>The "Carrier" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Team.Carrier"><primary sortas=".Device.Team:Carrier">org.freedesktop.NetworkManager.Device.Team:Carrier</primary></indexterm>
+<programlisting>
+Carrier  readable   b
+</programlisting>
+<para>Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Team.Slaves">
+  <title>The "Slaves" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Team.Slaves"><primary sortas=".Device.Team:Slaves">org.freedesktop.NetworkManager.Device.Team:Slaves</primary></indexterm>
+<programlisting>
+Slaves  readable   ao
+</programlisting>
+<para>Array of object paths representing devices which are currently  slaved to this device.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-tun-org.freedesktop.NetworkManager.Device.Tun.xml b/introspection/nmdbus-device-tun-org.freedesktop.NetworkManager.Device.Tun.xml
new file mode 100644
index 00000000..c676e395
--- /dev/null
+++ b/introspection/nmdbus-device-tun-org.freedesktop.NetworkManager.Device.Tun.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Tun">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Tun.top_of_page">org.freedesktop.NetworkManager.Device.Tun</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Tun.top_of_page"><primary sortas=".Device.Tun">org.freedesktop.NetworkManager.Device.Tun</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Tun</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Tun.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Owner">Owner</link>       readable   x
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Group">Group</link>       readable   x
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Mode">Mode</link>        readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.NoPi">NoPi</link>        readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.VnetHdr">VnetHdr</link>     readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.MultiQueue">MultiQueue</link>  readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.HwAddress">HwAddress</link>   readable   s
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Tun">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Tun">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Tun.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Tun.PropertiesChanged"><primary sortas=".Device.Tun::PropertiesChanged">org.freedesktop.NetworkManager.Device.Tun::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Tun">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Owner">
+  <title>The "Owner" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Owner"><primary sortas=".Device.Tun:Owner">org.freedesktop.NetworkManager.Device.Tun:Owner</primary></indexterm>
+<programlisting>
+Owner  readable   x
+</programlisting>
+<para>The uid of the tunnel owner, or -1 if it has no owner.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Group">
+  <title>The "Group" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Group"><primary sortas=".Device.Tun:Group">org.freedesktop.NetworkManager.Device.Tun:Group</primary></indexterm>
+<programlisting>
+Group  readable   x
+</programlisting>
+<para>The gid of the tunnel group, or -1 if it has no owner.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Mode">
+  <title>The "Mode" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Mode"><primary sortas=".Device.Tun:Mode">org.freedesktop.NetworkManager.Device.Tun:Mode</primary></indexterm>
+<programlisting>
+Mode  readable   s
+</programlisting>
+<para>The tunnel mode, either "tun" or "tap".</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.NoPi">
+  <title>The "NoPi" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.NoPi"><primary sortas=".Device.Tun:NoPi">org.freedesktop.NetworkManager.Device.Tun:NoPi</primary></indexterm>
+<programlisting>
+NoPi  readable   b
+</programlisting>
+<para>The tunnel's "TUN_NO_PI" flag; true if no protocol info is  prepended to the tunnel packets.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.VnetHdr">
+  <title>The "VnetHdr" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.VnetHdr"><primary sortas=".Device.Tun:VnetHdr">org.freedesktop.NetworkManager.Device.Tun:VnetHdr</primary></indexterm>
+<programlisting>
+VnetHdr  readable   b
+</programlisting>
+<para>The tunnel's "TUN_VNET_HDR" flag; true if the tunnel packets  include a virtio network header.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.MultiQueue">
+  <title>The "MultiQueue" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.MultiQueue"><primary sortas=".Device.Tun:MultiQueue">org.freedesktop.NetworkManager.Device.Tun:MultiQueue</primary></indexterm>
+<programlisting>
+MultiQueue  readable   b
+</programlisting>
+<para>The tunnel's "TUN_TAP_MQ" flag; true if callers can connect to         the tap device multiple times, for multiple send/receive         queues.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Tun.HwAddress"><primary sortas=".Device.Tun:HwAddress">org.freedesktop.NetworkManager.Device.Tun:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>Hardware address of the device.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-veth-org.freedesktop.NetworkManager.Device.Veth.xml b/introspection/nmdbus-device-veth-org.freedesktop.NetworkManager.Device.Veth.xml
new file mode 100644
index 00000000..f1e1d03a
--- /dev/null
+++ b/introspection/nmdbus-device-veth-org.freedesktop.NetworkManager.Device.Veth.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Veth">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Veth.top_of_page">org.freedesktop.NetworkManager.Device.Veth</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Veth.top_of_page"><primary sortas=".Device.Veth">org.freedesktop.NetworkManager.Device.Veth</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Veth</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Veth.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Veth.Peer">Peer</link>  readable   o
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Veth">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Veth">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Veth.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Veth.PropertiesChanged"><primary sortas=".Device.Veth::PropertiesChanged">org.freedesktop.NetworkManager.Device.Veth::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Veth">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Veth.Peer">
+  <title>The "Peer" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Veth.Peer"><primary sortas=".Device.Veth:Peer">org.freedesktop.NetworkManager.Device.Veth:Peer</primary></indexterm>
+<programlisting>
+Peer  readable   o
+</programlisting>
+<para>The object path of the device's peer.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-vlan-org.freedesktop.NetworkManager.Device.Vlan.xml b/introspection/nmdbus-device-vlan-org.freedesktop.NetworkManager.Device.Vlan.xml
new file mode 100644
index 00000000..fd07a398
--- /dev/null
+++ b/introspection/nmdbus-device-vlan-org.freedesktop.NetworkManager.Device.Vlan.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Vlan">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Vlan.top_of_page">org.freedesktop.NetworkManager.Device.Vlan</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Vlan.top_of_page"><primary sortas=".Device.Vlan">org.freedesktop.NetworkManager.Device.Vlan</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Vlan</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Vlan.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.HwAddress">HwAddress</link>  readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.Carrier">Carrier</link>    readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.Parent">Parent</link>     readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.VlanId">VlanId</link>     readable   u
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Vlan">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Vlan">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Vlan.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Vlan.PropertiesChanged"><primary sortas=".Device.Vlan::PropertiesChanged">org.freedesktop.NetworkManager.Device.Vlan::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Vlan">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.HwAddress"><primary sortas=".Device.Vlan:HwAddress">org.freedesktop.NetworkManager.Device.Vlan:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>Hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.Carrier">
+  <title>The "Carrier" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.Carrier"><primary sortas=".Device.Vlan:Carrier">org.freedesktop.NetworkManager.Device.Vlan:Carrier</primary></indexterm>
+<programlisting>
+Carrier  readable   b
+</programlisting>
+<para>Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.Parent">
+  <title>The "Parent" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.Parent"><primary sortas=".Device.Vlan:Parent">org.freedesktop.NetworkManager.Device.Vlan:Parent</primary></indexterm>
+<programlisting>
+Parent  readable   o
+</programlisting>
+<para>Object path of the parent device of this VLAN device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.VlanId">
+  <title>The "VlanId" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.VlanId"><primary sortas=".Device.Vlan:VlanId">org.freedesktop.NetworkManager.Device.Vlan:VlanId</primary></indexterm>
+<programlisting>
+VlanId  readable   u
+</programlisting>
+<para>The VLAN ID of this VLAN interface.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-vxlan-org.freedesktop.NetworkManager.Device.Vxlan.xml b/introspection/nmdbus-device-vxlan-org.freedesktop.NetworkManager.Device.Vxlan.xml
new file mode 100644
index 00000000..b755dcb2
--- /dev/null
+++ b/introspection/nmdbus-device-vxlan-org.freedesktop.NetworkManager.Device.Vxlan.xml
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Vxlan">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Vxlan.top_of_page">org.freedesktop.NetworkManager.Device.Vxlan</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Vxlan.top_of_page"><primary sortas=".Device.Vxlan">org.freedesktop.NetworkManager.Device.Vxlan</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Vxlan</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Vxlan.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Parent">Parent</link>      readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.HwAddress">HwAddress</link>   readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Id">Id</link>          readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Group">Group</link>       readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Local">Local</link>       readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Tos">Tos</link>         readable   y
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Ttl">Ttl</link>         readable   y
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Learning">Learning</link>    readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Ageing">Ageing</link>      readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Limit">Limit</link>       readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.DstPort">DstPort</link>     readable   q
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.SrcPortMin">SrcPortMin</link>  readable   q
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.SrcPortMax">SrcPortMax</link>  readable   q
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Proxy">Proxy</link>       readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Rsc">Rsc</link>         readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.L2miss">L2miss</link>      readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.L3miss">L3miss</link>      readable   b
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Vxlan">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Vxlan">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Vxlan.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Vxlan.PropertiesChanged"><primary sortas=".Device.Vxlan::PropertiesChanged">org.freedesktop.NetworkManager.Device.Vxlan::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Vxlan">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Parent">
+  <title>The "Parent" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Parent"><primary sortas=".Device.Vxlan:Parent">org.freedesktop.NetworkManager.Device.Vxlan:Parent</primary></indexterm>
+<programlisting>
+Parent  readable   o
+</programlisting>
+<para>The object path of the parent device (if the VXLAN is not  purely internal to this host).</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.HwAddress"><primary sortas=".Device.Vxlan:HwAddress">org.freedesktop.NetworkManager.Device.Vxlan:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>Hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Id">
+  <title>The "Id" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Id"><primary sortas=".Device.Vxlan:Id">org.freedesktop.NetworkManager.Device.Vxlan:Id</primary></indexterm>
+<programlisting>
+Id  readable   u
+</programlisting>
+<para>The VXLAN Network Identifier (VNI).</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Group">
+  <title>The "Group" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Group"><primary sortas=".Device.Vxlan:Group">org.freedesktop.NetworkManager.Device.Vxlan:Group</primary></indexterm>
+<programlisting>
+Group  readable   s
+</programlisting>
+<para>The IP (v4 or v6) multicast group used to communicate with other physical  hosts on this VXLAN.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Local">
+  <title>The "Local" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Local"><primary sortas=".Device.Vxlan:Local">org.freedesktop.NetworkManager.Device.Vxlan:Local</primary></indexterm>
+<programlisting>
+Local  readable   s
+</programlisting>
+<para>The local IPv4 or IPv6 address to use when sending VXLAN packets to other  physical hosts.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Tos">
+  <title>The "Tos" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Tos"><primary sortas=".Device.Vxlan:Tos">org.freedesktop.NetworkManager.Device.Vxlan:Tos</primary></indexterm>
+<programlisting>
+Tos  readable   y
+</programlisting>
+<para>The value to use in the IP ToS field for VXLAN packets sent to  other physical hosts.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Ttl">
+  <title>The "Ttl" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Ttl"><primary sortas=".Device.Vxlan:Ttl">org.freedesktop.NetworkManager.Device.Vxlan:Ttl</primary></indexterm>
+<programlisting>
+Ttl  readable   y
+</programlisting>
+<para>The value to use in the IP TTL field for VXLAN packets sent to  other physical hosts.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Learning">
+  <title>The "Learning" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Learning"><primary sortas=".Device.Vxlan:Learning">org.freedesktop.NetworkManager.Device.Vxlan:Learning</primary></indexterm>
+<programlisting>
+Learning  readable   b
+</programlisting>
+<para>True if the VXLAN dynamically learns remote IP addresses.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Ageing">
+  <title>The "Ageing" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Ageing"><primary sortas=".Device.Vxlan:Ageing">org.freedesktop.NetworkManager.Device.Vxlan:Ageing</primary></indexterm>
+<programlisting>
+Ageing  readable   u
+</programlisting>
+<para>The interval in seconds at which the kernel purges stale         cached addresses.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Limit">
+  <title>The "Limit" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Limit"><primary sortas=".Device.Vxlan:Limit">org.freedesktop.NetworkManager.Device.Vxlan:Limit</primary></indexterm>
+<programlisting>
+Limit  readable   u
+</programlisting>
+<para>The maximum number of entries that can be added to the VXLAN's  forwarding table.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.DstPort">
+  <title>The "DstPort" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.DstPort"><primary sortas=".Device.Vxlan:DstPort">org.freedesktop.NetworkManager.Device.Vxlan:DstPort</primary></indexterm>
+<programlisting>
+DstPort  readable   q
+</programlisting>
+<para>Destination port for outgoing VXLAN packets.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.SrcPortMin">
+  <title>The "SrcPortMin" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.SrcPortMin"><primary sortas=".Device.Vxlan:SrcPortMin">org.freedesktop.NetworkManager.Device.Vxlan:SrcPortMin</primary></indexterm>
+<programlisting>
+SrcPortMin  readable   q
+</programlisting>
+<para>The lowest source port number to use for outgoing VXLAN packets.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.SrcPortMax">
+  <title>The "SrcPortMax" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.SrcPortMax"><primary sortas=".Device.Vxlan:SrcPortMax">org.freedesktop.NetworkManager.Device.Vxlan:SrcPortMax</primary></indexterm>
+<programlisting>
+SrcPortMax  readable   q
+</programlisting>
+<para>The highest source port number to use for outgoing VXLAN packets.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Proxy">
+  <title>The "Proxy" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Proxy"><primary sortas=".Device.Vxlan:Proxy">org.freedesktop.NetworkManager.Device.Vxlan:Proxy</primary></indexterm>
+<programlisting>
+Proxy  readable   b
+</programlisting>
+<para>True if the VXLAN is implementing DOVE ARP proxying for remote         clients.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Rsc">
+  <title>The "Rsc" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Rsc"><primary sortas=".Device.Vxlan:Rsc">org.freedesktop.NetworkManager.Device.Vxlan:Rsc</primary></indexterm>
+<programlisting>
+Rsc  readable   b
+</programlisting>
+<para>True if the VXLAN is implementing DOVE route short-circuiting  of known remote IP addresses.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.L2miss">
+  <title>The "L2miss" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.L2miss"><primary sortas=".Device.Vxlan:L2miss">org.freedesktop.NetworkManager.Device.Vxlan:L2miss</primary></indexterm>
+<programlisting>
+L2miss  readable   b
+</programlisting>
+<para>True if the VXLAN will emit netlink notifications of L2 switch         misses.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.L3miss">
+  <title>The "L3miss" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.L3miss"><primary sortas=".Device.Vxlan:L3miss">org.freedesktop.NetworkManager.Device.Vxlan:L3miss</primary></indexterm>
+<programlisting>
+L3miss  readable   b
+</programlisting>
+<para>True if the VXLAN will emit netlink notifications of L3 switch         misses.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-wifi-org.freedesktop.NetworkManager.Device.Wireless.xml b/introspection/nmdbus-device-wifi-org.freedesktop.NetworkManager.Device.Wireless.xml
new file mode 100644
index 00000000..1951a6f5
--- /dev/null
+++ b/introspection/nmdbus-device-wifi-org.freedesktop.NetworkManager.Device.Wireless.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.Wireless">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Wireless.top_of_page">org.freedesktop.NetworkManager.Device.Wireless</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-Wireless.top_of_page"><primary sortas="DeviceWifi">org.freedesktop.NetworkManager.Device.Wireless</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.Wireless</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsynopsisdiv role="synopsis">
+    <title role="synopsis.title">Methods</title>
+    <synopsis>
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.GetAccessPoints">GetAccessPoints</link>    (OUT ao    access_points);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.GetAllAccessPoints">GetAllAccessPoints</link> (OUT ao    access_points);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.RequestScan">RequestScan</link>        (IN  a{sv} options);
+</synopsis>
+  </refsynopsisdiv>
+  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.PropertiesChanged">PropertiesChanged</link>  (a{sv} properties);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.AccessPointAdded">AccessPointAdded</link>   (o     access_point);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.AccessPointRemoved">AccessPointRemoved</link> (o     access_point);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.HwAddress">HwAddress</link>             readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.PermHwAddress">PermHwAddress</link>         readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.Mode">Mode</link>                  readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.Bitrate">Bitrate</link>               readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.AccessPoints">AccessPoints</link>          readable   ao
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.ActiveAccessPoint">ActiveAccessPoint</link>     readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.WirelessCapabilities">WirelessCapabilities</link>  readable   u
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-Wireless">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-methods-org.freedesktop.NetworkManager.Device.Wireless">
+  <title role="details.title">Method Details</title>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.GetAccessPoints">
+  <title>The GetAccessPoints() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.GetAccessPoints"><primary sortas="DeviceWifi.GetAccessPoints">org.freedesktop.NetworkManager.Device.Wireless.GetAccessPoints()</primary></indexterm>
+<programlisting>
+GetAccessPoints (OUT ao access_points);
+</programlisting>
+<para>DEPRECATED.  Get the list of access points visible to this device.  Note         that this list does not include access points which hide their SSID.  To         retrieve a list of all access points (including hidden ones) use the         GetAllAccessPoints() method.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT ao <parameter>access_points</parameter></literal>:</term>
+  <listitem><para>List of access point object paths.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.GetAllAccessPoints">
+  <title>The GetAllAccessPoints() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.GetAllAccessPoints"><primary sortas="DeviceWifi.GetAllAccessPoints">org.freedesktop.NetworkManager.Device.Wireless.GetAllAccessPoints()</primary></indexterm>
+<programlisting>
+GetAllAccessPoints (OUT ao access_points);
+</programlisting>
+<para>Get the list of all access points visible to this device, including         hidden ones for which the SSID is not yet known.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT ao <parameter>access_points</parameter></literal>:</term>
+  <listitem><para>List of access point object paths.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.RequestScan">
+  <title>The RequestScan() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.RequestScan"><primary sortas="DeviceWifi.RequestScan">org.freedesktop.NetworkManager.Device.Wireless.RequestScan()</primary></indexterm>
+<programlisting>
+RequestScan (IN  a{sv} options);
+</programlisting>
+<para>Request the device to scan</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sv} <parameter>options</parameter></literal>:</term>
+  <listitem><para>Options of scan.           Currently 'ssids' option with value of "aay" type is supported.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.Wireless">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.PropertiesChanged"><primary sortas="DeviceWifi::PropertiesChanged">org.freedesktop.NetworkManager.Device.Wireless::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para>Emitted when the wireless device's properties changed.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary containing the FIXME: check changed parameters.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.AccessPointAdded">
+  <title>The "AccessPointAdded" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.AccessPointAdded"><primary sortas="DeviceWifi::AccessPointAdded">org.freedesktop.NetworkManager.Device.Wireless::AccessPointAdded</primary></indexterm>
+<programlisting>
+AccessPointAdded (o access_point);
+</programlisting>
+<para>Emitted when a new access point is found by the device.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>o <parameter>access_point</parameter></literal>:</term>
+  <listitem><para>The object path of the newly found access point.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.AccessPointRemoved">
+  <title>The "AccessPointRemoved" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.AccessPointRemoved"><primary sortas="DeviceWifi::AccessPointRemoved">org.freedesktop.NetworkManager.Device.Wireless::AccessPointRemoved</primary></indexterm>
+<programlisting>
+AccessPointRemoved (o access_point);
+</programlisting>
+<para>Emitted when an access point disappears from view of the device.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>o <parameter>access_point</parameter></literal>:</term>
+  <listitem><para>The object path of the access point that has disappeared.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.Wireless">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.HwAddress"><primary sortas="DeviceWifi:HwAddress">org.freedesktop.NetworkManager.Device.Wireless:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>The active hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.PermHwAddress">
+  <title>The "PermHwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.PermHwAddress"><primary sortas="DeviceWifi:PermHwAddress">org.freedesktop.NetworkManager.Device.Wireless:PermHwAddress</primary></indexterm>
+<programlisting>
+PermHwAddress  readable   s
+</programlisting>
+<para>The permanent hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.Mode">
+  <title>The "Mode" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.Mode"><primary sortas="DeviceWifi:Mode">org.freedesktop.NetworkManager.Device.Wireless:Mode</primary></indexterm>
+<programlisting>
+Mode  readable   u
+</programlisting>
+<para>The operating mode of the wireless device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.Bitrate">
+  <title>The "Bitrate" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.Bitrate"><primary sortas="DeviceWifi:Bitrate">org.freedesktop.NetworkManager.Device.Wireless:Bitrate</primary></indexterm>
+<programlisting>
+Bitrate  readable   u
+</programlisting>
+<para>The bit rate currently used by the wireless device, in kilobits/second (Kb/s).</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.AccessPoints">
+  <title>The "AccessPoints" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.AccessPoints"><primary sortas="DeviceWifi:AccessPoints">org.freedesktop.NetworkManager.Device.Wireless:AccessPoints</primary></indexterm>
+<programlisting>
+AccessPoints  readable   ao
+</programlisting>
+<para>List of object paths of access point visible to this wireless device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.ActiveAccessPoint">
+  <title>The "ActiveAccessPoint" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.ActiveAccessPoint"><primary sortas="DeviceWifi:ActiveAccessPoint">org.freedesktop.NetworkManager.Device.Wireless:ActiveAccessPoint</primary></indexterm>
+<programlisting>
+ActiveAccessPoint  readable   o
+</programlisting>
+<para>Object path of the access point currently used by the wireless device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.WirelessCapabilities">
+  <title>The "WirelessCapabilities" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.WirelessCapabilities"><primary sortas="DeviceWifi:WirelessCapabilities">org.freedesktop.NetworkManager.Device.Wireless:WirelessCapabilities</primary></indexterm>
+<programlisting>
+WirelessCapabilities  readable   u
+</programlisting>
+<para>The capabilities of the wireless device.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-device-wimax-org.freedesktop.NetworkManager.Device.WiMax.xml b/introspection/nmdbus-device-wimax-org.freedesktop.NetworkManager.Device.WiMax.xml
new file mode 100644
index 00000000..5ad7234a
--- /dev/null
+++ b/introspection/nmdbus-device-wimax-org.freedesktop.NetworkManager.Device.WiMax.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Device.WiMax">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Device-WiMax.top_of_page">org.freedesktop.NetworkManager.Device.WiMax</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Device-WiMax.top_of_page"><primary sortas=".Device.WiMax">org.freedesktop.NetworkManager.Device.WiMax</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Device.WiMax</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsynopsisdiv role="synopsis">
+    <title role="synopsis.title">Methods</title>
+    <synopsis>
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Device-WiMax.GetNspList">GetNspList</link> (OUT ao nsps);
+</synopsis>
+  </refsynopsisdiv>
+  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-WiMax.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-WiMax.NspAdded">NspAdded</link>          (o     nsp);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Device-WiMax.NspRemoved">NspRemoved</link>        (o     nsp);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.Nsps">Nsps</link>             readable   ao
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.HwAddress">HwAddress</link>        readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.CenterFrequency">CenterFrequency</link>  readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.Rssi">Rssi</link>             readable   i
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.Cinr">Cinr</link>             readable   i
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.TxPower">TxPower</link>          readable   i
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.Bsid">Bsid</link>             readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.ActiveNsp">ActiveNsp</link>        readable   o
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Device-WiMax">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-methods-org.freedesktop.NetworkManager.Device.WiMax">
+  <title role="details.title">Method Details</title>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Device-WiMax.GetNspList">
+  <title>The GetNspList() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Device-WiMax.GetNspList"><primary sortas=".Device.WiMax.GetNspList">org.freedesktop.NetworkManager.Device.WiMax.GetNspList()</primary></indexterm>
+<programlisting>
+GetNspList (OUT ao nsps);
+</programlisting>
+<para>Get the list of NSPs visible to this device.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT ao <parameter>nsps</parameter></literal>:</term>
+  <listitem><para>List of NSP object paths</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Device.WiMax">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-WiMax.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-WiMax.PropertiesChanged"><primary sortas=".Device.WiMax::PropertiesChanged">org.freedesktop.NetworkManager.Device.WiMax::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para>Emitted when the WiMax device's properties changed.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-WiMax.NspAdded">
+  <title>The "NspAdded" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-WiMax.NspAdded"><primary sortas=".Device.WiMax::NspAdded">org.freedesktop.NetworkManager.Device.WiMax::NspAdded</primary></indexterm>
+<programlisting>
+NspAdded (o nsp);
+</programlisting>
+<para>Emitted when a new NSP is found by the device.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>o <parameter>nsp</parameter></literal>:</term>
+  <listitem><para>The object path of the newly found NSP.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Device-WiMax.NspRemoved">
+  <title>The "NspRemoved" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Device-WiMax.NspRemoved"><primary sortas=".Device.WiMax::NspRemoved">org.freedesktop.NetworkManager.Device.WiMax::NspRemoved</primary></indexterm>
+<programlisting>
+NspRemoved (o nsp);
+</programlisting>
+<para>Emitted when an NSP disappears from view of the device.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>o <parameter>nsp</parameter></literal>:</term>
+  <listitem><para>The object path of the NSP that has disappeared.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Device.WiMax">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.Nsps">
+  <title>The "Nsps" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.Nsps"><primary sortas=".Device.WiMax:Nsps">org.freedesktop.NetworkManager.Device.WiMax:Nsps</primary></indexterm>
+<programlisting>
+Nsps  readable   ao
+</programlisting>
+<para>List of object paths of Network Service Providers (NSPs) visible to this         WiMAX device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.HwAddress">
+  <title>The "HwAddress" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.HwAddress"><primary sortas=".Device.WiMax:HwAddress">org.freedesktop.NetworkManager.Device.WiMax:HwAddress</primary></indexterm>
+<programlisting>
+HwAddress  readable   s
+</programlisting>
+<para>Hardware address of the device.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.CenterFrequency">
+  <title>The "CenterFrequency" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.CenterFrequency"><primary sortas=".Device.WiMax:CenterFrequency">org.freedesktop.NetworkManager.Device.WiMax:CenterFrequency</primary></indexterm>
+<programlisting>
+CenterFrequency  readable   u
+</programlisting>
+<para>Center frequency (in KHz) of the radio channel the device is using to         communicate with the network when connected.  Has no meaning when the         device is not connected.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.Rssi">
+  <title>The "Rssi" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.Rssi"><primary sortas=".Device.WiMax:Rssi">org.freedesktop.NetworkManager.Device.WiMax:Rssi</primary></indexterm>
+<programlisting>
+Rssi  readable   i
+</programlisting>
+<para>RSSI of the current radio link in dBm.  This value indicates how strong         the raw received RF signal from the base station is, but does not         indicate the overall quality of the radio link.  Has no meaning when the         device is not connected.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.Cinr">
+  <title>The "Cinr" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.Cinr"><primary sortas=".Device.WiMax:Cinr">org.freedesktop.NetworkManager.Device.WiMax:Cinr</primary></indexterm>
+<programlisting>
+Cinr  readable   i
+</programlisting>
+<para>CINR (Carrier to Interference + Noise Ratio) of the current radio link         in dB.  CINR is a more accurate measure of radio link quality.  Has no         meaning when the device is not connected.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.TxPower">
+  <title>The "TxPower" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.TxPower"><primary sortas=".Device.WiMax:TxPower">org.freedesktop.NetworkManager.Device.WiMax:TxPower</primary></indexterm>
+<programlisting>
+TxPower  readable   i
+</programlisting>
+<para>Average power of the last burst transmitted by the device, in units of         0.5 dBm.  i.e. a TxPower of -11 represents an actual device TX power of         -5.5 dBm.  Has no meaning when the device is not connected.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.Bsid">
+  <title>The "Bsid" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.Bsid"><primary sortas=".Device.WiMax:Bsid">org.freedesktop.NetworkManager.Device.WiMax:Bsid</primary></indexterm>
+<programlisting>
+Bsid  readable   s
+</programlisting>
+<para>The ID of the serving base station as received from the network.  Has         no meaning when the device is not connected.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.ActiveNsp">
+  <title>The "ActiveNsp" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Device-WiMax.ActiveNsp"><primary sortas=".Device.WiMax:ActiveNsp">org.freedesktop.NetworkManager.Device.WiMax:ActiveNsp</primary></indexterm>
+<programlisting>
+ActiveNsp  readable   o
+</programlisting>
+<para>Object path of the NSP currently used by the WiMax device.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-dhcp4-config-org.freedesktop.NetworkManager.DHCP4Config.xml b/introspection/nmdbus-dhcp4-config-org.freedesktop.NetworkManager.DHCP4Config.xml
new file mode 100644
index 00000000..5c144868
--- /dev/null
+++ b/introspection/nmdbus-dhcp4-config-org.freedesktop.NetworkManager.DHCP4Config.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.DHCP4Config">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-DHCP4Config.top_of_page">org.freedesktop.NetworkManager.DHCP4Config</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-DHCP4Config.top_of_page"><primary sortas="Dhcp4Config">org.freedesktop.NetworkManager.DHCP4Config</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.DHCP4Config</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-DHCP4Config.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-DHCP4Config.Options">Options</link>  readable   a{sv}
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-DHCP4Config">
+  <title role="desc.title">Description</title>
+  <para>Options and configuration returned by the IPv4 DHCP server.</para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.DHCP4Config">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-DHCP4Config.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-DHCP4Config.PropertiesChanged"><primary sortas="Dhcp4Config::PropertiesChanged">org.freedesktop.NetworkManager.DHCP4Config::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.DHCP4Config">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-DHCP4Config.Options">
+  <title>The "Options" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-DHCP4Config.Options"><primary sortas="Dhcp4Config:Options">org.freedesktop.NetworkManager.DHCP4Config:Options</primary></indexterm>
+<programlisting>
+Options  readable   a{sv}
+</programlisting>
+<para>Configuration options returned by a DHCP server, if any.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-dhcp6-config-org.freedesktop.NetworkManager.DHCP6Config.xml b/introspection/nmdbus-dhcp6-config-org.freedesktop.NetworkManager.DHCP6Config.xml
new file mode 100644
index 00000000..65c12825
--- /dev/null
+++ b/introspection/nmdbus-dhcp6-config-org.freedesktop.NetworkManager.DHCP6Config.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.DHCP6Config">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-DHCP6Config.top_of_page">org.freedesktop.NetworkManager.DHCP6Config</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-DHCP6Config.top_of_page"><primary sortas="Dhcp6Config">org.freedesktop.NetworkManager.DHCP6Config</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.DHCP6Config</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-DHCP6Config.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-DHCP6Config.Options">Options</link>  readable   a{sv}
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-DHCP6Config">
+  <title role="desc.title">Description</title>
+  <para>Options and configuration returned by the IPv6 DHCP server.</para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.DHCP6Config">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-DHCP6Config.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-DHCP6Config.PropertiesChanged"><primary sortas="Dhcp6Config::PropertiesChanged">org.freedesktop.NetworkManager.DHCP6Config::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.DHCP6Config">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-DHCP6Config.Options">
+  <title>The "Options" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-DHCP6Config.Options"><primary sortas="Dhcp6Config:Options">org.freedesktop.NetworkManager.DHCP6Config:Options</primary></indexterm>
+<programlisting>
+Options  readable   a{sv}
+</programlisting>
+<para>Configuration options returned by a DHCP server, if any.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-ip4-config-org.freedesktop.NetworkManager.IP4Config.xml b/introspection/nmdbus-ip4-config-org.freedesktop.NetworkManager.IP4Config.xml
new file mode 100644
index 00000000..08ddf98a
--- /dev/null
+++ b/introspection/nmdbus-ip4-config-org.freedesktop.NetworkManager.IP4Config.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.IP4Config">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-IP4Config.top_of_page">org.freedesktop.NetworkManager.IP4Config</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-IP4Config.top_of_page"><primary sortas=".IP4Config">org.freedesktop.NetworkManager.IP4Config</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.IP4Config</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-IP4Config.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Addresses">Addresses</link>    readable   aau
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP4Config.AddressData">AddressData</link>  readable   aa{sv}
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Gateway">Gateway</link>      readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Routes">Routes</link>       readable   aau
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP4Config.RouteData">RouteData</link>    readable   aa{sv}
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Nameservers">Nameservers</link>  readable   au
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Domains">Domains</link>      readable   as
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Searches">Searches</link>     readable   as
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP4Config.DnsOptions">DnsOptions</link>   readable   as
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP4Config.WinsServers">WinsServers</link>  readable   au
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-IP4Config">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.IP4Config">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-IP4Config.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-IP4Config.PropertiesChanged"><primary sortas=".IP4Config::PropertiesChanged">org.freedesktop.NetworkManager.IP4Config::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.IP4Config">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Addresses">
+  <title>The "Addresses" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Addresses"><primary sortas=".IP4Config:Addresses">org.freedesktop.NetworkManager.IP4Config:Addresses</primary></indexterm>
+<programlisting>
+Addresses  readable   aau
+</programlisting>
+<para>Array of arrays of IPv4 address/prefix/gateway.  All 3  elements of each array are in network byte order.  Essentially:  [(addr, prefix, gateway), (addr, prefix, gateway), ...]   Deprecated: use AddressData and Gateway</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP4Config.AddressData">
+  <title>The "AddressData" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP4Config.AddressData"><primary sortas=".IP4Config:AddressData">org.freedesktop.NetworkManager.IP4Config:AddressData</primary></indexterm>
+<programlisting>
+AddressData  readable   aa{sv}
+</programlisting>
+<para>Array of IP address data objects. All addresses will include  "address" (an IP address string), and "prefix" (a uint). Some  addresses may include additional attributes.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Gateway">
+  <title>The "Gateway" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Gateway"><primary sortas=".IP4Config:Gateway">org.freedesktop.NetworkManager.IP4Config:Gateway</primary></indexterm>
+<programlisting>
+Gateway  readable   s
+</programlisting>
+<para>The gateway in use.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Routes">
+  <title>The "Routes" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Routes"><primary sortas=".IP4Config:Routes">org.freedesktop.NetworkManager.IP4Config:Routes</primary></indexterm>
+<programlisting>
+Routes  readable   aau
+</programlisting>
+<para>Arrays of IPv4 route/prefix/next-hop/metric. All 4 elements of  each tuple are in network byte order. 'route' and 'next hop'  are IPv4 addresses, while prefix and metric are simple  unsigned integers. Essentially: [(route, prefix, next-hop,  metric), (route, prefix, next-hop, metric), ...]   Deprecated: use RouteData</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP4Config.RouteData">
+  <title>The "RouteData" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP4Config.RouteData"><primary sortas=".IP4Config:RouteData">org.freedesktop.NetworkManager.IP4Config:RouteData</primary></indexterm>
+<programlisting>
+RouteData  readable   aa{sv}
+</programlisting>
+<para>Array of IP route data objects. All routes will include "dest"  (an IP address string) and "prefix" (a uint). Some routes may  include "next-hop" (an IP address string), "metric" (a uint),  and additional attributes.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Nameservers">
+  <title>The "Nameservers" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Nameservers"><primary sortas=".IP4Config:Nameservers">org.freedesktop.NetworkManager.IP4Config:Nameservers</primary></indexterm>
+<programlisting>
+Nameservers  readable   au
+</programlisting>
+<para>The nameservers in use.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Domains">
+  <title>The "Domains" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Domains"><primary sortas=".IP4Config:Domains">org.freedesktop.NetworkManager.IP4Config:Domains</primary></indexterm>
+<programlisting>
+Domains  readable   as
+</programlisting>
+<para>A list of domains this address belongs to.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Searches">
+  <title>The "Searches" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP4Config.Searches"><primary sortas=".IP4Config:Searches">org.freedesktop.NetworkManager.IP4Config:Searches</primary></indexterm>
+<programlisting>
+Searches  readable   as
+</programlisting>
+<para>A list of dns searches.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP4Config.DnsOptions">
+  <title>The "DnsOptions" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP4Config.DnsOptions"><primary sortas=".IP4Config:DnsOptions">org.freedesktop.NetworkManager.IP4Config:DnsOptions</primary></indexterm>
+<programlisting>
+DnsOptions  readable   as
+</programlisting>
+<para>A list of DNS options that modify the behavior of the DNS  resolver. See resolv.conf(5) manual page for the list of  supported options.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP4Config.WinsServers">
+  <title>The "WinsServers" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP4Config.WinsServers"><primary sortas=".IP4Config:WinsServers">org.freedesktop.NetworkManager.IP4Config:WinsServers</primary></indexterm>
+<programlisting>
+WinsServers  readable   au
+</programlisting>
+<para>The Windows Internet Name Service servers associated with the connection.  Each address is in network byte order.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-ip6-config-org.freedesktop.NetworkManager.IP6Config.xml b/introspection/nmdbus-ip6-config-org.freedesktop.NetworkManager.IP6Config.xml
new file mode 100644
index 00000000..a0e327eb
--- /dev/null
+++ b/introspection/nmdbus-ip6-config-org.freedesktop.NetworkManager.IP6Config.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.IP6Config">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-IP6Config.top_of_page">org.freedesktop.NetworkManager.IP6Config</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-IP6Config.top_of_page"><primary sortas=".IP6Config">org.freedesktop.NetworkManager.IP6Config</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.IP6Config</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-IP6Config.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Addresses">Addresses</link>    readable   a(ayuay)
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP6Config.AddressData">AddressData</link>  readable   aa{sv}
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Gateway">Gateway</link>      readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Routes">Routes</link>       readable   a(ayuayu)
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP6Config.RouteData">RouteData</link>    readable   aa{sv}
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Nameservers">Nameservers</link>  readable   aay
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Domains">Domains</link>      readable   as
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Searches">Searches</link>     readable   as
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-IP6Config.DnsOptions">DnsOptions</link>   readable   as
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-IP6Config">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.IP6Config">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-IP6Config.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-IP6Config.PropertiesChanged"><primary sortas=".IP6Config::PropertiesChanged">org.freedesktop.NetworkManager.IP6Config::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.IP6Config">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Addresses">
+  <title>The "Addresses" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Addresses"><primary sortas=".IP6Config:Addresses">org.freedesktop.NetworkManager.IP6Config:Addresses</primary></indexterm>
+<programlisting>
+Addresses  readable   a(ayuay)
+</programlisting>
+<para>Array of tuples of IPv6 address/prefix/gateway.   Deprecated: use AddressData and Gateway.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP6Config.AddressData">
+  <title>The "AddressData" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP6Config.AddressData"><primary sortas=".IP6Config:AddressData">org.freedesktop.NetworkManager.IP6Config:AddressData</primary></indexterm>
+<programlisting>
+AddressData  readable   aa{sv}
+</programlisting>
+<para>Array of IP address data objects. All addresses will include  "address" (an IP address string), and "prefix" (a uint). Some  addresses may include additional attributes.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Gateway">
+  <title>The "Gateway" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Gateway"><primary sortas=".IP6Config:Gateway">org.freedesktop.NetworkManager.IP6Config:Gateway</primary></indexterm>
+<programlisting>
+Gateway  readable   s
+</programlisting>
+<para>The gateway in use.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Routes">
+  <title>The "Routes" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Routes"><primary sortas=".IP6Config:Routes">org.freedesktop.NetworkManager.IP6Config:Routes</primary></indexterm>
+<programlisting>
+Routes  readable   a(ayuayu)
+</programlisting>
+<para>Tuples of IPv6 route/prefix/next-hop/metric.   Deprecated: use RouteData</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP6Config.RouteData">
+  <title>The "RouteData" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP6Config.RouteData"><primary sortas=".IP6Config:RouteData">org.freedesktop.NetworkManager.IP6Config:RouteData</primary></indexterm>
+<programlisting>
+RouteData  readable   aa{sv}
+</programlisting>
+<para>Array of IP route data objects. All routes will include "dest"  (an IP address string) and "prefix" (a uint). Some routes may  include "next-hop" (an IP address string), "metric" (a uint),  and additional attributes.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Nameservers">
+  <title>The "Nameservers" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Nameservers"><primary sortas=".IP6Config:Nameservers">org.freedesktop.NetworkManager.IP6Config:Nameservers</primary></indexterm>
+<programlisting>
+Nameservers  readable   aay
+</programlisting>
+<para>The nameservers in use.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Domains">
+  <title>The "Domains" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Domains"><primary sortas=".IP6Config:Domains">org.freedesktop.NetworkManager.IP6Config:Domains</primary></indexterm>
+<programlisting>
+Domains  readable   as
+</programlisting>
+<para>A list of domains this address belongs to.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Searches">
+  <title>The "Searches" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP6Config.Searches"><primary sortas=".IP6Config:Searches">org.freedesktop.NetworkManager.IP6Config:Searches</primary></indexterm>
+<programlisting>
+Searches  readable   as
+</programlisting>
+<para>A list of dns searches.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-IP6Config.DnsOptions">
+  <title>The "DnsOptions" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-IP6Config.DnsOptions"><primary sortas=".IP6Config:DnsOptions">org.freedesktop.NetworkManager.IP6Config:DnsOptions</primary></indexterm>
+<programlisting>
+DnsOptions  readable   as
+</programlisting>
+<para>A list of DNS options that modify the behavior of the DNS  resolver. See resolv.conf(5) manual page for the list of  supported options.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-manager-org.freedesktop.NetworkManager.xml b/introspection/nmdbus-manager-org.freedesktop.NetworkManager.xml
new file mode 100644
index 00000000..10cc472e
--- /dev/null
+++ b/introspection/nmdbus-manager-org.freedesktop.NetworkManager.xml
@@ -0,0 +1,532 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager.top_of_page">org.freedesktop.NetworkManager</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager.top_of_page"><primary sortas="Manager">org.freedesktop.NetworkManager</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsynopsisdiv role="synopsis">
+    <title role="synopsis.title">Methods</title>
+    <synopsis>
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.GetDevices">GetDevices</link>               (OUT ao        devices);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.GetAllDevices">GetAllDevices</link>            (OUT ao        devices);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.GetDeviceByIpIface">GetDeviceByIpIface</link>       (IN  s         iface,
+                          OUT o         device);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.ActivateConnection">ActivateConnection</link>       (IN  o         connection,
+                          IN  o         device,
+                          IN  o         specific_object,
+                          OUT o         active_connection);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.AddAndActivateConnection">AddAndActivateConnection</link> (IN  a{sa{sv}} connection,
+                          IN  o         device,
+                          IN  o         specific_object,
+                          OUT o         path,
+                          OUT o         active_connection);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.DeactivateConnection">DeactivateConnection</link>     (IN  o         active_connection);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.Sleep">Sleep</link>                    (IN  b         sleep);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.Enable">Enable</link>                   (IN  b         enable);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.GetPermissions">GetPermissions</link>           (OUT a{ss}     permissions);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.SetLogging">SetLogging</link>               (IN  s         level,
+                          IN  s         domains);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.GetLogging">GetLogging</link>               (OUT s         level,
+                          OUT s         domains);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.CheckConnectivity">CheckConnectivity</link>        (OUT u         connectivity);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager.state">state</link>                    (OUT u         state);
+</synopsis>
+  </refsynopsisdiv>
+  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager.CheckPermissions">CheckPermissions</link>  ();
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager.StateChanged">StateChanged</link>      (u     state);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager.DeviceAdded">DeviceAdded</link>       (o     device_path);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager.DeviceRemoved">DeviceRemoved</link>     (o     device_path);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.Devices">Devices</link>                  readable   ao
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.AllDevices">AllDevices</link>               readable   ao
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.NetworkingEnabled">NetworkingEnabled</link>        readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.WirelessEnabled">WirelessEnabled</link>          readwrite  b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.WirelessHardwareEnabled">WirelessHardwareEnabled</link>  readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.WwanEnabled">WwanEnabled</link>              readwrite  b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.WwanHardwareEnabled">WwanHardwareEnabled</link>      readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.WimaxEnabled">WimaxEnabled</link>             readwrite  b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.WimaxHardwareEnabled">WimaxHardwareEnabled</link>     readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.ActiveConnections">ActiveConnections</link>        readable   ao
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.PrimaryConnection">PrimaryConnection</link>        readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.PrimaryConnectionType">PrimaryConnectionType</link>    readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.Metered">Metered</link>                  readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.ActivatingConnection">ActivatingConnection</link>     readable   o
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.Startup">Startup</link>                  readable   b
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.Version">Version</link>                  readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.State">State</link>                    readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.Connectivity">Connectivity</link>             readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager.GlobalDnsConfiguration">GlobalDnsConfiguration</link>   readwrite  a{sv}
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-methods-org.freedesktop.NetworkManager">
+  <title role="details.title">Method Details</title>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.GetDevices">
+  <title>The GetDevices() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.GetDevices"><primary sortas="Manager.GetDevices">org.freedesktop.NetworkManager.GetDevices()</primary></indexterm>
+<programlisting>
+GetDevices (OUT ao devices);
+</programlisting>
+<para>Get the list of realized network devices.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT ao <parameter>devices</parameter></literal>:</term>
+  <listitem><para>List of object paths of network devices known to the system.  This           list does not include device placeholders (see GetAllDevices()).</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.GetAllDevices">
+  <title>The GetAllDevices() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.GetAllDevices"><primary sortas="Manager.GetAllDevices">org.freedesktop.NetworkManager.GetAllDevices()</primary></indexterm>
+<programlisting>
+GetAllDevices (OUT ao devices);
+</programlisting>
+<para>Get the list of all network devices.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT ao <parameter>devices</parameter></literal>:</term>
+  <listitem><para>List of object paths of network devices and device placeholders           (eg, devices that do not yet exist but which can be automatically           created by NetworkManager if one of their AvailableConnections           was activated).</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.GetDeviceByIpIface">
+  <title>The GetDeviceByIpIface() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.GetDeviceByIpIface"><primary sortas="Manager.GetDeviceByIpIface">org.freedesktop.NetworkManager.GetDeviceByIpIface()</primary></indexterm>
+<programlisting>
+GetDeviceByIpIface (IN  s iface,
+                    OUT o device);
+</programlisting>
+<para>Return the object path of the network device referenced by its IP         interface name.  Note that some devices (usually modems) only have an         IP interface name when they are connected.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN s <parameter>iface</parameter></literal>:</term>
+  <listitem><para>Interface name of the device to find.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT o <parameter>device</parameter></literal>:</term>
+  <listitem><para>Object path of the network device.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.ActivateConnection">
+  <title>The ActivateConnection() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.ActivateConnection"><primary sortas="Manager.ActivateConnection">org.freedesktop.NetworkManager.ActivateConnection()</primary></indexterm>
+<programlisting>
+ActivateConnection (IN  o connection,
+                    IN  o device,
+                    IN  o specific_object,
+                    OUT o active_connection);
+</programlisting>
+<para>Activate a connection using the supplied device.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN o <parameter>connection</parameter></literal>:</term>
+  <listitem><para>The connection to activate.  If "/" is given, a valid device path must           be given, and NetworkManager picks the best connection to activate for           the given device.  VPN connections must always pass a valid connection           path.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN o <parameter>device</parameter></literal>:</term>
+  <listitem><para>The object path of device to be activated for physical connections.           This parameter is ignored for VPN connections, because the           specific_object (if provided) specifies the device to use.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN o <parameter>specific_object</parameter></literal>:</term>
+  <listitem><para>The path of a connection-type-specific object this activation should use.            This parameter is currently ignored for wired and mobile broadband connections,           and the value of "/" should be used (ie, no specific object).  For WiFi           connections, pass the object path of a specific AP from the card's scan           list, or "/" to pick an AP automatically.  For VPN connections, pass           the object path of an ActiveConnection object that should serve as the           "base" connection (to which the VPN connections lifetime will be tied),           or pass "/" and NM will automatically use the current default device.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT o <parameter>active_connection</parameter></literal>:</term>
+  <listitem><para>The path of the active connection object representing this active connection.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.AddAndActivateConnection">
+  <title>The AddAndActivateConnection() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.AddAndActivateConnection"><primary sortas="Manager.AddAndActivateConnection">org.freedesktop.NetworkManager.AddAndActivateConnection()</primary></indexterm>
+<programlisting>
+AddAndActivateConnection (IN  a{sa{sv}} connection,
+                          IN  o         device,
+                          IN  o         specific_object,
+                          OUT o         path,
+                          OUT o         active_connection);
+</programlisting>
+<para>Adds a new connection using the given details (if any) as a template         (automatically filling in missing settings with the capabilities of the         given device and specific object), then activate the new connection.         Cannot be used for VPN connections at this time.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>connection</parameter></literal>:</term>
+  <listitem><para>Connection settings and properties; if incomplete missing settings will           be automatically completed using the given device and specific object.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN o <parameter>device</parameter></literal>:</term>
+  <listitem><para>The object path of device to be activated using the given connection.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN o <parameter>specific_object</parameter></literal>:</term>
+  <listitem><para>The path of a connection-type-specific object this activation should use.            This parameter is currently ignored for wired and mobile broadband connections,           and the value of "/" should be used (ie, no specific object).  For WiFi           connections, pass the object path of a specific AP from the card's scan           list, which will be used to complete the details of the newly added           connection.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT o <parameter>path</parameter></literal>:</term>
+  <listitem><para>Object path of the new connection that was just added.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT o <parameter>active_connection</parameter></literal>:</term>
+  <listitem><para>The path of the active connection object representing this active connection.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.DeactivateConnection">
+  <title>The DeactivateConnection() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.DeactivateConnection"><primary sortas="Manager.DeactivateConnection">org.freedesktop.NetworkManager.DeactivateConnection()</primary></indexterm>
+<programlisting>
+DeactivateConnection (IN  o active_connection);
+</programlisting>
+<para>Deactivate an active connection.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN o <parameter>active_connection</parameter></literal>:</term>
+  <listitem><para>The currently active connection to deactivate.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.Sleep">
+  <title>The Sleep() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.Sleep"><primary sortas="Manager.Sleep">org.freedesktop.NetworkManager.Sleep()</primary></indexterm>
+<programlisting>
+Sleep (IN  b sleep);
+</programlisting>
+<para>Control the NetworkManager daemon's sleep state.  When asleep, all         interfaces that it manages are deactivated.  When awake, devices are         available to be activated.  This command should not be called directly         by users or clients; it is intended for system suspend/resume tracking.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN b <parameter>sleep</parameter></literal>:</term>
+  <listitem><para>Indicates whether the NetworkManager daemon should sleep or wake.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.Enable">
+  <title>The Enable() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.Enable"><primary sortas="Manager.Enable">org.freedesktop.NetworkManager.Enable()</primary></indexterm>
+<programlisting>
+Enable (IN  b enable);
+</programlisting>
+<para>Control whether overall networking is enabled or disabled.  When         disabled, all interfaces that NM manages are deactivated.  When enabled,         all managed interfaces are re-enabled and available to be activated.         This command should be used by clients that provide to users the ability         to enable/disable all networking.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN b <parameter>enable</parameter></literal>:</term>
+  <listitem><para>If FALSE, indicates that all networking should be disabled.  If TRUE,           indicates that NetworkManager should begin managing network devices.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.GetPermissions">
+  <title>The GetPermissions() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.GetPermissions"><primary sortas="Manager.GetPermissions">org.freedesktop.NetworkManager.GetPermissions()</primary></indexterm>
+<programlisting>
+GetPermissions (OUT a{ss} permissions);
+</programlisting>
+<para>Returns the permissions a caller has for various authenticated operations         that NetworkManager provides, like Enable/Disable networking, changing         WiFi, WWAN, and WiMAX state, etc.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT a{ss} <parameter>permissions</parameter></literal>:</term>
+  <listitem><para>Dictionary of available permissions and results.  Each permission           is represented by a name (ie "org.freedesktop.NetworkManager.Foobar")           and each result is one of the following values: "yes" (the permission           is available), "auth" (the permission is available after a successful           authentication), or "no" (the permission is denied).  Clients may use           these values in the UI to indicate the ability to perform certain           operations.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.SetLogging">
+  <title>The SetLogging() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.SetLogging"><primary sortas="Manager.SetLogging">org.freedesktop.NetworkManager.SetLogging()</primary></indexterm>
+<programlisting>
+SetLogging (IN  s level,
+            IN  s domains);
+</programlisting>
+<para>Set logging verbosity and which operations are logged.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN s <parameter>level</parameter></literal>:</term>
+  <listitem><para>One of [ERR, WARN, INFO, DEBUG, TRACE, OFF, KEEP].           This level is applied to the domains as specified in the domains           argument. Except for the special level "KEEP", all unmentioned           domains are disabled entirely. "KEEP" is special and allows           not to change the current setting except for the specified           domains. E.g. level=KEEP and domains=PLATFORM:DEBUG will only           touch the platform domain.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN s <parameter>domains</parameter></literal>:</term>
+  <listitem><para>A combination of logging domains separated by commas (','), or "NONE"           to disable logging.  Each domain enables logging for operations           related to that domain.  Available domains are: [PLATFORM, RFKILL, ETHER,           WIFI, BT, MB, DHCP4, DHCP6, PPP, WIFI_SCAN, IP4, IP6, AUTOIP4, DNS,           VPN, SHARING, SUPPLICANT, AGENTS, SETTINGS, SUSPEND, CORE, DEVICE,           OLPC, WIMAX, INFINIBAND, FIREWALL, ADSL, BOND, VLAN, BRIDGE, DBUS_PROPS,           TEAM, CONCHECK, DCB, DISPATCH, AUDIT].           In addition to these domains, the following special domains can be used:           [NONE, ALL, DEFAULT, DHCP, IP].  You can also specify that some domains           should log at a different level from the default by appending a colon (':')           and a log level (eg, 'WIFI:DEBUG').  If an empty string is given, the           log level is changed but the current set of log domains remains           unchanged.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.GetLogging">
+  <title>The GetLogging() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.GetLogging"><primary sortas="Manager.GetLogging">org.freedesktop.NetworkManager.GetLogging()</primary></indexterm>
+<programlisting>
+GetLogging (OUT s level,
+            OUT s domains);
+</programlisting>
+<para>Get current logging verbosity level and operations domains.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT s <parameter>level</parameter></literal>:</term>
+  <listitem><para>One of [ERR, WARN, INFO, DEBUG, TRACE].</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT s <parameter>domains</parameter></literal>:</term>
+  <listitem><para>For available domains see SetLogging() call.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.CheckConnectivity">
+  <title>The CheckConnectivity() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.CheckConnectivity"><primary sortas="Manager.CheckConnectivity">org.freedesktop.NetworkManager.CheckConnectivity()</primary></indexterm>
+<programlisting>
+CheckConnectivity (OUT u connectivity);
+</programlisting>
+<para>Re-check the network connectivity state.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT u <parameter>connectivity</parameter></literal>:</term>
+  <listitem><para>The current connectivity state.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager.state">
+  <title>The state() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager.state"><primary sortas="Manager.state">org.freedesktop.NetworkManager.state()</primary></indexterm>
+<programlisting>
+state (OUT u state);
+</programlisting>
+<para>The overall networking state as determined by the NetworkManager daemon,         based on the state of network devices under it's management.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT u <parameter>state</parameter></literal>:</term>
+  <listitem><para></para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager.CheckPermissions">
+  <title>The "CheckPermissions" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager.CheckPermissions"><primary sortas="Manager::CheckPermissions">org.freedesktop.NetworkManager::CheckPermissions</primary></indexterm>
+<programlisting>
+CheckPermissions ();
+</programlisting>
+<para>Emitted when system authorization details change, indicating that         clients may wish to recheck permissions with GetPermissions.</para>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager.StateChanged">
+  <title>The "StateChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager.StateChanged"><primary sortas="Manager::StateChanged">org.freedesktop.NetworkManager::StateChanged</primary></indexterm>
+<programlisting>
+StateChanged (u state);
+</programlisting>
+<para>NetworkManager's state changed.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>u <parameter>state</parameter></literal>:</term>
+  <listitem><para>The new state of NetworkManager.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager.PropertiesChanged"><primary sortas="Manager::PropertiesChanged">org.freedesktop.NetworkManager::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para>NetworkManager's properties changed.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>The changed properties.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager.DeviceAdded">
+  <title>The "DeviceAdded" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager.DeviceAdded"><primary sortas="Manager::DeviceAdded">org.freedesktop.NetworkManager::DeviceAdded</primary></indexterm>
+<programlisting>
+DeviceAdded (o device_path);
+</programlisting>
+<para>A device was added to the system</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>o <parameter>device_path</parameter></literal>:</term>
+  <listitem><para>The object path of the newly added device.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager.DeviceRemoved">
+  <title>The "DeviceRemoved" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager.DeviceRemoved"><primary sortas="Manager::DeviceRemoved">org.freedesktop.NetworkManager::DeviceRemoved</primary></indexterm>
+<programlisting>
+DeviceRemoved (o device_path);
+</programlisting>
+<para>A device was removed from the system, and is no longer available.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>o <parameter>device_path</parameter></literal>:</term>
+  <listitem><para>The object path of the device that was just removed.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.Devices">
+  <title>The "Devices" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.Devices"><primary sortas="Manager:Devices">org.freedesktop.NetworkManager:Devices</primary></indexterm>
+<programlisting>
+Devices  readable   ao
+</programlisting>
+<para>The list of realized network devices. Realized devices are those which         have backing resources (eg from the kernel or a management daemon like         ModemManager, teamd, etc).</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.AllDevices">
+  <title>The "AllDevices" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.AllDevices"><primary sortas="Manager:AllDevices">org.freedesktop.NetworkManager:AllDevices</primary></indexterm>
+<programlisting>
+AllDevices  readable   ao
+</programlisting>
+<para>The list of both realized and un-realized network devices. Un-realized         devices are software devices which do not yet have backing resources,         but for which backing resources can be created if the device is         activated.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.NetworkingEnabled">
+  <title>The "NetworkingEnabled" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.NetworkingEnabled"><primary sortas="Manager:NetworkingEnabled">org.freedesktop.NetworkManager:NetworkingEnabled</primary></indexterm>
+<programlisting>
+NetworkingEnabled  readable   b
+</programlisting>
+<para>Indicates if overall networking is currently enabled or not.  See the         Enable() method.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.WirelessEnabled">
+  <title>The "WirelessEnabled" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.WirelessEnabled"><primary sortas="Manager:WirelessEnabled">org.freedesktop.NetworkManager:WirelessEnabled</primary></indexterm>
+<programlisting>
+WirelessEnabled  readwrite  b
+</programlisting>
+<para>Indicates if wireless is currently enabled or not.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.WirelessHardwareEnabled">
+  <title>The "WirelessHardwareEnabled" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.WirelessHardwareEnabled"><primary sortas="Manager:WirelessHardwareEnabled">org.freedesktop.NetworkManager:WirelessHardwareEnabled</primary></indexterm>
+<programlisting>
+WirelessHardwareEnabled  readable   b
+</programlisting>
+<para>Indicates if the wireless hardware is currently enabled, i.e. the state of the RF kill switch.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.WwanEnabled">
+  <title>The "WwanEnabled" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.WwanEnabled"><primary sortas="Manager:WwanEnabled">org.freedesktop.NetworkManager:WwanEnabled</primary></indexterm>
+<programlisting>
+WwanEnabled  readwrite  b
+</programlisting>
+<para>Indicates if mobile broadband devices are currently enabled or not.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.WwanHardwareEnabled">
+  <title>The "WwanHardwareEnabled" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.WwanHardwareEnabled"><primary sortas="Manager:WwanHardwareEnabled">org.freedesktop.NetworkManager:WwanHardwareEnabled</primary></indexterm>
+<programlisting>
+WwanHardwareEnabled  readable   b
+</programlisting>
+<para>Indicates if the mobile broadband hardware is currently enabled, i.e. the state of the RF kill switch.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.WimaxEnabled">
+  <title>The "WimaxEnabled" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.WimaxEnabled"><primary sortas="Manager:WimaxEnabled">org.freedesktop.NetworkManager:WimaxEnabled</primary></indexterm>
+<programlisting>
+WimaxEnabled  readwrite  b
+</programlisting>
+<para>Indicates if WiMAX devices are currently enabled or not.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.WimaxHardwareEnabled">
+  <title>The "WimaxHardwareEnabled" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.WimaxHardwareEnabled"><primary sortas="Manager:WimaxHardwareEnabled">org.freedesktop.NetworkManager:WimaxHardwareEnabled</primary></indexterm>
+<programlisting>
+WimaxHardwareEnabled  readable   b
+</programlisting>
+<para>Indicates if the WiMAX hardware is currently enabled, i.e. the state of the RF kill switch.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.ActiveConnections">
+  <title>The "ActiveConnections" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.ActiveConnections"><primary sortas="Manager:ActiveConnections">org.freedesktop.NetworkManager:ActiveConnections</primary></indexterm>
+<programlisting>
+ActiveConnections  readable   ao
+</programlisting>
+<para>List of active connection object paths.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.PrimaryConnection">
+  <title>The "PrimaryConnection" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.PrimaryConnection"><primary sortas="Manager:PrimaryConnection">org.freedesktop.NetworkManager:PrimaryConnection</primary></indexterm>
+<programlisting>
+PrimaryConnection  readable   o
+</programlisting>
+<para>The object path of the "primary" active connection being used         to access the network. In particular, if there is no VPN         active, or the VPN does not have the default route, then this         indicates the connection that has the default route. If there         is a VPN active with the default route, then this indicates         the connection that contains the route to the VPN endpoint.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.PrimaryConnectionType">
+  <title>The "PrimaryConnectionType" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.PrimaryConnectionType"><primary sortas="Manager:PrimaryConnectionType">org.freedesktop.NetworkManager:PrimaryConnectionType</primary></indexterm>
+<programlisting>
+PrimaryConnectionType  readable   s
+</programlisting>
+<para>The connection type of the "primary" active connection being         used to access the network. This is the same as the Type         property on the object indicated by PrimaryConnection.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.Metered">
+  <title>The "Metered" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.Metered"><primary sortas="Manager:Metered">org.freedesktop.NetworkManager:Metered</primary></indexterm>
+<programlisting>
+Metered  readable   u
+</programlisting>
+<para>Indicates whether the connectivity is metered. This is equivalent         to the metered property of the device associated with the primary         connection.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.ActivatingConnection">
+  <title>The "ActivatingConnection" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.ActivatingConnection"><primary sortas="Manager:ActivatingConnection">org.freedesktop.NetworkManager:ActivatingConnection</primary></indexterm>
+<programlisting>
+ActivatingConnection  readable   o
+</programlisting>
+<para>The object path of an active connection that is currently         being activated and which is expected to become the new         PrimaryConnection when it finishes activating.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.Startup">
+  <title>The "Startup" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.Startup"><primary sortas="Manager:Startup">org.freedesktop.NetworkManager:Startup</primary></indexterm>
+<programlisting>
+Startup  readable   b
+</programlisting>
+<para>Indicates whether NM is still starting up; this becomes FALSE         when NM has finished attempting to activate every connection         that it might be able to activate at startup.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.Version">
+  <title>The "Version" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.Version"><primary sortas="Manager:Version">org.freedesktop.NetworkManager:Version</primary></indexterm>
+<programlisting>
+Version  readable   s
+</programlisting>
+<para>NetworkManager version.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.State">
+  <title>The "State" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.State"><primary sortas="Manager:State">org.freedesktop.NetworkManager:State</primary></indexterm>
+<programlisting>
+State  readable   u
+</programlisting>
+<para>The overall state of the NetworkManager daemon.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.Connectivity">
+  <title>The "Connectivity" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.Connectivity"><primary sortas="Manager:Connectivity">org.freedesktop.NetworkManager:Connectivity</primary></indexterm>
+<programlisting>
+Connectivity  readable   u
+</programlisting>
+<para>The network connectivity state.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager.GlobalDnsConfiguration">
+  <title>The "GlobalDnsConfiguration" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager.GlobalDnsConfiguration"><primary sortas="Manager:GlobalDnsConfiguration">org.freedesktop.NetworkManager:GlobalDnsConfiguration</primary></indexterm>
+<programlisting>
+GlobalDnsConfiguration  readwrite  a{sv}
+</programlisting>
+<para>Dictionary of global DNS settings where the key is one of         "searches", "options" and "domains".  The values for the         "searches" and "options" keys are string arrays describing the         list of search domains and resolver options, respectively.         The value of the "domains" key is a second-level dictionary,         where each key is a domain name, and each key's value is a         third-level dictionary with the keys "servers" and         "options". "servers" is a string array of DNS servers,         "options" is a string array of domain-specific options.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-ppp-manager-org.freedesktop.NetworkManager.PPP.xml b/introspection/nmdbus-ppp-manager-org.freedesktop.NetworkManager.PPP.xml
new file mode 100644
index 00000000..79370cd3
--- /dev/null
+++ b/introspection/nmdbus-ppp-manager-org.freedesktop.NetworkManager.PPP.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.PPP">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-PPP.top_of_page">org.freedesktop.NetworkManager.PPP</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-PPP.top_of_page"><primary sortas="PPPManager">org.freedesktop.NetworkManager.PPP</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.PPP</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsynopsisdiv role="synopsis">
+    <title role="synopsis.title">Methods</title>
+    <synopsis>
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-PPP.NeedSecrets">NeedSecrets</link>  (OUT s     username,
+              OUT s     password);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-PPP.SetIp4Config">SetIp4Config</link> (IN  a{sv} config);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-PPP.SetIp6Config">SetIp6Config</link> (IN  a{sv} config);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-PPP.SetState">SetState</link>     (IN  u     state);
+</synopsis>
+  </refsynopsisdiv>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-PPP">
+  <title role="desc.title">Description</title>
+  <para></para>
+</refsect1>
+<refsect1 role="details" id="gdbus-methods-org.freedesktop.NetworkManager.PPP">
+  <title role="details.title">Method Details</title>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-PPP.NeedSecrets">
+  <title>The NeedSecrets() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-PPP.NeedSecrets"><primary sortas="PPPManager.NeedSecrets">org.freedesktop.NetworkManager.PPP.NeedSecrets()</primary></indexterm>
+<programlisting>
+NeedSecrets (OUT s username,
+             OUT s password);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT s <parameter>username</parameter></literal>:</term>
+  <listitem><para></para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT s <parameter>password</parameter></literal>:</term>
+  <listitem><para></para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-PPP.SetIp4Config">
+  <title>The SetIp4Config() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-PPP.SetIp4Config"><primary sortas="PPPManager.SetIp4Config">org.freedesktop.NetworkManager.PPP.SetIp4Config()</primary></indexterm>
+<programlisting>
+SetIp4Config (IN  a{sv} config);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sv} <parameter>config</parameter></literal>:</term>
+  <listitem><para></para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-PPP.SetIp6Config">
+  <title>The SetIp6Config() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-PPP.SetIp6Config"><primary sortas="PPPManager.SetIp6Config">org.freedesktop.NetworkManager.PPP.SetIp6Config()</primary></indexterm>
+<programlisting>
+SetIp6Config (IN  a{sv} config);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sv} <parameter>config</parameter></literal>:</term>
+  <listitem><para></para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-PPP.SetState">
+  <title>The SetState() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-PPP.SetState"><primary sortas="PPPManager.SetState">org.freedesktop.NetworkManager.PPP.SetState()</primary></indexterm>
+<programlisting>
+SetState (IN  u state);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN u <parameter>state</parameter></literal>:</term>
+  <listitem><para></para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-secret-agent-org.freedesktop.NetworkManager.SecretAgent.xml b/introspection/nmdbus-secret-agent-org.freedesktop.NetworkManager.SecretAgent.xml
new file mode 100644
index 00000000..36a683d6
--- /dev/null
+++ b/introspection/nmdbus-secret-agent-org.freedesktop.NetworkManager.SecretAgent.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.SecretAgent">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-SecretAgent.top_of_page">org.freedesktop.NetworkManager.SecretAgent</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-SecretAgent.top_of_page"><primary sortas=".SecretAgent">org.freedesktop.NetworkManager.SecretAgent</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.SecretAgent</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsynopsisdiv role="synopsis">
+    <title role="synopsis.title">Methods</title>
+    <synopsis>
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-SecretAgent.GetSecrets">GetSecrets</link>       (IN  a{sa{sv}} connection,
+                  IN  o         connection_path,
+                  IN  s         setting_name,
+                  IN  as        hints,
+                  IN  u         flags,
+                  OUT a{sa{sv}} secrets);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-SecretAgent.CancelGetSecrets">CancelGetSecrets</link> (IN  o         connection_path,
+                  IN  s         setting_name);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-SecretAgent.SaveSecrets">SaveSecrets</link>      (IN  a{sa{sv}} connection,
+                  IN  o         connection_path);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-SecretAgent.DeleteSecrets">DeleteSecrets</link>    (IN  a{sa{sv}} connection,
+                  IN  o         connection_path);
+</synopsis>
+  </refsynopsisdiv>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-SecretAgent">
+  <title role="desc.title">Description</title>
+  <para>Private D-Bus interface used by secret agents that store and provide             secrets to NetworkManager.  If an agent provides secrets to             NetworkManager as part of connection creation, and the some of those             secrets are "agent owned" the agent should store those secrets             itself and should not expect its SaveSecrets() method to be called.             SaveSecrets() will be called eg if some program other than the             agent itself (like a connection editor) changes the secrets out of             band.  The agent should implement this D-Bus interface on an object             with the path /org/freedesktop/NetworkManager/SecretAgent.</para>
+</refsect1>
+<refsect1 role="details" id="gdbus-methods-org.freedesktop.NetworkManager.SecretAgent">
+  <title role="details.title">Method Details</title>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-SecretAgent.GetSecrets">
+  <title>The GetSecrets() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-SecretAgent.GetSecrets"><primary sortas=".SecretAgent.GetSecrets">org.freedesktop.NetworkManager.SecretAgent.GetSecrets()</primary></indexterm>
+<programlisting>
+GetSecrets (IN  a{sa{sv}} connection,
+            IN  o         connection_path,
+            IN  s         setting_name,
+            IN  as        hints,
+            IN  u         flags,
+            OUT a{sa{sv}} secrets);
+</programlisting>
+<para>Retrieve and return stored secrets, if any, or request new                 secrets from the agent's user.  If user interaction is allowed                 and the user enters new secrets, the agent is expected to save                 the new secrets to persistent storage (if the secret's flags                 include AGENT_OWNED) as NetworkManager will not send these                 secrets back to the same agent via a SaveSecrets() call.  If                 the user canceled any interaction, the agent should return the                 UserCanceled error (see below).</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>connection</parameter></literal>:</term>
+  <listitem><para>Nested settings maps containing the connection for which                     secrets are being requested.  This may contain system-owned                     secrets if the agent has successfully authenticated to                     modify system network settings and the GetSecrets request                     flags allow user interaction.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN o <parameter>connection_path</parameter></literal>:</term>
+  <listitem><para>Object path of the connection for which secrets are being                     requested.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN s <parameter>setting_name</parameter></literal>:</term>
+  <listitem><para>Setting name for which secrets are being requested.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN as <parameter>hints</parameter></literal>:</term>
+  <listitem><para>Array of strings of key names in the requested setting for                     which NetworkManager thinks a secrets may be required,                     and/or well-known identifiers and data that may be useful                     to the client in processing the secrets request.  Note that                     it's not always possible to determine which secret is                     required, so in some cases no hints may be given.  The Agent                     should return any secrets it has, or that it thinks are                     required, regardless of what hints NetworkManager sends                     in this request.  Some hints have special prefixes that                     provide information to the agent; for example, VPN requests                     may send server-specific messages prefixed with                     "x-vpn-message:".</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN u <parameter>flags</parameter></literal>:</term>
+  <listitem><para>Flags which modify the behavior of the secrets request.                     If true, new secrets are assumed to be invalid or incorrect,                     and the agent should ask the user for new secrets.  If false,                     existing secrets should be retrieved from storage and                      returned without interrupting the user.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT a{sa{sv}} <parameter>secrets</parameter></literal>:</term>
+  <listitem><para>Nested settings maps containing secrets.  Each setting MUST                     contain at least the 'name' field, containing the name of                     the setting, and one or more secrets.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-SecretAgent.CancelGetSecrets">
+  <title>The CancelGetSecrets() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-SecretAgent.CancelGetSecrets"><primary sortas=".SecretAgent.CancelGetSecrets">org.freedesktop.NetworkManager.SecretAgent.CancelGetSecrets()</primary></indexterm>
+<programlisting>
+CancelGetSecrets (IN  o connection_path,
+                  IN  s setting_name);
+</programlisting>
+<para>Cancel a pending GetSecrets request for secrets of the given                 connection.  Any GetSecrets request with the same                 'connection_path' and 'setting_name' that are given in a                 CancelGetSecrets request should be canceled.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN o <parameter>connection_path</parameter></literal>:</term>
+  <listitem><para>Object path of the connection for which, if secrets for                     the given 'setting_name' are being requested, the request                     should be canceled.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN s <parameter>setting_name</parameter></literal>:</term>
+  <listitem><para>Setting name for which secrets for this connection were                     originally being requested.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-SecretAgent.SaveSecrets">
+  <title>The SaveSecrets() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-SecretAgent.SaveSecrets"><primary sortas=".SecretAgent.SaveSecrets">org.freedesktop.NetworkManager.SecretAgent.SaveSecrets()</primary></indexterm>
+<programlisting>
+SaveSecrets (IN  a{sa{sv}} connection,
+             IN  o         connection_path);
+</programlisting>
+<para>Save given secrets to backing storage.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>connection</parameter></literal>:</term>
+  <listitem><para>Nested settings maps containing the entire connection                     (including secrets), for which the agent should save the                     secrets to backing storage.  This method will not be called                     when the agent itself is the process creating or updating                     a connection; in that case the agent is assumed to have                     already saved those secrets since it had them already.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN o <parameter>connection_path</parameter></literal>:</term>
+  <listitem><para>Object path of the connection for which the agent should                     save secrets to backing storage.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-SecretAgent.DeleteSecrets">
+  <title>The DeleteSecrets() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-SecretAgent.DeleteSecrets"><primary sortas=".SecretAgent.DeleteSecrets">org.freedesktop.NetworkManager.SecretAgent.DeleteSecrets()</primary></indexterm>
+<programlisting>
+DeleteSecrets (IN  a{sa{sv}} connection,
+               IN  o         connection_path);
+</programlisting>
+<para>Delete secrets from backing storage.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>connection</parameter></literal>:</term>
+  <listitem><para>Nested settings maps containing the connection properties                     (sans secrets), for which the agent should delete the                     secrets from backing storage.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN o <parameter>connection_path</parameter></literal>:</term>
+  <listitem><para>Object path of the connection for which the agent should                     delete secrets from backing storage.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-settings-connection-org.freedesktop.NetworkManager.Settings.Connection.xml b/introspection/nmdbus-settings-connection-org.freedesktop.NetworkManager.Settings.Connection.xml
new file mode 100644
index 00000000..f5dd15ff
--- /dev/null
+++ b/introspection/nmdbus-settings-connection-org.freedesktop.NetworkManager.Settings.Connection.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Settings.Connection">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Settings-Connection.top_of_page">org.freedesktop.NetworkManager.Settings.Connection</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Settings-Connection.top_of_page"><primary sortas=".Settings.Connection">org.freedesktop.NetworkManager.Settings.Connection</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Settings.Connection</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsynopsisdiv role="synopsis">
+    <title role="synopsis.title">Methods</title>
+    <synopsis>
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Update">Update</link>        (IN  a{sa{sv}} properties);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.UpdateUnsaved">UpdateUnsaved</link> (IN  a{sa{sv}} properties);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Delete">Delete</link>        ();
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.GetSettings">GetSettings</link>   (OUT a{sa{sv}} settings);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.GetSecrets">GetSecrets</link>    (IN  s         setting_name,
+               OUT a{sa{sv}} secrets);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.ClearSecrets">ClearSecrets</link>  ();
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Save">Save</link>          ();
+</synopsis>
+  </refsynopsisdiv>
+  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.Updated">Updated</link>           ();
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.Removed">Removed</link>           ();
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Settings-Connection.Unsaved">Unsaved</link>  readable   b
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Settings-Connection">
+  <title role="desc.title">Description</title>
+  <para>Represents a single network connection configuration.</para>
+</refsect1>
+<refsect1 role="details" id="gdbus-methods-org.freedesktop.NetworkManager.Settings.Connection">
+  <title role="details.title">Method Details</title>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Update">
+  <title>The Update() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Update"><primary sortas=".Settings.Connection.Update">org.freedesktop.NetworkManager.Settings.Connection.Update()</primary></indexterm>
+<programlisting>
+Update (IN  a{sa{sv}} properties);
+</programlisting>
+<para>Update the connection with new settings and properties (replacing             all previous settings and properties) and save the connection to             disk.  Secrets may be part of the update request, and will be either             stored in persistent storage or sent to a Secret Agent for storage,             depending on the flags associated with each secret.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>New connection settings, properties, and (optionally) secrets.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.UpdateUnsaved">
+  <title>The UpdateUnsaved() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.UpdateUnsaved"><primary sortas=".Settings.Connection.UpdateUnsaved">org.freedesktop.NetworkManager.Settings.Connection.UpdateUnsaved()</primary></indexterm>
+<programlisting>
+UpdateUnsaved (IN  a{sa{sv}} properties);
+</programlisting>
+<para>Update the connection with new settings and properties (replacing             all previous settings and properties) but do not immediately save             the connection to disk.  Secrets may be part of the update request             and may sent to a Secret Agent for storage, depending on the             flags associated with each secret.              Use the 'Save' method to save these changes to disk. Note             that unsaved changes will be lost if the connection is             reloaded from disk (either automatically on file change or             due to an explicit ReloadConnections call).</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>New connection settings, properties, and (optionally) secrets.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Delete">
+  <title>The Delete() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Delete"><primary sortas=".Settings.Connection.Delete">org.freedesktop.NetworkManager.Settings.Connection.Delete()</primary></indexterm>
+<programlisting>
+Delete ();
+</programlisting>
+<para>Delete the connection.</para>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.GetSettings">
+  <title>The GetSettings() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.GetSettings"><primary sortas=".Settings.Connection.GetSettings">org.freedesktop.NetworkManager.Settings.Connection.GetSettings()</primary></indexterm>
+<programlisting>
+GetSettings (OUT a{sa{sv}} settings);
+</programlisting>
+<para>Get the settings maps describing this network configuration.                 This will never include any secrets required for connection                 to the network, as those are often protected.  Secrets must                 be requested separately using the GetSecrets() call.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT a{sa{sv}} <parameter>settings</parameter></literal>:</term>
+  <listitem><para>The nested settings maps describing this object.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.GetSecrets">
+  <title>The GetSecrets() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.GetSecrets"><primary sortas=".Settings.Connection.GetSecrets">org.freedesktop.NetworkManager.Settings.Connection.GetSecrets()</primary></indexterm>
+<programlisting>
+GetSecrets (IN  s         setting_name,
+            OUT a{sa{sv}} secrets);
+</programlisting>
+<para>Get the secrets belonging to this network configuration.  Only                 secrets from persistent storage or a Secret Agent running in                 the requestor's session will be returned.  The user will never                 be prompted for secrets as a result of this request.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN s <parameter>setting_name</parameter></literal>:</term>
+  <listitem><para>Name of the setting to return secrets for.  If empty, all                     all secrets will be returned.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT a{sa{sv}} <parameter>secrets</parameter></literal>:</term>
+  <listitem><para>Nested settings maps containing secrets.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.ClearSecrets">
+  <title>The ClearSecrets() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.ClearSecrets"><primary sortas=".Settings.Connection.ClearSecrets">org.freedesktop.NetworkManager.Settings.Connection.ClearSecrets()</primary></indexterm>
+<programlisting>
+ClearSecrets ();
+</programlisting>
+<para>Clear the secrets belonging to this network connection profile.</para>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Save">
+  <title>The Save() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Save"><primary sortas=".Settings.Connection.Save">org.freedesktop.NetworkManager.Settings.Connection.Save()</primary></indexterm>
+<programlisting>
+Save ();
+</programlisting>
+<para>Saves a "dirty" connection (that had previously been                 updated with UpdateUnsaved) to persistent storage.</para>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Settings.Connection">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.Updated">
+  <title>The "Updated" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.Updated"><primary sortas=".Settings.Connection::Updated">org.freedesktop.NetworkManager.Settings.Connection::Updated</primary></indexterm>
+<programlisting>
+Updated ();
+</programlisting>
+<para>Emitted when any settings or permissions change.  When handling                 this signal, clients should re-read the connection using the                 GetSettings method to get the changes and to ensure the client                 still has permission to access the connection.</para>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.Removed">
+  <title>The "Removed" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.Removed"><primary sortas=".Settings.Connection::Removed">org.freedesktop.NetworkManager.Settings.Connection::Removed</primary></indexterm>
+<programlisting>
+Removed ();
+</programlisting>
+<para>Emitted when this connection is no longer available.  This                 happens when the connection is deleted or if it is no longer                 accessible by any of the system's logged-in users.  After                 receipt of this signal, the object no longer exists.  Also                 see the Settings.ConnectionRemoved signal.</para>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.PropertiesChanged"><primary sortas=".Settings.Connection::PropertiesChanged">org.freedesktop.NetworkManager.Settings.Connection::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Settings.Connection">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Settings-Connection.Unsaved">
+  <title>The "Unsaved" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Settings-Connection.Unsaved"><primary sortas=".Settings.Connection:Unsaved">org.freedesktop.NetworkManager.Settings.Connection:Unsaved</primary></indexterm>
+<programlisting>
+Unsaved  readable   b
+</programlisting>
+<para>If set, indicates that the in-memory state of the                 connection does not match the on-disk state. This flag                 will be set when UpdateUnsaved() is called or when any                 connection details change, and cleared when the connection                 is saved to disk via Save() or from internal operations.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-settings-org.freedesktop.NetworkManager.Settings.xml b/introspection/nmdbus-settings-org.freedesktop.NetworkManager.Settings.xml
new file mode 100644
index 00000000..0481b710
--- /dev/null
+++ b/introspection/nmdbus-settings-org.freedesktop.NetworkManager.Settings.xml
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.Settings">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-Settings.top_of_page">org.freedesktop.NetworkManager.Settings</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-Settings.top_of_page"><primary sortas=".Settings">org.freedesktop.NetworkManager.Settings</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.Settings</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsynopsisdiv role="synopsis">
+    <title role="synopsis.title">Methods</title>
+    <synopsis>
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings.ListConnections">ListConnections</link>      (OUT ao        connections);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings.GetConnectionByUuid">GetConnectionByUuid</link>  (IN  s         uuid,
+                      OUT o         connection);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings.AddConnection">AddConnection</link>        (IN  a{sa{sv}} connection,
+                      OUT o         path);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings.AddConnectionUnsaved">AddConnectionUnsaved</link> (IN  a{sa{sv}} connection,
+                      OUT o         path);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings.LoadConnections">LoadConnections</link>      (IN  as        filenames,
+                      OUT b         status,
+                      OUT as        failures);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings.ReloadConnections">ReloadConnections</link>    (OUT b         status);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-Settings.SaveHostname">SaveHostname</link>         (IN  s         hostname);
+</synopsis>
+  </refsynopsisdiv>
+  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Settings.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Settings.NewConnection">NewConnection</link>     (o     connection);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-Settings.ConnectionRemoved">ConnectionRemoved</link> (o     connection);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Settings.Connections">Connections</link>  readable   ao
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Settings.Hostname">Hostname</link>     readable   s
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-Settings.CanModify">CanModify</link>    readable   b
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-Settings">
+  <title role="desc.title">Description</title>
+  <para>The Settings interface allows clients to view and administrate the connections stored and used by NetworkManager.</para>
+</refsect1>
+<refsect1 role="details" id="gdbus-methods-org.freedesktop.NetworkManager.Settings">
+  <title role="details.title">Method Details</title>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings.ListConnections">
+  <title>The ListConnections() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings.ListConnections"><primary sortas=".Settings.ListConnections">org.freedesktop.NetworkManager.Settings.ListConnections()</primary></indexterm>
+<programlisting>
+ListConnections (OUT ao connections);
+</programlisting>
+<para>List the saved network connections known to NetworkManager.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT ao <parameter>connections</parameter></literal>:</term>
+  <listitem><para>List of connections.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings.GetConnectionByUuid">
+  <title>The GetConnectionByUuid() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings.GetConnectionByUuid"><primary sortas=".Settings.GetConnectionByUuid">org.freedesktop.NetworkManager.Settings.GetConnectionByUuid()</primary></indexterm>
+<programlisting>
+GetConnectionByUuid (IN  s uuid,
+                     OUT o connection);
+</programlisting>
+<para>Retrieve the object path of a connection, given that connection's UUID.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN s <parameter>uuid</parameter></literal>:</term>
+  <listitem><para>The UUID to find the connection object path for.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT o <parameter>connection</parameter></literal>:</term>
+  <listitem><para>The connection's object path.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings.AddConnection">
+  <title>The AddConnection() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings.AddConnection"><primary sortas=".Settings.AddConnection">org.freedesktop.NetworkManager.Settings.AddConnection()</primary></indexterm>
+<programlisting>
+AddConnection (IN  a{sa{sv}} connection,
+               OUT o         path);
+</programlisting>
+<para>Add new connection and save it to disk.  This operation does not start         the network connection unless (1) device is idle and able to connect to         the network described by the new connection, and (2) the connection         is allowed to be started automatically.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>connection</parameter></literal>:</term>
+  <listitem><para>Connection settings and properties.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT o <parameter>path</parameter></literal>:</term>
+  <listitem><para>Object path of the new connection that was just added.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings.AddConnectionUnsaved">
+  <title>The AddConnectionUnsaved() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings.AddConnectionUnsaved"><primary sortas=".Settings.AddConnectionUnsaved">org.freedesktop.NetworkManager.Settings.AddConnectionUnsaved()</primary></indexterm>
+<programlisting>
+AddConnectionUnsaved (IN  a{sa{sv}} connection,
+                      OUT o         path);
+</programlisting>
+<para>Add new connection but do not save it to disk immediately.  This         operation does not start the network connection unless (1) device is         idle and able to connect to the network described by the new connection,         and (2) the connection is allowed to be started automatically.          Use the 'Save' method on the connection to save these changes         to disk. Note that unsaved changes will be lost if the         connection is reloaded from disk (either automatically on file         change or due to an explicit ReloadConnections call).</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>connection</parameter></literal>:</term>
+  <listitem><para>Connection settings and properties.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT o <parameter>path</parameter></literal>:</term>
+  <listitem><para>Object path of the new connection that was just added.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings.LoadConnections">
+  <title>The LoadConnections() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings.LoadConnections"><primary sortas=".Settings.LoadConnections">org.freedesktop.NetworkManager.Settings.LoadConnections()</primary></indexterm>
+<programlisting>
+LoadConnections (IN  as filenames,
+                 OUT b  status,
+                 OUT as failures);
+</programlisting>
+<para>Loads or reloads the indicated connections from disk. You         should call this after making changes directly to an on-disk         connection file to make sure that NetworkManager sees the         changes. (If "monitor-connection-files" in NetworkManager.conf         is "true", then this will have no real effect, but is         harmless.) As with AddConnection(), this operation does not         necessarily start the network connection.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN as <parameter>filenames</parameter></literal>:</term>
+  <listitem><para>Array of paths to on-disk connection profiles in directories           monitored by NetworkManager.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT b <parameter>status</parameter></literal>:</term>
+  <listitem><para>Success or failure of the operation as a whole. True if           NetworkManager at least tried to load the indicated           connections, even if it did not succeed. False if an error           occurred before trying to load the connections (eg,           permission denied).</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT as <parameter>failures</parameter></literal>:</term>
+  <listitem><para>Paths of connection files that could not be loaded.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings.ReloadConnections">
+  <title>The ReloadConnections() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings.ReloadConnections"><primary sortas=".Settings.ReloadConnections">org.freedesktop.NetworkManager.Settings.ReloadConnections()</primary></indexterm>
+<programlisting>
+ReloadConnections (OUT b status);
+</programlisting>
+<para>Tells NetworkManager to reload all connection files from disk,         including noticing any added or deleted connection files. By         default, connections are re-read automatically any time they         change, so you only need to use this command if you have set         "monitor-connection-files=false" in NetworkManager.conf.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>OUT b <parameter>status</parameter></literal>:</term>
+  <listitem><para>Success or failure.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-Settings.SaveHostname">
+  <title>The SaveHostname() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-Settings.SaveHostname"><primary sortas=".Settings.SaveHostname">org.freedesktop.NetworkManager.Settings.SaveHostname()</primary></indexterm>
+<programlisting>
+SaveHostname (IN  s hostname);
+</programlisting>
+<para>Save the hostname to persistent configuration.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN s <parameter>hostname</parameter></literal>:</term>
+  <listitem><para>The hostname to save to persistent configuration.  If blank, the persistent hostname is cleared.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.Settings">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Settings.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Settings.PropertiesChanged"><primary sortas=".Settings::PropertiesChanged">org.freedesktop.NetworkManager.Settings::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Settings.NewConnection">
+  <title>The "NewConnection" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Settings.NewConnection"><primary sortas=".Settings::NewConnection">org.freedesktop.NetworkManager.Settings::NewConnection</primary></indexterm>
+<programlisting>
+NewConnection (o connection);
+</programlisting>
+<para>Emitted when a new connection has been added after NetworkManager has         started up and initialized.  This signal is not emitted for connections         read while starting up, because NetworkManager's D-Bus service is only         available after all connections have been read, and to prevent spamming         listeners with too many signals at one time.  To retrieve the initial         connection list, call the ListConnections() method once, and then listen         for individual Settings.NewConnection and Settings.Connection.Deleted         signals for further updates.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>o <parameter>connection</parameter></literal>:</term>
+  <listitem><para>Object path of the new connection.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-Settings.ConnectionRemoved">
+  <title>The "ConnectionRemoved" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-Settings.ConnectionRemoved"><primary sortas=".Settings::ConnectionRemoved">org.freedesktop.NetworkManager.Settings::ConnectionRemoved</primary></indexterm>
+<programlisting>
+ConnectionRemoved (o connection);
+</programlisting>
+<para>Emitted when a connection is no longer available.  This happens when         the connection is deleted or if it is no longer accessible by any of         the system's logged-in users.  After receipt of this signal, the         connection no longer exists and cannot be used.  Also see the         Settings.Connection.Removed signal.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>o <parameter>connection</parameter></literal>:</term>
+  <listitem><para>Object path of the removed connection.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.Settings">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Settings.Connections">
+  <title>The "Connections" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Settings.Connections"><primary sortas=".Settings:Connections">org.freedesktop.NetworkManager.Settings:Connections</primary></indexterm>
+<programlisting>
+Connections  readable   ao
+</programlisting>
+<para>List of object paths of available network connection profiles.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Settings.Hostname">
+  <title>The "Hostname" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Settings.Hostname"><primary sortas=".Settings:Hostname">org.freedesktop.NetworkManager.Settings:Hostname</primary></indexterm>
+<programlisting>
+Hostname  readable   s
+</programlisting>
+<para>The machine hostname stored in persistent configuration.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-Settings.CanModify">
+  <title>The "CanModify" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-Settings.CanModify"><primary sortas=".Settings:CanModify">org.freedesktop.NetworkManager.Settings:CanModify</primary></indexterm>
+<programlisting>
+CanModify  readable   b
+</programlisting>
+<para>If true, adding and modifying connections is supported.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-vpn-connection-org.freedesktop.NetworkManager.VPN.Connection.xml b/introspection/nmdbus-vpn-connection-org.freedesktop.NetworkManager.VPN.Connection.xml
new file mode 100644
index 00000000..b52c7409
--- /dev/null
+++ b/introspection/nmdbus-vpn-connection-org.freedesktop.NetworkManager.VPN.Connection.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.VPN.Connection">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-VPN-Connection.top_of_page">org.freedesktop.NetworkManager.VPN.Connection</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-VPN-Connection.top_of_page"><primary sortas="VpnConnection">org.freedesktop.NetworkManager.VPN.Connection</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.VPN.Connection</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-VPN-Connection.PropertiesChanged">PropertiesChanged</link> (a{sv} properties);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-VPN-Connection.VpnStateChanged">VpnStateChanged</link>   (u     state,
+                   u     reason);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-VPN-Connection.VpnState">VpnState</link>  readable   u
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-VPN-Connection.Banner">Banner</link>    readable   s
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-VPN-Connection">
+  <title role="desc.title">Description</title>
+  <para>Represents an active connection to a Virtual Private Network.</para>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.VPN.Connection">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-VPN-Connection.PropertiesChanged">
+  <title>The "PropertiesChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-VPN-Connection.PropertiesChanged"><primary sortas="VpnConnection::PropertiesChanged">org.freedesktop.NetworkManager.VPN.Connection::PropertiesChanged</primary></indexterm>
+<programlisting>
+PropertiesChanged (a{sv} properties);
+</programlisting>
+<para></para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>properties</parameter></literal>:</term>
+  <listitem><para>A dictionary mapping property names to variant boxed values</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-VPN-Connection.VpnStateChanged">
+  <title>The "VpnStateChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-VPN-Connection.VpnStateChanged"><primary sortas="VpnConnection::VpnStateChanged">org.freedesktop.NetworkManager.VPN.Connection::VpnStateChanged</primary></indexterm>
+<programlisting>
+VpnStateChanged (u state,
+                 u reason);
+</programlisting>
+<para>Emitted when the state of the VPN connection has changed.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>u <parameter>state</parameter></literal>:</term>
+  <listitem><para>The new state of the VPN connection.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>u <parameter>reason</parameter></literal>:</term>
+  <listitem><para>Reason code describing the change to the new state.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.VPN.Connection">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-VPN-Connection.VpnState">
+  <title>The "VpnState" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-VPN-Connection.VpnState"><primary sortas="VpnConnection:VpnState">org.freedesktop.NetworkManager.VPN.Connection:VpnState</primary></indexterm>
+<programlisting>
+VpnState  readable   u
+</programlisting>
+<para>The VPN-specific state of the connection.</para>
+</refsect2>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-VPN-Connection.Banner">
+  <title>The "Banner" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-VPN-Connection.Banner"><primary sortas="VpnConnection:Banner">org.freedesktop.NetworkManager.VPN.Connection:Banner</primary></indexterm>
+<programlisting>
+Banner  readable   s
+</programlisting>
+<para>The banner string of the VPN connection.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/nmdbus-vpn-plugin-org.freedesktop.NetworkManager.VPN.Plugin.xml b/introspection/nmdbus-vpn-plugin-org.freedesktop.NetworkManager.VPN.Plugin.xml
new file mode 100644
index 00000000..a3c249b0
--- /dev/null
+++ b/introspection/nmdbus-vpn-plugin-org.freedesktop.NetworkManager.VPN.Plugin.xml
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<refentry id="gdbus-org.freedesktop.NetworkManager.VPN.Plugin">
+  <refmeta>    <refentrytitle role="top_of_page" id="gdbus-interface-org-freedesktop-NetworkManager-VPN-Plugin.top_of_page">org.freedesktop.NetworkManager.VPN.Plugin</refentrytitle>
+  <indexterm zone="gdbus-interface-org-freedesktop-NetworkManager-VPN-Plugin.top_of_page"><primary sortas="VpnPlugin">org.freedesktop.NetworkManager.VPN.Plugin</primary></indexterm>
+  </refmeta>  <refnamediv>    <refname>org.freedesktop.NetworkManager.VPN.Plugin</refname>    <refpurpose></refpurpose>  </refnamediv>  <refsynopsisdiv role="synopsis">
+    <title role="synopsis.title">Methods</title>
+    <synopsis>
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.Connect">Connect</link>            (IN  a{sa{sv}} connection);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.ConnectInteractive">ConnectInteractive</link> (IN  a{sa{sv}} connection,
+                    IN  a{sv}     details);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.NeedSecrets">NeedSecrets</link>        (IN  a{sa{sv}} settings,
+                    OUT s         setting_name);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.Disconnect">Disconnect</link>         ();
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetConfig">SetConfig</link>          (IN  a{sv}     config);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetIp4Config">SetIp4Config</link>       (IN  a{sv}     config);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetIp6Config">SetIp6Config</link>       (IN  a{sv}     config);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetFailure">SetFailure</link>         (IN  s         reason);
+<link linkend="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.NewSecrets">NewSecrets</link>         (IN  a{sa{sv}} connection);
+</synopsis>
+  </refsynopsisdiv>
+  <refsect1 role="signal_proto">
+    <title role="signal_proto.title">Signals</title>
+    <synopsis>
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.StateChanged">StateChanged</link>    (u     state);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.SecretsRequired">SecretsRequired</link> (s     message,
+                 as    secrets);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Config">Config</link>          (a{sv} config);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Ip4Config">Ip4Config</link>       (a{sv} ip4config);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Ip6Config">Ip6Config</link>       (a{sv} ip6config);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.LoginBanner">LoginBanner</link>     (s     banner);
+<link linkend="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Failure">Failure</link>         (u     reason);
+</synopsis>
+  </refsect1>
+  <refsect1 role="properties">
+    <title role="properties.title">Properties</title>
+    <synopsis>
+<link linkend="gdbus-property-org-freedesktop-NetworkManager-VPN-Plugin.State">State</link>  readable   u
+</synopsis>
+  </refsect1>
+<refsect1 role="desc" id="gdbus-interface-org-freedesktop-NetworkManager-VPN-Plugin">
+  <title role="desc.title">Description</title>
+  <para>This interface is provided by plugins providing VPN services to the NetworkManager daemon.</para>
+</refsect1>
+<refsect1 role="details" id="gdbus-methods-org.freedesktop.NetworkManager.VPN.Plugin">
+  <title role="details.title">Method Details</title>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.Connect">
+  <title>The Connect() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.Connect"><primary sortas="VpnPlugin.Connect">org.freedesktop.NetworkManager.VPN.Plugin.Connect()</primary></indexterm>
+<programlisting>
+Connect (IN  a{sa{sv}} connection);
+</programlisting>
+<para>Tells the plugin to connect.  Interactive secrets requests (eg, emitting         the SecretsRequired signal) are not allowed.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>connection</parameter></literal>:</term>
+  <listitem><para>Describes the connection to be established.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.ConnectInteractive">
+  <title>The ConnectInteractive() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.ConnectInteractive"><primary sortas="VpnPlugin.ConnectInteractive">org.freedesktop.NetworkManager.VPN.Plugin.ConnectInteractive()</primary></indexterm>
+<programlisting>
+ConnectInteractive (IN  a{sa{sv}} connection,
+                    IN  a{sv}     details);
+</programlisting>
+<para>Tells the plugin to connect, allowing interactive secrets requests (eg         the plugin is allowed to emit the SecretsRequired signal if the VPN         service indicates that it needs additional secrets during the connect         process).</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>connection</parameter></literal>:</term>
+  <listitem><para>Describes the connection to be established.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>IN a{sv} <parameter>details</parameter></literal>:</term>
+  <listitem><para>Additional details about the Connect process.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.NeedSecrets">
+  <title>The NeedSecrets() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.NeedSecrets"><primary sortas="VpnPlugin.NeedSecrets">org.freedesktop.NetworkManager.VPN.Plugin.NeedSecrets()</primary></indexterm>
+<programlisting>
+NeedSecrets (IN  a{sa{sv}} settings,
+             OUT s         setting_name);
+</programlisting>
+<para>Asks the plugin whether the provided connection will require secrets to connect successfully.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>settings</parameter></literal>:</term>
+  <listitem><para>Describes the connection that may need secrets.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>OUT s <parameter>setting_name</parameter></literal>:</term>
+  <listitem><para>The setting name within the provided connection that requires secrets, if any.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.Disconnect">
+  <title>The Disconnect() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.Disconnect"><primary sortas="VpnPlugin.Disconnect">org.freedesktop.NetworkManager.VPN.Plugin.Disconnect()</primary></indexterm>
+<programlisting>
+Disconnect ();
+</programlisting>
+<para>Disconnect the plugin.</para>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetConfig">
+  <title>The SetConfig() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetConfig"><primary sortas="VpnPlugin.SetConfig">org.freedesktop.NetworkManager.VPN.Plugin.SetConfig()</primary></indexterm>
+<programlisting>
+SetConfig (IN  a{sv} config);
+</programlisting>
+<para>Set generic connection details on the connection.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sv} <parameter>config</parameter></literal>:</term>
+  <listitem><para>Generic configuration details for the connection.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetIp4Config">
+  <title>The SetIp4Config() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetIp4Config"><primary sortas="VpnPlugin.SetIp4Config">org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config()</primary></indexterm>
+<programlisting>
+SetIp4Config (IN  a{sv} config);
+</programlisting>
+<para>Set IPv4 details on the connection.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sv} <parameter>config</parameter></literal>:</term>
+  <listitem><para>Ip4Config details for the connection. You must call    SetConfig() before calling this.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetIp6Config">
+  <title>The SetIp6Config() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetIp6Config"><primary sortas="VpnPlugin.SetIp6Config">org.freedesktop.NetworkManager.VPN.Plugin.SetIp6Config()</primary></indexterm>
+<programlisting>
+SetIp6Config (IN  a{sv} config);
+</programlisting>
+<para>Set IPv6 details on the connection.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sv} <parameter>config</parameter></literal>:</term>
+  <listitem><para>Ip6Config details for the connection. You must call    SetConfig() before calling this.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetFailure">
+  <title>The SetFailure() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetFailure"><primary sortas="VpnPlugin.SetFailure">org.freedesktop.NetworkManager.VPN.Plugin.SetFailure()</primary></indexterm>
+<programlisting>
+SetFailure (IN  s reason);
+</programlisting>
+<para>Indicate a failure to the plugin.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN s <parameter>reason</parameter></literal>:</term>
+  <listitem><para>The reason for the failure.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="method" id="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.NewSecrets">
+  <title>The NewSecrets() method</title>
+  <indexterm zone="gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.NewSecrets"><primary sortas="VpnPlugin.NewSecrets">org.freedesktop.NetworkManager.VPN.Plugin.NewSecrets()</primary></indexterm>
+<programlisting>
+NewSecrets (IN  a{sa{sv}} connection);
+</programlisting>
+<para>Called in response to a SecretsRequired signal to deliver updated secrets         or other information to the plugin.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>IN a{sa{sv}} <parameter>connection</parameter></literal>:</term>
+  <listitem><para>Describes the connection including the new secrets.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-signals-org.freedesktop.NetworkManager.VPN.Plugin">
+  <title role="details.title">Signal Details</title>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.StateChanged">
+  <title>The "StateChanged" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.StateChanged"><primary sortas="VpnPlugin::StateChanged">org.freedesktop.NetworkManager.VPN.Plugin::StateChanged</primary></indexterm>
+<programlisting>
+StateChanged (u state);
+</programlisting>
+<para>Emitted when the plugin state changes.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>u <parameter>state</parameter></literal>:</term>
+  <listitem><para>The new state of the plugin.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.SecretsRequired">
+  <title>The "SecretsRequired" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.SecretsRequired"><primary sortas="VpnPlugin::SecretsRequired">org.freedesktop.NetworkManager.VPN.Plugin::SecretsRequired</primary></indexterm>
+<programlisting>
+SecretsRequired (s  message,
+                 as secrets);
+</programlisting>
+<para>Emitted during an ongoing ConnectInteractive() request when the plugin         has determined that new secrets are required.  NetworkManager will then         call the NewSecrets() method with a connection hash including the new         secrets.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>s <parameter>message</parameter></literal>:</term>
+  <listitem><para>Informational message, if any, about the request.  For example, if               a second PIN is required, could indicate to the user to wait for               the token code to change until entering the next PIN.</para></listitem>
+</varlistentry>
+<varlistentry>
+  <term><literal>as <parameter>secrets</parameter></literal>:</term>
+  <listitem><para>Array of strings of VPN secret names which the plugin thinks               secrets may be required for, or other VPN-specific data to be               processed by the VPN's front-end.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Config">
+  <title>The "Config" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Config"><primary sortas="VpnPlugin::Config">org.freedesktop.NetworkManager.VPN.Plugin::Config</primary></indexterm>
+<programlisting>
+Config (a{sv} config);
+</programlisting>
+<para>The plugin obtained generic configuration information.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>config</parameter></literal>:</term>
+  <listitem><para>The configuration information.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Ip4Config">
+  <title>The "Ip4Config" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Ip4Config"><primary sortas="VpnPlugin::Ip4Config">org.freedesktop.NetworkManager.VPN.Plugin::Ip4Config</primary></indexterm>
+<programlisting>
+Ip4Config (a{sv} ip4config);
+</programlisting>
+<para>The plugin obtained an IPv4 configuration.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>ip4config</parameter></literal>:</term>
+  <listitem><para>The IPv4 configuration.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Ip6Config">
+  <title>The "Ip6Config" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Ip6Config"><primary sortas="VpnPlugin::Ip6Config">org.freedesktop.NetworkManager.VPN.Plugin::Ip6Config</primary></indexterm>
+<programlisting>
+Ip6Config (a{sv} ip6config);
+</programlisting>
+<para>The plugin obtained an IPv6 configuration.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>a{sv} <parameter>ip6config</parameter></literal>:</term>
+  <listitem><para>The IPv6 configuration.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.LoginBanner">
+  <title>The "LoginBanner" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.LoginBanner"><primary sortas="VpnPlugin::LoginBanner">org.freedesktop.NetworkManager.VPN.Plugin::LoginBanner</primary></indexterm>
+<programlisting>
+LoginBanner (s banner);
+</programlisting>
+<para>Emitted when the plugin receives a login banner from the VPN service.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>s <parameter>banner</parameter></literal>:</term>
+  <listitem><para>The login banner string.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 role="signal" id="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Failure">
+  <title>The "Failure" signal</title>
+  <indexterm zone="gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Failure"><primary sortas="VpnPlugin::Failure">org.freedesktop.NetworkManager.VPN.Plugin::Failure</primary></indexterm>
+<programlisting>
+Failure (u reason);
+</programlisting>
+<para>Emitted when a failure in the VPN plugin occurs.</para>
+<variablelist role="params">
+<varlistentry>
+  <term><literal>u <parameter>reason</parameter></literal>:</term>
+  <listitem><para>Reason code for the failure.</para></listitem>
+</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 role="details" id="gdbus-properties-org.freedesktop.NetworkManager.VPN.Plugin">
+  <title role="details.title">Property Details</title>
+<refsect2 role="property" id="gdbus-property-org-freedesktop-NetworkManager-VPN-Plugin.State">
+  <title>The "State" property</title>
+  <indexterm zone="gdbus-property-org-freedesktop-NetworkManager-VPN-Plugin.State"><primary sortas="VpnPlugin:State">org.freedesktop.NetworkManager.VPN.Plugin:State</primary></indexterm>
+<programlisting>
+State  readable   u
+</programlisting>
+<para>The state of the plugin.</para>
+</refsect2>
+</refsect1>
+</refentry>
+
diff --git a/introspection/vpn-errors.xml b/introspection/vpn-errors.xml
index 7b92d073..c1e02aac 100644
--- a/introspection/vpn-errors.xml
+++ b/introspection/vpn-errors.xml
@@ -2,59 +2,59 @@
 <tp:errors xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"
     namespace="org.freedesktop.NetworkManager.VPN.Error">
   <tp:error name="General">
-    <tp:docstring>General failure without further details.</tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="General failure without further details." />
   </tp:error>
   <tp:error name="StartingInProgress">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       The plugin is already starting, and another connect request was received.
-    </tp:docstring>
+    " />
   </tp:error>
   <tp:error name="AlreadyStarted">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       The plugin is already connected, and another connect request was received.
-    </tp:docstring>
+    " />
   </tp:error>
   <tp:error name="StoppingInProgress">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       The plugin is already stopping, and another stop request was received.
-    </tp:docstring>
+    " />
   </tp:error>
   <tp:error name="AlreadyStopped">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       The plugin is already stopped, and another disconnect request was received.
-    </tp:docstring>
+    " />
   </tp:error>
   <tp:error name="WrongState">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       The request could not be processed because the VPN plugin is in the wrong
       state for this type of request.
-    </tp:docstring>
+    " />
   </tp:error>
   <tp:error name="BadArguments">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       The request could not be processed because it contained malformed
       arguments, or arguments of unexpected type. It usually means that one of
       the VPN setting data items or secrets was not of the expected type (i.e.
       int, string, bool, etc).
-    </tp:docstring>
+    " />
   </tp:error>
   <tp:error name="LaunchFailed">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       A binary providing the service failed to launch.
-    </tp:docstring>
+    " />
   </tp:error>
   <tp:error name="ConnectionInvalid">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       The request could not be processed because the connection was invalid. It
       usually means that the connection's VPN setting was missing some required
       data item or secret.
-    </tp:docstring>
+    " />
   </tp:error>
   <tp:error name="InteractiveNotSupported">
-    <tp:docstring>
+    <annotation name="org.gtk.GDBus.DocString" value="
       The request could not be processed because the plugin does not support
       interactive operations, such as ConnectInteractive() or NewSecrets().
-    </tp:docstring>
+    " />
   </tp:error>
 </tp:errors>