summary refs log tree commit diff
path: root/introspection
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2010-11-29 00:47:11 +0100
committerMichael Biebl <biebl@debian.org>2010-11-29 00:47:11 +0100
commit9fae01fa351805b2903e535736e06971bc0b925e (patch)
treec19bccf84c9f894e50fae678ba6ee2b2044e2d30 /introspection
Imported Upstream version 0.8.1 upstream/0.8.1
Diffstat (limited to 'introspection')
-rw-r--r--introspection/Makefile.am28
-rw-r--r--introspection/Makefile.in445
-rw-r--r--introspection/all.xml60
-rw-r--r--introspection/errors.xml36
-rw-r--r--introspection/generic-types.xml35
-rw-r--r--introspection/nm-access-point.xml92
-rw-r--r--introspection/nm-active-connection.xml57
-rw-r--r--introspection/nm-device-bt.xml48
-rw-r--r--introspection/nm-device-cdma.xml15
-rw-r--r--introspection/nm-device-ethernet.xml33
-rw-r--r--introspection/nm-device-gsm.xml15
-rw-r--r--introspection/nm-device-olpc-mesh.xml34
-rw-r--r--introspection/nm-device-serial.xml20
-rw-r--r--introspection/nm-device-wifi.xml104
-rw-r--r--introspection/nm-device.xml408
-rw-r--r--introspection/nm-dhcp4-config.xml20
-rw-r--r--introspection/nm-dhcp6-config.xml20
-rw-r--r--introspection/nm-exported-connection.xml99
-rw-r--r--introspection/nm-ip4-config.xml29
-rw-r--r--introspection/nm-ip6-config.xml19
-rw-r--r--introspection/nm-manager-client.xml71
-rw-r--r--introspection/nm-manager.xml295
-rw-r--r--introspection/nm-ppp-manager.xml22
-rw-r--r--introspection/nm-settings-system.xml81
-rw-r--r--introspection/nm-settings.xml47
-rw-r--r--introspection/nm-vpn-connection.xml168
-rw-r--r--introspection/nm-vpn-plugin.xml151
-rw-r--r--introspection/vpn-errors.xml32
28 files changed, 2484 insertions, 0 deletions
diff --git a/introspection/Makefile.am b/introspection/Makefile.am
new file mode 100644
index 00000000..212da3ab
--- /dev/null
+++ b/introspection/Makefile.am
@@ -0,0 +1,28 @@
+EXTRA_DIST = \
+	all.xml \
+	generic-types.xml \
+	errors.xml \
+	vpn-errors.xml \
+	nm-access-point.xml \
+	nm-device-bt.xml \
+	nm-device-wifi.xml \
+	nm-device-olpc-mesh.xml \
+	nm-device-ethernet.xml \
+	nm-device-cdma.xml \
+	nm-device-gsm.xml \
+	nm-device-serial.xml \
+	nm-device.xml \
+	nm-ip4-config.xml \
+	nm-ip6-config.xml \
+	nm-manager.xml \
+	nm-manager-client.xml \
+	nm-settings.xml \
+	nm-settings-system.xml \
+	nm-exported-connection.xml \
+	nm-vpn-plugin.xml \
+	nm-vpn-connection.xml \
+	nm-ppp-manager.xml \
+	nm-active-connection.xml \
+	nm-dhcp4-config.xml \
+	nm-dhcp6-config.xml
+
diff --git a/introspection/Makefile.in b/introspection/Makefile.in
new file mode 100644
index 00000000..e99bc4a0
--- /dev/null
+++ b/introspection/Makefile.in
@@ -0,0 +1,445 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = introspection
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
+	$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/libnl-check.m4 $(top_srcdir)/m4/libtool.m4 \
+	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_SYS_DIR = @DBUS_SYS_DIR@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DHCLIENT_PATH = @DHCLIENT_PATH@
+DHCPCD_PATH = @DHCPCD_PATH@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GMODULE_CFLAGS = @GMODULE_CFLAGS@
+GMODULE_LIBS = @GMODULE_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
+GNUTLS_LIBS = @GNUTLS_LIBS@
+GREP = @GREP@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GUDEV_CFLAGS = @GUDEV_CFLAGS@
+GUDEV_LIBS = @GUDEV_LIBS@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+IPTABLES_PATH = @IPTABLES_PATH@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDL = @LIBDL@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBM = @LIBM@
+LIBNL_CFLAGS = @LIBNL_CFLAGS@
+LIBNL_LIBS = @LIBNL_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSS_CFLAGS = @NSS_CFLAGS@
+NSS_LIBS = @NSS_LIBS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POLKIT_CFLAGS = @POLKIT_CFLAGS@
+POLKIT_LIBS = @POLKIT_LIBS@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@
+RANLIB = @RANLIB@
+RESOLVCONF_PATH = @RESOLVCONF_PATH@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSTEM_CA_PATH = @SYSTEM_CA_PATH@
+UDEV_BASE_DIR = @UDEV_BASE_DIR@
+USE_NLS = @USE_NLS@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = \
+	all.xml \
+	generic-types.xml \
+	errors.xml \
+	vpn-errors.xml \
+	nm-access-point.xml \
+	nm-device-bt.xml \
+	nm-device-wifi.xml \
+	nm-device-olpc-mesh.xml \
+	nm-device-ethernet.xml \
+	nm-device-cdma.xml \
+	nm-device-gsm.xml \
+	nm-device-serial.xml \
+	nm-device.xml \
+	nm-ip4-config.xml \
+	nm-ip6-config.xml \
+	nm-manager.xml \
+	nm-manager-client.xml \
+	nm-settings.xml \
+	nm-settings-system.xml \
+	nm-exported-connection.xml \
+	nm-vpn-plugin.xml \
+	nm-vpn-connection.xml \
+	nm-ppp-manager.xml \
+	nm-active-connection.xml \
+	nm-dhcp4-config.xml \
+	nm-dhcp6-config.xml
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu introspection/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu introspection/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/introspection/all.xml b/introspection/all.xml
new file mode 100644
index 00000000..d6b2f236
--- /dev/null
+++ b/introspection/all.xml
@@ -0,0 +1,60 @@
+<tp:spec
+  xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"
+  xmlns:xi="http://www.w3.org/2001/XInclude">
+
+<tp:title>NetworkManager D-Bus Interface Specification</tp:title>
+<tp:version>0.8</tp:version>
+
+
+<tp:copyright>Copyright (C) 2008 - 2009 Red Hat, Inc.</tp:copyright>
+<tp:copyright>Copyright (C) 2008 - 2009 Novell, Inc.</tp:copyright>
+
+<tp:license xmlns="http://www.w3.org/1999/xhtml">
+<p>This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.</p>
+
+<p>This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.</p>
+
+<p>You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</p>
+</tp:license>
+
+<xi:include href="nm-manager.xml"/>
+<xi:include href="nm-access-point.xml"/>
+<xi:include href="nm-device.xml"/>
+<xi:include href="nm-device-ethernet.xml"/>
+<xi:include href="nm-device-wifi.xml"/>
+<xi:include href="nm-device-cdma.xml"/>
+<xi:include href="nm-device-gsm.xml"/>
+<xi:include href="nm-device-serial.xml"/>
+<xi:include href="nm-device-bt.xml"/>
+<xi:include href="nm-device-olpc-mesh.xml"/>
+<xi:include href="nm-ip4-config.xml"/>
+<xi:include href="nm-ip6-config.xml"/>
+<xi:include href="nm-dhcp4-config.xml"/>
+<xi:include href="nm-dhcp6-config.xml"/>
+<xi:include href="nm-settings.xml"/>
+<xi:include href="nm-exported-connection.xml"/>
+<xi:include href="nm-active-connection.xml"/>
+<xi:include href="nm-vpn-connection.xml"/>
+<xi:include href="nm-vpn-plugin.xml"/>
+
+<xi:include href="errors.xml"/>
+<xi:include href="vpn-errors.xml"/>
+<xi:include href="generic-types.xml"/>
+
+<!--
+<xi:include href="extensions.xml">
+	<xi:fallback>
+		<!- - absence of non-spec extensions is OK - ->
+	</xi:fallback>
+</xi:include>
+-->
+
+</tp:spec>
diff --git a/introspection/errors.xml b/introspection/errors.xml
new file mode 100644
index 00000000..444b325d
--- /dev/null
+++ b/introspection/errors.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" ?>
+<tp:errors xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"
+    namespace="org.freedesktop.NetworkManager.Error">
+  <tp:copyright>Copyright (C) 2008 Novell, Inc.</tp:copyright>
+
+  <tp:error name="Unknown Connection">
+    <tp:docstring>
+        Connection was not provided by any known settings service.
+    </tp:docstring>
+  </tp:error>
+
+  <tp:error name="Unknown Device">
+    <tp:docstring>
+        Unknown device.
+    </tp:docstring>
+  </tp:error>
+
+  <tp:error name="Invalid Service">
+    <tp:docstring>
+        Invalid settings service (not a recognized system or user settings service name).
+    </tp:docstring>
+  </tp:error>
+
+  <tp:error name="System Connection">
+    <tp:docstring>
+        Connection was superseded by a system connection.
+    </tp:docstring>
+  </tp:error>
+
+  <tp:error name="Permission Denied">
+    <tp:docstring>
+    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
new file mode 100644
index 00000000..1a9e3169
--- /dev/null
+++ b/introspection/generic-types.xml
@@ -0,0 +1,35 @@
+<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>
+    <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>
+    <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>
+      <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>
+    <tp:enumvalue suffix="UNKNOWN" value="0">
+      <tp:docstring>Mode is unknown.</tp:docstring>
+    </tp:enumvalue>
+    <tp:enumvalue suffix="ADHOC" value="1">
+      <tp:docstring>Uncoordinated network without central infrastructure.</tp:docstring>
+    </tp:enumvalue>
+    <tp:enumvalue suffix="INFRA" value="2">
+      <tp:docstring>Coordinated network with one or more central controllers.</tp:docstring>
+    </tp:enumvalue>
+  </tp:enum>
+</tp:generic-types>
diff --git a/introspection/nm-access-point.xml b/introspection/nm-access-point.xml
new file mode 100644
index 00000000..21f238ff
--- /dev/null
+++ b/introspection/nm-access-point.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<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>
+    </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>
+    </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>
+    </property>
+    <property name="Ssid" type="ay" access="read">
+      <tp:docstring>The Service Set Identifier identifying the access point.</tp:docstring>
+    </property>
+    <property name="Frequency" type="u" access="read">
+      <tp:docstring>The radio channel frequency in use by the access point, in MHz.</tp:docstring>
+    </property>
+    <property name="HwAddress" type="s" access="read">
+      <tp:docstring>The hardware address (BSSID) of the access point.</tp:docstring>
+    </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>
+    </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>
+    </property>
+    <property name="Strength" type="y" access="read">
+      <tp:docstring>The current signal quality of the access point, in percent.</tp:docstring>
+    </property>
+
+    <signal name="PropertiesChanged">
+        <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+            <tp:docstring>
+                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>
+        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>
+      </tp:flag>
+      <tp:flag suffix="PRIVACY" value="0x1">
+        <tp:docstring>Access point supports privacy measures.</tp:docstring>
+      </tp:flag>
+    </tp:flags>
+    <tp:flags name="NM_802_11_AP_SEC" value-prefix="NM_802_11_AP_SEC" type="u">
+      <tp:docstring>
+        Flags describing the security capabilities of the access point.
+      </tp:docstring>
+      <tp:flag suffix="NONE" value="0x0">
+        <tp:docstring>Null flag.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="PAIR_WEP40" value="0x1">
+        <tp:docstring>Access point supports pairwise 40-bit WEP encryption.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="PAIR_WEP104" value="0x2">
+        <tp:docstring>Access point supports pairwise 104-bit WEP encryption.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="PAIR_TKIP" value="0x4">
+        <tp:docstring>Access point supports pairwise TKIP encryption.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="PAIR_CCMP" value="0x8">
+        <tp:docstring>Access point supports pairwise CCMP encryption.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="GROUP_WEP40" value="0x10">
+        <tp:docstring>Access point supports a group 40-bit WEP cipher.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="GROUP_WEP104" value="0x20">
+        <tp:docstring>Access point supports a group 104-bit WEP cipher.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="GROUP_TKIP" value="0x40">
+        <tp:docstring>Access point supports a group TKIP cipher.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="GROUP_CCMP" value="0x80">
+        <tp:docstring>Access point supports a group CCMP cipher.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="KEY_MGMT_PSK" value="0x100">
+        <tp:docstring>Access point supports PSK key management.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="KEY_MGMT_802_1X" value="0x200">
+        <tp:docstring>Access point supports 802.1x key management.</tp:docstring>
+      </tp:flag>
+    </tp:flags>
+  </interface>
+</node>
+
diff --git a/introspection/nm-active-connection.xml b/introspection/nm-active-connection.xml
new file mode 100644
index 00000000..765830a1
--- /dev/null
+++ b/introspection/nm-active-connection.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager.Connection.Active">
+    <property name="ServiceName" type="s" access="read">
+      <tp:docstring>The D-Bus service name providing this connection.</tp:docstring>
+    </property>
+    <property name="Connection" type="o" access="read">
+      <tp:docstring>The path of the connection.</tp:docstring>
+    </property>
+    <property name="SpecificObject" type="o" access="read">
+      <tp:docstring>A specific object associated with the active connection.</tp:docstring>
+    </property>
+    <property name="Devices" type="ao" access="read">
+      <tp:docstring>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>The state of this active connection.</tp:docstring>
+    </property>
+    <property name="Default" type="b" access="read">
+      <tp:docstring>Whether this active connection is the default IPv4 connection, i.e. whether it currently owns the default IPv4 route.</tp:docstring>
+    </property>
+    <property name="Default6" type="b" access="read">
+      <tp:docstring>Whether this active connection is the default IPv6 connection, i.e. whether it currently owns the default IPv6 route.</tp:docstring>
+    </property>
+    <property name="Vpn" type="b" access="read">
+      <tp:docstring>Whether this active connection is also a VPN connection.</tp:docstring>
+    </property>
+
+    <signal name="PropertiesChanged">
+        <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+            <tp:docstring>
+                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>
+          The active connection is in an unknown state.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="ACTIVATING" value="1">
+        <tp:docstring>
+          The connection is activating.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="ACTIVATED" value="2">
+        <tp:docstring>
+          The connection is activated.
+        </tp:docstring>
+      </tp:enumvalue>
+    </tp:enum>
+  </interface>
+</node>
+
diff --git a/introspection/nm-device-bt.xml b/introspection/nm-device-bt.xml
new file mode 100644
index 00000000..cc4a9b54
--- /dev/null
+++ b/introspection/nm-device-bt.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager.Device.Bluetooth">
+
+    <property name="HwAddress" type="s" access="read">
+      <tp:docstring>
+        Bluetooth hardware address of the device.
+      </tp:docstring>
+    </property>
+
+    <property name="Name" type="s" access="read">
+      <tp:docstring>
+        Bluetooth name of the device.
+      </tp:docstring>
+    </property>
+
+    <property name="BtCapabilities" type="u" access="read" tp:type="NM_BT_CAPABILITIES">
+      <tp:docstring>
+        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>
+                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>
+        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>
+      </tp:flag>
+      <tp:flag suffix="DUN" value="0x1">
+        <tp:docstring>The device supports Bluetooth Dial-Up Networking.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="PAN" value="0x2">
+        <tp:docstring>The device supports Bluetooth Personal Area Networking.</tp:docstring>
+      </tp:flag>
+    </tp:flags>
+
+  </interface>
+</node>
diff --git a/introspection/nm-device-cdma.xml b/introspection/nm-device-cdma.xml
new file mode 100644
index 00000000..2b43f8fd
--- /dev/null
+++ b/introspection/nm-device-cdma.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager.Device.Cdma">
+
+    <signal name="PropertiesChanged">
+        <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+            <tp:docstring>
+                A dictionary mapping property names to variant boxed values
+            </tp:docstring>
+        </arg>
+    </signal>
+
+  </interface>
+</node>
diff --git a/introspection/nm-device-ethernet.xml b/introspection/nm-device-ethernet.xml
new file mode 100644
index 00000000..5b7c88eb
--- /dev/null
+++ b/introspection/nm-device-ethernet.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager.Device.Wired">
+
+    <property name="HwAddress" type="s" access="read">
+      <tp:docstring>
+        Hardware address of the device.
+      </tp:docstring>
+    </property>
+
+    <property name="Speed" type="u" access="read">
+      <tp:docstring>
+        Design speed of the device, in megabits/second (Mb/s).
+      </tp:docstring>
+    </property>
+
+    <property name="Carrier" type="b" access="read">
+      <tp:docstring>
+        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>
+                A dictionary mapping property names to variant boxed values
+            </tp:docstring>
+        </arg>
+    </signal>
+
+  </interface>
+</node>
diff --git a/introspection/nm-device-gsm.xml b/introspection/nm-device-gsm.xml
new file mode 100644
index 00000000..650d656a
--- /dev/null
+++ b/introspection/nm-device-gsm.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager.Device.Gsm">
+
+    <signal name="PropertiesChanged">
+        <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+            <tp:docstring>
+                A dictionary mapping property names to variant boxed values
+            </tp:docstring>
+        </arg>
+    </signal>
+
+  </interface>
+</node>
diff --git a/introspection/nm-device-olpc-mesh.xml b/introspection/nm-device-olpc-mesh.xml
new file mode 100644
index 00000000..c30ecfc6
--- /dev/null
+++ b/introspection/nm-device-olpc-mesh.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<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>
+        The hardware address of the device.
+      </tp:docstring>
+    </property>
+
+    <property name="Companion" type="o" access="read">
+      <tp:docstring>
+        The object path of the companion device.
+      </tp:docstring>
+    </property>
+
+    <property name="ActiveChannel" type="u" access="read">
+      <tp:docstring>
+        The currently active channel.
+      </tp:docstring>
+    </property>
+
+    <signal name="PropertiesChanged">
+        <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+            <tp:docstring>
+                A dictionary containing the FIXME: check changed parameters.
+            </tp:docstring>
+        </arg>
+        <tp:docstring>
+            Emitted when the wireless device's properties changed.
+        </tp:docstring>
+    </signal>
+  </interface>
+</node>
diff --git a/introspection/nm-device-serial.xml b/introspection/nm-device-serial.xml
new file mode 100644
index 00000000..13b08537
--- /dev/null
+++ b/introspection/nm-device-serial.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager.Device.Serial">
+
+  <signal name="PppStats">
+    <arg name="in_bytes" type="u">
+      <tp:docstring>
+	Bytes received
+      </tp:docstring>
+    </arg>
+    <arg name="out_bytes" type="u">
+      <tp:docstring>
+	Bytes sent
+      </tp:docstring>
+    </arg>
+  </signal>
+
+  </interface>
+</node>
diff --git a/introspection/nm-device-wifi.xml b/introspection/nm-device-wifi.xml
new file mode 100644
index 00000000..21ace0a4
--- /dev/null
+++ b/introspection/nm-device-wifi.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager.Device.Wireless">
+    <method name="GetAccessPoints">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_device_get_access_points"/>
+      <arg name="access_points" type="ao" direction="out">
+        <tp:docstring>
+          List of access point object paths
+        </tp:docstring>
+      </arg>
+      <tp:docstring>
+        Get the list of access points visible to this device.
+      </tp:docstring>
+    </method>
+
+    <property name="HwAddress" type="s" access="read">
+      <tp:docstring>
+        The hardware address of the device.
+      </tp:docstring>
+    </property>
+    <property name="Mode" type="u" access="read" tp:type="NM_802_11_MODE">
+      <tp:docstring>
+        The operating mode of the wireless device.
+      </tp:docstring>
+    </property>
+
+    <property name="Bitrate" type="u" access="read">
+      <tp:docstring>
+        The bit rate currently used by the wireless device, in kilobits/second (Kb/s).
+      </tp:docstring>
+    </property>
+    <property name="ActiveAccessPoint" type="o" access="read">
+      <tp:docstring>
+        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>
+        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>
+                A dictionary containing the FIXME: check changed parameters.
+            </tp:docstring>
+        </arg>
+        <tp:docstring>
+            Emitted when the wireless device's properties changed.
+        </tp:docstring>
+    </signal>
+
+    <signal name="AccessPointAdded">
+        <arg name="access_point" type="o">
+            <tp:docstring>
+                The object path of the newly found access point.
+            </tp:docstring>
+        </arg>
+        <tp:docstring>
+            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>
+                The object path of the access point that has disappeared.
+            </tp:docstring>
+        </arg>
+        <tp:docstring>
+            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>
+        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>
+      </tp:flag>
+      <tp:flag suffix="CIPHER_WEP40" value="0x1">
+        <tp:docstring>The device supports the 40-bit WEP cipher.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="CIPHER_WEP104" value="0x2">
+        <tp:docstring>The device supports the 104-bit WEP cipher.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="CIPHER_TKIP" value="0x4">
+        <tp:docstring>The device supports the TKIP cipher.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="CIPHER_CCMP" value="0x8">
+        <tp:docstring>The device supports the CCMP cipher.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="WPA" value="0x10">
+        <tp:docstring>The device supports the WPA encryption/authentication protocol.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="RSN" value="0x20">
+        <tp:docstring>The device supports the RSN encryption/authentication protocol.</tp:docstring>
+      </tp:flag>
+    </tp:flags>
+  </interface>
+</node>
diff --git a/introspection/nm-device.xml b/introspection/nm-device.xml
new file mode 100644
index 00000000..0d0a9508
--- /dev/null
+++ b/introspection/nm-device.xml
@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<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>
+        Unique Device Identifier.
+      </tp:docstring>
+    </property>
+    <property name="Interface" type="s" access="read">
+      <tp:docstring>
+        The network interface offered by the device.
+      </tp:docstring>
+    </property>
+    <property name="Driver" type="s" access="read">
+      <tp:docstring>
+        The driver handling the device.
+      </tp:docstring>
+    </property>
+    <property name="Capabilities" type="u" access="read" tp:type="NM_DEVICE_CAP">
+      <tp:docstring>
+        Flags describing the capabilities of the device.
+      </tp:docstring>
+    </property>
+    <property name="Ip4Address" type="i" access="read">
+      <tp:docstring>
+        The IPv4 address bound to the device. FIXME: what about devices with >1 IP address?
+      </tp:docstring>
+    </property>
+    <property name="State" type="u" access="read" tp:type="NM_DEVICE_STATE">
+      <tp:docstring>
+        The current state of the device.
+      </tp:docstring>
+    </property>
+    <property name="Ip4Config" type="o" access="read">
+      <tp:docstring>
+        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>
+        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>
+        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="Managed" type="b" access="read">
+      <tp:docstring>
+        Whether or not this device is managed by NetworkManager.
+      </tp:docstring>
+    </property>
+    <property name="DeviceType" type="u" access="read" tp:type="NM_DEVICE_TYPE">
+      <tp:docstring>
+        The general type of the network device; ie Ethernet, WiFi, etc.
+      </tp:docstring>
+    </property>
+
+    <method name="Disconnect">
+      <tp:docstring>
+        Disconnects a device and prevents the device from automatically activating further connections without user intervention.
+      </tp:docstring>
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_device_disconnect"/>
+    </method>
+
+    <signal name="StateChanged">
+      <arg name="new_state" type="u" tp:type="NM_DEVICE_STATE">
+        <tp:docstring>
+          The new state of the device.
+        </tp:docstring>
+      </arg>
+      <arg name="old_state" type="u" tp:type="NM_DEVICE_STATE">
+        <tp:docstring>
+          The previous state of the device.
+        </tp:docstring>
+      </arg>
+      <arg name="reason" type="u" tp:type="NM_DEVICE_STATE_REASON">
+        <tp:docstring>
+          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>
+          The device is in an unknown state.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="UNMANAGED" value="1">
+        <tp:docstring>
+          The device is not managed by NetworkManager.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="UNAVAILABLE" value="2">
+        <tp:docstring>
+          The device cannot be used (carrier off, rfkill, etc).
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="DISCONNECTED" value="3">
+        <tp:docstring>
+          The device is not connected.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="PREPARE" value="4">
+        <tp:docstring>
+          The device is preparing to connect.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONFIG" value="5">
+        <tp:docstring>
+          The device is being configured.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="NEED_AUTH" value="6">
+        <tp:docstring>
+          The device is awaiting secrets necessary to continue connection.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="IP_CONFIG" value="7">
+        <tp:docstring>
+          The IP settings of the device are being requested and configured.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="ACTIVATED" value="8">
+        <tp:docstring>
+          The device is active.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="FAILED" value="9">
+        <tp:docstring>
+          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>
+          The device type is unknown.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="ETHERNET" value="1">
+        <tp:docstring>
+          The device is wired Ethernet device.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="WIFI" value="2">
+        <tp:docstring>
+          The device is an 802.11 WiFi device.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM" value="3">
+        <tp:docstring>
+          The device is a GSM-based cellular WAN device.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CDMA" value="4">
+        <tp:docstring>
+          The device is a CDMA/IS-95-based cellular WAN device.
+        </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>
+      </tp:flag>
+      <tp:flag suffix="NM_SUPPORTED" value="0x1">
+        <tp:docstring>The device is supported by NetworkManager.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="CARRIER_DETECT" value="0x2">
+        <tp:docstring>The device supports carrier detection.</tp:docstring>
+      </tp:flag>
+    </tp:flags>
+
+    <tp:enum name="NM_DEVICE_STATE_REASON" type="u">
+      <tp:enumvalue suffix="UNKNOWN" value="0">
+        <tp:docstring>
+          The reason for the device state change is unknown.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="NONE" value="1">
+        <tp:docstring>
+          The state change is normal.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="NOW_MANAGED" value="2">
+        <tp:docstring>
+          The device is now managed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="NOW_UNMANAGED" value="3">
+        <tp:docstring>
+          The device is no longer managed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONFIG_FAILED" value="4">
+        <tp:docstring>
+          The device could not be readied for configuration.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONFIG_UNAVAILABLE" value="5">
+        <tp:docstring>
+          IP configuration could not be reserved (no available address, timeout, etc).
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONFIG_EXPIRED" value="6">
+        <tp:docstring>
+          The IP configuration is no longer valid.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="NO_SECRETS" value="7">
+        <tp:docstring>
+          Secrets were required, but not provided.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SUPPLICANT_DISCONNECT" value="8">
+        <tp:docstring>
+          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>
+          Configuration of the 802.1X supplicant failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SUPPLICANT_FAILED" value="10">
+        <tp:docstring>
+          The 802.1X supplicant quit or failed unexpectedly.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SUPPLICANT_TIMEOUT" value="11">
+        <tp:docstring>
+          The 802.1X supplicant took too long to authenticate.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="PPP_START_FAILED" value="12">
+        <tp:docstring>
+          The PPP service failed to start within the allowed time.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="PPP_DISCONNECT" value="13">
+        <tp:docstring>
+          The PPP service disconnected unexpectedly.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="PPP_FAILED" value="14">
+        <tp:docstring>
+          The PPP service quit or failed unexpectedly.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="DHCP_START_FAILED" value="15">
+        <tp:docstring>
+          The DHCP service failed to start within the allowed time.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="DHCP_ERROR" value="16">
+        <tp:docstring>
+          The DHCP service reported an unexpected error.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="DHCP_FAILED" value="17">
+        <tp:docstring>
+          The DHCP service quit or failed unexpectedly.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SHARED_START_FAILED" value="18">
+        <tp:docstring>
+          The shared connection service failed to start.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SHARED_FAILED" value="19">
+        <tp:docstring>
+          The shared connection service quit or failed unexpectedly.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="AUTOIP_START_FAILED" value="20">
+        <tp:docstring>
+          The AutoIP service failed to start.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="AUTOIP_ERROR" value="21">
+        <tp:docstring>
+          The AutoIP service reported an unexpected error.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="AUTOIP_FAILED" value="22">
+        <tp:docstring>
+          The AutoIP service quit or failed unexpectedly.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_BUSY" value="23">
+        <tp:docstring>
+          Dialing failed because the line was busy.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_NO_DIAL_TONE" value="24">
+        <tp:docstring>
+          Dialing failed because there was no dial tone.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_NO_CARRIER" value="25">
+        <tp:docstring>
+          Dialing failed because there was carrier.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_DIAL_TIMEOUT" value="26">
+        <tp:docstring>
+          Dialing timed out.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_DIAL_FAILED" value="27">
+        <tp:docstring>
+          Dialing failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_INIT_FAILED" value="28">
+        <tp:docstring>
+          Modem initialization failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM_APN_FAILED" value="29">
+        <tp:docstring>
+          Failed to select the specified GSM APN.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM_REGISTRATION_NOT_SEARCHING" value="30">
+        <tp:docstring>
+          Not searching for networks.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM_REGISTRATION_DENIED" value="31">
+        <tp:docstring>
+          Network registration was denied.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM_REGISTRATION_TIMEOUT" value="32">
+        <tp:docstring>
+          Network registration timed out.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM_REGISTRATION_FAILED" value="33">
+        <tp:docstring>
+          Failed to register with the requested GSM network.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="GSM_PIN_CHECK_FAILED" value="34">
+        <tp:docstring>
+          PIN check failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="FIRMWARE_MISSING" value="35">
+        <tp:docstring>
+          Necessary firmware for the device may be missing.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="REMOVED" value="36">
+        <tp:docstring>
+          The device was removed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SLEEPING" value="37">
+        <tp:docstring>
+          NetworkManager went to sleep.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONNECTION_REMOVED" value="38">
+        <tp:docstring>
+          The device's active connection was removed or disappeared.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="USER_REQUESTED" value="39">
+        <tp:docstring>
+          A user or client requested the disconnection.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CARRIER" value="40">
+        <tp:docstring>
+          The device's carrier/link changed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONNECTION_ASSUMED" value="41">
+        <tp:docstring>
+          The device's existing connection was assumed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SUPPLICANT_AVAILABLE" value="42">
+        <tp:docstring>
+          The 802.1x supplicant is now available.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="MODEM_NOT_FOUND" value="43">
+        <tp:docstring>
+          The modem could not be found.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="BT_FAILED" value="44">
+        <tp:docstring>
+          The Bluetooth connection timed out or failed.
+        </tp:docstring>
+      </tp:enumvalue>
+    </tp:enum>
+
+  </interface>
+</node>
diff --git a/introspection/nm-dhcp4-config.xml b/introspection/nm-dhcp4-config.xml
new file mode 100644
index 00000000..c0821ada
--- /dev/null
+++ b/introspection/nm-dhcp4-config.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+    <interface name="org.freedesktop.NetworkManager.DHCP4Config">
+        <tp:docstring>
+            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>
+        </property>
+
+        <signal name="PropertiesChanged">
+            <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+                <tp:docstring>
+                    A dictionary mapping property names to variant boxed values
+                </tp:docstring>
+            </arg>
+        </signal>
+    </interface>
+</node>
diff --git a/introspection/nm-dhcp6-config.xml b/introspection/nm-dhcp6-config.xml
new file mode 100644
index 00000000..93b0f1c8
--- /dev/null
+++ b/introspection/nm-dhcp6-config.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+    <interface name="org.freedesktop.NetworkManager.DHCP6Config">
+        <tp:docstring>
+            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>
+        </property>
+
+        <signal name="PropertiesChanged">
+            <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+                <tp:docstring>
+                    A dictionary mapping property names to variant boxed values
+                </tp:docstring>
+            </arg>
+        </signal>
+    </interface>
+</node>
diff --git a/introspection/nm-exported-connection.xml b/introspection/nm-exported-connection.xml
new file mode 100644
index 00000000..46907c05
--- /dev/null
+++ b/introspection/nm-exported-connection.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+
+    <interface name="org.freedesktop.NetworkManagerSettings.Connection">
+        <tp:docstring>
+            Represents a single network connection configuration.
+        </tp:docstring>
+
+        <method name="Update">
+          <tp:docstring>
+            Update the connection with new settings and properties, replacing all previous settings and properties.
+          </tp:docstring>
+          <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_exported_connection_update"/>
+          <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+          <arg name="properties" type="a{sa{sv}}" direction="in">
+            <tp:docstring>
+              New connection properties.
+            </tp:docstring>
+          </arg>
+        </method>
+
+        <method name="Delete">
+          <tp:docstring>
+            Delete the connection.
+          </tp:docstring>
+          <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_exported_connection_delete"/>
+          <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+        </method>
+
+        <method name="GetSettings">
+            <tp:docstring>
+                Get the settings maps describing this object.
+            </tp:docstring>
+            <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_exported_connection_get_settings"/>
+            <arg name="settings" type="a{sa{sv}}" direction="out" tp:type="String_String_Variant_Map_Map">
+                <tp:docstring>
+                    The nested settings maps describing this object.
+                </tp:docstring>
+            </arg>
+        </method>
+
+        <signal name="Updated">
+            <tp:docstring>
+                Emitted when some settings changed.
+            </tp:docstring>
+            <arg name="settings" type="a{sa{sv}}" tp:type="String_String_Variant_Map_Map">
+                <tp:docstring>
+                    Contains complete connection setting parameters, including changes.
+                </tp:docstring>
+            </arg>
+        </signal>
+
+        <signal name="Removed">
+            <tp:docstring>
+                Emitted when this connection has been deleted/removed.  After receipt of this signal, the object no longer exists.
+            </tp:docstring>
+        </signal>
+
+    </interface>
+
+    <interface name="org.freedesktop.NetworkManagerSettings.Connection.Secrets">
+        <tp:docstring>
+            Secrets have a separate interface so that they can be locked down.
+        </tp:docstring>
+
+        <method name="GetSecrets">
+            <tp:docstring>
+                Get the secrets encapsulated in this object.
+            </tp:docstring>
+            <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_exported_connection_get_secrets"/>
+            <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+            <arg name="setting_name" type="s" direction="in">
+                <tp:docstring>
+                    Name of the setting to return.
+                </tp:docstring>
+            </arg>
+            <arg name="hints" type="as" direction="in">
+                <tp:docstring>
+                    Array of strings of key names in the Setting for which NM thinks
+                    a secrets may be required.
+                </tp:docstring>
+            </arg>
+            <arg name="request_new" type="b" direction="in">
+                <tp:docstring>
+                    Indicates whether new secrets should be requested or if the request can be fulfilled from storage.
+                </tp:docstring>
+            </arg>
+
+            <arg name="secrets" type="a{sa{sv}}" direction="out" tp:type="String_String_Variant_Map_Map">
+                <tp:docstring>
+                    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>
+        </method>
+
+    </interface>
+
+</node>
diff --git a/introspection/nm-ip4-config.xml b/introspection/nm-ip4-config.xml
new file mode 100644
index 00000000..70d3e1ce
--- /dev/null
+++ b/introspection/nm-ip4-config.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<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>Array of tuples of IPv4 address/prefix/gateway.  All 3
+      elements of each tuple are in network byte order.  Essentially:
+      [(addr, prefix, gateway), (addr, prefix, gateway), ...]
+      </tp:docstring>
+    </property>
+    <property name="Nameservers" type="au" access="read">
+      <tp:docstring>The nameservers in use.</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>
+    </property>
+    <property name="Domains" type="as" access="read">
+      <tp:docstring>A list of domains this address belongs to.</tp:docstring>
+    </property>
+    <property name="Routes" type="aau" access="read">
+      <tp:docstring>Tuples 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), ...]
+      </tp:docstring>
+    </property>
+  </interface>
+</node>
+
diff --git a/introspection/nm-ip6-config.xml b/introspection/nm-ip6-config.xml
new file mode 100644
index 00000000..60478185
--- /dev/null
+++ b/introspection/nm-ip6-config.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<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>Tuples of IPv6 address/prefix/gateway.</tp:docstring>
+    </property>
+    <property name="Nameservers" type="aay" access="read">
+      <tp:docstring>The nameservers in use.</tp:docstring>
+    </property>
+    <property name="Domains" type="as" access="read">
+      <tp:docstring>A list of domains this address belongs to.</tp:docstring>
+    </property>
+    <property name="Routes" type="a(ayuayu)" access="read">
+      <tp:docstring>Tuples of IPv6 route/prefix/next-hop/metric.</tp:docstring>
+    </property>
+  </interface>
+</node>
+
diff --git a/introspection/nm-manager-client.xml b/introspection/nm-manager-client.xml
new file mode 100644
index 00000000..7a9e311c
--- /dev/null
+++ b/introspection/nm-manager-client.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!-- 
+READ ME! READ ME! READ ME! READ ME! READ ME!
+
+This file needs to be kept in sync with nm-manager.xml with the exception of
+the legacy methods at the end of nm-manager.xml.
+
+This file is only used to ensure that a few legacy 0.6 D-DBus methods that
+NM supports don't leak into libnm-glib, but are only exposed by the NMManager
+object.  dbus-glib generates the same bound function names for D-Bus the methods
+"sleep" and "Sleep", unfortunately.
+-->
+
+<node name="/">
+  <interface name="org.freedesktop.NetworkManager">
+    <method name="GetDevices">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_get_devices"/>
+      <arg name="devices" type="ao" direction="out"/>
+    </method>
+
+    <method name="ActivateConnection">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_activate_connection"/>
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <arg name="service_name" type="s" direction="in"/>
+      <arg name="connection" type="o" direction="in"/>
+      <arg name="device" type="o" direction="in"/>
+      <arg name="specific_object" type="o" direction="in"/>
+      <arg name="active_connection" type="o" direction="out"/>
+    </method>
+
+    <method name="DeactivateConnection">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_deactivate_connection"/>
+      <arg name="active_connection" type="o" direction="in"/>
+    </method>
+
+    <method name="Sleep">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_sleep"/>
+      <arg name="sleep" type="b" direction="in"/>
+    </method>
+
+    <method name="Enable">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_enable"/>
+      <arg name="enable" type="b" direction="in"/>
+    </method>
+
+    <property name="NetworkingEnabled" type="b" access="read"/>
+    <property name="WirelessEnabled" type="b" access="readwrite"/>
+    <property name="WirelessHardwareEnabled" type="b" access="read"/>
+    <property name="WwanEnabled" type="b" access="readwrite"/>
+    <property name="WwanHardwareEnabled" type="b" access="read"/>
+    <property name="ActiveConnections" type="ao" access="read"/>
+    <property name="State" type="u" access="read"/>
+
+    <signal name="StateChanged">
+      <arg name="state" type="u"/>
+    </signal>
+
+    <signal name="PropertiesChanged">
+      <arg name="properties" type="a{sv}"/>
+    </signal>
+
+    <signal name="DeviceAdded">
+      <arg name="state" type="o"/>
+    </signal>
+
+    <signal name="DeviceRemoved">
+      <arg name="state" type="o"/>
+    </signal>
+  </interface>
+</node>
diff --git a/introspection/nm-manager.xml b/introspection/nm-manager.xml
new file mode 100644
index 00000000..46db5afd
--- /dev/null
+++ b/introspection/nm-manager.xml
@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!-- 
+  READ ME! READ ME! READ ME! READ ME! READ ME!
+
+  This file needs to be kept in sync with nm-manager-client.xml with the exception of
+  the legacy methods at the end of this file.
+-->
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager">
+    <method name="GetDevices">
+      <tp:docstring>
+        Get the list of network devices.
+      </tp:docstring>
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_get_devices"/>
+      <arg name="devices" type="ao" direction="out">
+        <tp:docstring>
+          List of object paths of network devices known to the system.
+        </tp:docstring>
+      </arg>
+    </method>
+
+    <method name="ActivateConnection">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_activate_connection"/>
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <tp:docstring>
+        Activate a connection using the supplied device.
+      </tp:docstring>
+      <arg name="service_name" type="s" direction="in">
+        <tp:docstring>
+          The D-Bus service name of the settings service that provides this connection.
+        </tp:docstring>
+      </arg>
+      <arg name="connection" type="o" direction="in">
+        <tp:docstring>
+          The connection to activate the devices with.
+        </tp:docstring>
+      </arg>
+      <arg name="device" type="o" direction="in">
+        <tp:docstring>
+          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>
+          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 and 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>
+      </arg>
+      <arg name="active_connection" type="o" direction="out">
+        <tp:docstring>
+          The path of the active connection object representing this active connection.
+        </tp:docstring>
+      </arg>
+      <tp:possible-errors>
+        <tp:error name="org.freedesktop.NetworkManager.Error.UnknownConnection"/>
+        <tp:error name="org.freedesktop.NetworkManager.Error.UnknownDevice"/>
+        <tp:error name="org.freedesktop.NetworkManager.Error.InvalidService"/>
+        <tp:error name="org.freedesktop.NetworkManager.Error.ConnectionActivating">
+          <tp:docstring>Another connection is already activating or the same connection is already active.  FIXME: check if the error name is correct.  FIXME: split into 2 errors?</tp:docstring>
+        </tp:error>
+        <tp:error name="org.freedesktop.NetworkManager.Error.ConnectionInvalid">
+          <tp:docstring>The connection is invalid for this device.</tp:docstring>
+        </tp:error>
+      </tp:possible-errors>
+    </method>
+
+    <method name="DeactivateConnection">
+      <tp:docstring>
+        Deactivate an active connection.
+      </tp:docstring>
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_deactivate_connection"/>
+      <arg name="active_connection" type="o" direction="in">
+        <tp:docstring>
+          The currently active connection to deactivate.
+        </tp:docstring>
+      </arg>
+    </method>
+
+    <method name="Sleep">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_sleep"/>
+      <tp:docstring>
+        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>
+          Indicates whether the NetworkManager daemon should sleep or wake.
+        </tp:docstring>
+      </arg>
+    </method>
+
+    <method name="Enable">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_enable"/>
+      <tp:docstring>
+        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>
+          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="SetLogging">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_set_logging"/>
+      <tp:docstring>
+        Set logging verbosity and which operations are logged.
+      </tp:docstring>
+      <arg name="level" type="s" direction="in">
+        <tp:docstring>
+          One of [ERR, WARN, INFO, DEBUG].
+        </tp:docstring>
+      </arg>
+      <arg name="domains" type="s" direction="in">
+        <tp:docstring>
+          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: [NONE, HW, RFKILL,
+          ETHER, WIFI, BT, MB, DHCP4, DHCP6, PPP, WIFI_SCAN, IP4, IP6, AUTOIP4,
+          DNS, VPN, SHARING, SUPPLICANT, USER_SET, SYS_SET, SUSPEND, CORE,
+          DEVICE, OLPC]
+        </tp:docstring>
+      </arg>
+    </method>
+
+    <property name="NetworkingEnabled" type="b" access="read">
+      <tp:docstring>
+        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>
+        Indicates if wireless is currently enabled or not.
+      </tp:docstring>
+    </property>
+
+    <property name="WirelessHardwareEnabled" type="b" access="read">
+      <tp:docstring>
+        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>
+        Indicates if mobile broadband devices are currently enabled or not.
+      </tp:docstring>
+    </property>
+
+    <property name="WwanHardwareEnabled" type="b" access="read">
+      <tp:docstring>
+        Indicates if the mobile broadband 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>
+        List of active connection object paths.
+      </tp:docstring>
+    </property>
+
+    <property name="State" type="u" access="read" tp:type="NM_STATE">
+      <tp:docstring>
+        The overall state of the NetworkManager daemon.
+      </tp:docstring>
+    </property>
+
+    <signal name="StateChanged">
+      <tp:docstring>
+        NetworkManager's state changed.
+      </tp:docstring>
+      <arg name="state" type="u" tp:type="NM_STATE">
+        <tp:docstring>
+          The new state of NetworkManager.
+        </tp:docstring>
+      </arg>
+    </signal>
+
+    <signal name="PropertiesChanged">
+      <tp:docstring>
+        NetworkManager's properties changed.
+      </tp:docstring>
+      <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+        <tp:docstring>
+          The changed properties.
+        </tp:docstring>
+      </arg>
+    </signal>
+
+    <signal name="DeviceAdded">
+      <tp:docstring>
+        A device was added to the system
+      </tp:docstring>
+      <arg name="device_path" type="o">
+        <tp:docstring>
+          The object path of the newly added device.
+        </tp:docstring>
+      </arg>
+    </signal>
+
+    <signal name="DeviceRemoved">
+      <tp:docstring>
+        A device was removed from the system, and is no longer available.
+      </tp:docstring>
+      <arg name="device_path" type="o">
+        <tp:docstring>
+          The object path of the device that was just removed.
+        </tp:docstring>
+      </arg>
+    </signal>
+
+    <tp:enum name="NM_STATE" type="u">
+      <tp:docstring>
+        Describes the overall state of the daemon.
+      </tp:docstring>
+      <tp:enumvalue suffix="UNKNOWN" value="0">
+        <tp:docstring>
+          The NetworkManager daemon is in an unknown state.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="ASLEEP" value="1">
+        <tp:docstring>
+          The NetworkManager daemon is asleep and all interfaces managed by it are inactive.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONNECTING" value="2">
+        <tp:docstring>
+          The NetworkManager daemon is connecting a device.  FIXME: What does this mean when one device is active and another is connecting?
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONNECTED" value="3">
+        <tp:docstring>
+          The NetworkManager daemon is connected.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="DISCONNECTED" value="4">
+        <tp:docstring>
+          The NetworkManager daemon is disconnected.
+        </tp:docstring>
+      </tp:enumvalue>
+    </tp:enum>
+
+    <!-- Legacy methods to maintain backwards compatibility for 0.6 branch. -->
+
+    <signal name="StateChange">
+      <tp:docstring>
+        DEPRECATED.  NetworkManager's state changed.  Use the 'StateChanged' signal instead.
+      </tp:docstring>
+      <arg name="state" type="u" tp:type="NM_STATE">
+        <tp:docstring>
+          The new state of NetworkManager.
+        </tp:docstring>
+      </arg>
+    </signal>
+
+    <method name="sleep">
+      <tp:docstring>
+        DEPRECATED.  Control the NetworkManager daemon's sleep state.  When asleep, all interfaces that it manages are deactivated.
+      </tp:docstring>
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_legacy_sleep"/>
+    </method>
+
+    <method name="wake">
+      <tp:docstring>
+        DEPRECATED.  Control the NetworkManager daemon's sleep state.  When awake, all known interfaces are available to be activated.
+      </tp:docstring>
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_legacy_wake"/>
+    </method>
+
+    <method name="state">
+      <tp:docstring>
+        DEPRECATED.  The overall state of the NetworkManager daemon.
+      </tp:docstring>
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_manager_legacy_state"/>
+      <arg name="state" type="u" direction="out" tp:type="NM_STATE"/>
+    </method>
+
+  </interface>
+</node>
diff --git a/introspection/nm-ppp-manager.xml b/introspection/nm-ppp-manager.xml
new file mode 100644
index 00000000..9e2dfdb1
--- /dev/null
+++ b/introspection/nm-ppp-manager.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/">
+  <interface name="org.freedesktop.NetworkManager.PPP">
+    <method name="NeedSecrets">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_ppp_manager_need_secrets"/>
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <arg name="username" type="s" direction="out"/>
+      <arg name="password" type="s" direction="out"/>
+    </method>
+
+    <method name="SetIp4Config">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_ppp_manager_set_ip4_config"/>
+      <arg name="config" type="a{sv}" direction="in"/>
+    </method>
+
+    <method name="SetState">
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_ppp_manager_set_state"/>
+      <arg name="state" type="u" direction="in"/>
+    </method>
+  </interface>
+</node>
diff --git a/introspection/nm-settings-system.xml b/introspection/nm-settings-system.xml
new file mode 100644
index 00000000..598274c0
--- /dev/null
+++ b/introspection/nm-settings-system.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManagerSettings.System">
+    <tp:docstring>
+      Implemented by the system settings service to provide additional settings to NetworkManager.
+    </tp:docstring>
+
+    <method name="SaveHostname">
+      <tp:docstring>
+        Save the hostname to persistent configuration.
+      </tp:docstring>
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_save_hostname"/>
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <arg name="hostname" type="s" direction="in">
+        <tp:docstring>
+          The hostname to save to persistent configuration.  If blank, the persistent hostname is cleared.
+        </tp:docstring>
+      </arg>
+    </method>
+
+    <property name="Hostname" type="s" access="read">
+      <tp:docstring>
+        The machine hostname stored in persistent configuration.
+      </tp:docstring>
+    </property>
+
+    <property name="CanModify" type="b" access="read">
+      <tp:docstring>
+        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>
+                A dictionary mapping property names to variant boxed values
+            </tp:docstring>
+        </arg>
+    </signal>
+
+    <signal name="CheckPermissions">
+      <tp:docstring>
+        Emitted when system authorization details change, indicating that clients may wish to recheck permissions with GetPermissions.
+      </tp:docstring>
+    </signal>
+
+    <method name="GetPermissions">
+      <tp:docstring>
+        Returns a bitfield indicating certain operations the caller is permitted to perform.  Some of these operations may require authorization by the user.
+      </tp:docstring>
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_get_permissions"/>
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <arg name="permissions" type="u" direction="out" tp:type="NM_SETTINGS_SYSTEM_PERMISSIONS">
+        <tp:docstring>
+          A bitfield of permitted operations.  Some of these operations may require the user to authorize via password entry or other means.
+        </tp:docstring>
+      </arg>
+    </method>
+
+    <tp:flags name="NM_SETTINGS_SYSTEM_PERMISSIONS" value-prefix="NM_SETTINGS_SYSTEM_PERMISSION" type="u">
+      <tp:flag suffix="NONE" value="0x0">
+        <tp:docstring>No permissions.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="CONNECTION_MODIFY" value="0x1">
+        <tp:docstring>Can modify/add/delete connections.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="WIFI_SHARING_PROTECTED" value="0x2">
+        <tp:docstring>Can share connections via a encrypted user-created WiFi network.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="WIFI_SHARING_OPEN" value="0x4">
+        <tp:docstring>Can share connections via a open/unencrypted user-created WiFi network.</tp:docstring>
+      </tp:flag>
+      <tp:flag suffix="HOSTNAME_MODIFY" value="0x8">
+        <tp:docstring>Can modify the persistent system hostname.</tp:docstring>
+      </tp:flag>
+    </tp:flags>
+
+  </interface>
+</node>
+
diff --git a/introspection/nm-settings.xml b/introspection/nm-settings.xml
new file mode 100644
index 00000000..b252c00d
--- /dev/null
+++ b/introspection/nm-settings.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManagerSettings">
+    <tp:docstring>
+      The NetworkManagerSettings interface is provided by the service which provides connections to NetworkManager.
+    </tp:docstring>
+
+    <method name="ListConnections">
+      <tp:docstring>
+        List the connections stored by this Settings object.
+      </tp:docstring>
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_list_connections"/>
+      <arg name="connections" type="ao" direction="out">
+        <tp:docstring>
+          List of connections.
+        </tp:docstring>
+      </arg>
+    </method>
+
+    <method name="AddConnection">
+      <tp:docstring>
+        Add new connection.
+      </tp:docstring>
+      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_add_connection"/>
+      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+      <arg name="connection" type="a{sa{sv}}" direction="in">
+        <tp:docstring>
+          Connection settings and properties.
+        </tp:docstring>
+      </arg>
+    </method>
+
+    <signal name="NewConnection">
+      <tp:docstring>
+        Emitted when a new connection has been added.
+      </tp:docstring>
+      <arg name="connection" type="o">
+        <tp:docstring>
+          Object path of the new connection.
+        </tp:docstring>
+      </arg>
+    </signal>
+
+  </interface>
+</node>
+
diff --git a/introspection/nm-vpn-connection.xml b/introspection/nm-vpn-connection.xml
new file mode 100644
index 00000000..3a47cdf1
--- /dev/null
+++ b/introspection/nm-vpn-connection.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager.Connection.Active">
+    <property name="ServiceName" type="s" access="read">
+      <tp:docstring>The D-Bus service name providing this connection.</tp:docstring>
+    </property>
+    <property name="Connection" type="o" access="read">
+      <tp:docstring>The path of the connection.</tp:docstring>
+    </property>
+    <property name="SpecificObject" type="o" access="read">
+      <tp:docstring>A specific object associated with the active connection.</tp:docstring>
+    </property>
+    <property name="Devices" type="ao" access="read">
+      <tp:docstring>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>The state of this active connection.</tp:docstring>
+    </property>
+    <property name="Default" type="b" access="read">
+      <tp:docstring>Whether this active connection is the default connection, i.e. whether it currently owns the default route.</tp:docstring>
+    </property>
+    <property name="Vpn" type="b" access="read">
+      <tp:docstring>Whether this active connection is also a VPN connection.</tp:docstring>
+    </property>
+
+    <signal name="PropertiesChanged">
+        <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
+            <tp:docstring>
+                A dictionary mapping property names to variant boxed values
+            </tp:docstring>
+        </arg>
+    </signal>
+  </interface>
+
+  <interface name="org.freedesktop.NetworkManager.VPN.Connection">
+    <tp:docstring>
+      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>
+                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>
+    </property>
+    <property name="Banner" type="s" access="read">
+      <tp:docstring>The banner string of the VPN connection.</tp:docstring>
+    </property>
+
+    <signal name="VpnStateChanged">
+      <tp:docstring>
+        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>
+          The new state of the VPN connection.
+        </tp:docstring>
+      </arg>
+      <arg name="reason" type="u" tp:type="NM_VPN_CONNECTION_STATE_REASON">
+        <tp:docstring>
+          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>
+          The state of the VPN connection is unknown.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="PREPARE" value="1">
+        <tp:docstring>
+          The VPN connection is preparing to connect.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="NEED_AUTH" value="2">
+        <tp:docstring>
+          The VPN connection needs authorization credentials.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONNECT" value="3">
+        <tp:docstring>
+          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>
+          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>
+          The VPN connection is active.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="FAILED" value="6">
+        <tp:docstring>
+          The VPN connection failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="DISCONNECTED" value="7">
+        <tp:docstring>
+          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>
+          The reason for the VPN connection state change is unknown.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="NONE" value="1">
+        <tp:docstring>
+          No reason was given for the VPN connection state change.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="USER_DISCONNECTED" value="2">
+        <tp:docstring>
+          The VPN connection changed state because the user disconnected it.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="DEVICE_DISCONNECTED" value="3">
+        <tp:docstring>
+          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>
+          The service providing the VPN connection was stopped.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="IP_CONFIG_INVALID" value="5">
+        <tp:docstring>
+          The IP config of the VPN connection was invalid.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONNECT_TIMEOUT" value="6">
+        <tp:docstring>
+          The connection attempt to the VPN service timed out.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="SERVICE_START_TIMEOUT" value="7">
+        <tp:docstring>
+          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>
+          Starting the service starting the service providing the VPN connection failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="NO_SECRETS" value="9">
+        <tp:docstring>
+          Necessary secrets for the VPN connection were not provided.
+        </tp:docstring>
+      </tp:enumvalue>
+    </tp:enum>
+  </interface>
+</node>
+
diff --git a/introspection/nm-vpn-plugin.xml b/introspection/nm-vpn-plugin.xml
new file mode 100644
index 00000000..72861f26
--- /dev/null
+++ b/introspection/nm-vpn-plugin.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+  <interface name="org.freedesktop.NetworkManager.VPN.Plugin">
+    <tp:docstring>
+      This interface is provided by plugins providing VPN services to the NetworkManager daemon.
+    </tp:docstring>
+    <method name="Connect">
+      <tp:docstring>
+        Tells the plugin to connect.
+      </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>
+          Describes the connection to be established.
+        </tp:docstring>
+      </arg>
+      <tp:possible-errors>
+        <tp:error name="org.freedesktop.NetworkManager.VPN.Error.StartingInProgress"/>
+        <tp:error name="org.freedesktop.NetworkManager.VPN.Error.AlreadyStarted"/>
+        <tp:error name="org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress"/>
+        <tp:error name="org.freedesktop.NetworkManager.VPN.Error.BadArguments"/>
+        <tp:error name="org.freedesktop.NetworkManager.VPN.Error.LaunchFailed"/>
+      </tp:possible-errors>
+    </method>
+
+    <method name="NeedSecrets">
+      <tp:docstring>
+        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>
+          Describes the connection that may need secrets.
+        </tp:docstring>
+      </arg>
+      <arg name="setting_name" type="s" direction="out">
+        <tp:docstring>
+          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"/>
+      </tp:possible-errors>
+    </method>
+
+    <method name="Disconnect">
+      <tp:docstring>
+        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"/>
+        <tp:error name="org.freedesktop.NetworkManager.VPN.Error.AlreadyStopped"/>
+      </tp:possible-errors>
+    </method>
+
+    <method name="SetIp4Config">
+      <tp:docstring>
+        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>
+          Ip4Config details for the conneciton.
+        </tp:docstring>
+      </arg>
+    </method>
+
+    <method name="SetFailure">
+      <tp:docstring>
+        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>
+          The reason for the failure.
+        </tp:docstring>
+      </arg>
+    </method>
+
+    <property name="State" type="u" access="read" tp:type="NM_VPN_CONNECTION_STATE">
+      <tp:docstring>
+        The state of the plugin.
+      </tp:docstring>
+    </property>
+
+    <signal name="StateChanged">
+      <tp:docstring>
+        Emitted when the plugin state changes.
+      </tp:docstring>
+      <arg name="state" type="u" tp:type="NM_VPN_CONNECTION_STATE">
+        <tp:docstring>
+          The new state of the plugin.
+        </tp:docstring>
+      </arg>
+    </signal>
+
+    <signal name="Ip4Config">
+      <tp:docstring>
+        The plugin obtained an IPv4 configuration.
+      </tp:docstring>
+      <arg name="ip4config" type="a{sv}" tp:type="String_Variant_Map">
+        <tp:docstring>
+          The IPv4 configuration.
+        </tp:docstring>
+      </arg>
+    </signal>
+
+    <signal name="LoginBanner">
+      <tp:docstring>
+        Emitted when the plugin receives a login banner from the VPN service.
+      </tp:docstring>
+      <arg name="banner" type="s">
+        <tp:docstring>
+          The login banner string.
+        </tp:docstring>
+      </arg>
+    </signal>
+
+    <signal name="Failure">
+      <tp:docstring>
+        Emitted when a failure in the VPN plugin occurs.
+      </tp:docstring>
+      <arg name="reason" type="u" tp:type="NM_VPN_PLUGIN_FAILURE">
+        <tp:docstring>
+          Reason code for the failure.
+        </tp:docstring>
+      </arg>
+    </signal>
+
+    <tp:enum name="NM_VPN_PLUGIN_FAILURE" type="u">
+      <tp:enumvalue suffix="LOGIN_FAILED" value="0">
+        <tp:docstring>
+          Login failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="CONNECT_FAILED" value="1">
+        <tp:docstring>
+          Connect failed.
+        </tp:docstring>
+      </tp:enumvalue>
+      <tp:enumvalue suffix="BAD_IP_CONFIG" value="2">
+        <tp:docstring>
+          Invalid IP configuration returned from the VPN plugin.
+        </tp:docstring>
+      </tp:enumvalue>
+    </tp:enum>
+
+  </interface>
+</node>
diff --git a/introspection/vpn-errors.xml b/introspection/vpn-errors.xml
new file mode 100644
index 00000000..0dba7e6f
--- /dev/null
+++ b/introspection/vpn-errors.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<tp:errors xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"
+    namespace="org.freedesktop.NetworkManager.VPN.Error">
+  <tp:error name="General">
+    <tp:docstring>This is a drab, nondescript error.</tp:docstring>
+  </tp:error>
+  <tp:error name="StartingInProgress">
+    <tp:docstring>The request could not be processed because the VPN connection is already being started.</tp:docstring>
+  </tp:error>
+  <tp:error name="AlreadyStarted">
+    <tp:docstring>The request could not be processed because a VPN connection was already active.</tp:docstring>
+  </tp:error>
+  <tp:error name="StoppingInProgress">
+    <tp:docstring>The request could not be processed because the VPN connection is already being stopped.</tp:docstring>
+  </tp:error>
+  <tp:error name="AlreadyStopped">
+    <tp:docstring>The request could not be processed because the VPN connection was already stopped.</tp:docstring>
+  </tp:error>
+  <tp:error name="WrongState">
+    <tp:docstring>The request could not be processed because the VPN connection is in the wrong state for this type of request. FIXME: too general?</tp:docstring>
+  </tp:error>
+  <tp:error name="BadArguments">
+    <tp:docstring>Invalid arguments were passed with the request.  FIXME: too general.</tp:docstring>
+  </tp:error>
+  <tp:error name="LaunchFailed">
+    <tp:docstring>A binary providing the service failed to launch.</tp:docstring>
+  </tp:error>
+  <tp:error name="ConnectionInvalid">
+    <tp:docstring>The request could not be processed because the VPN connection settings were invalid.</tp:docstring>
+  </tp:error>
+</tp:errors>
+