vpn connection
==============

Service		net.connman.vpn
Interface	net.connman.vpn.Connection
Object path	[variable prefix]/{connection0,connection1,...}

Methods		dict GetProperties()  [experimental]

			Returns properties for the connection object. See
			the properties section for available properties.

			Possible Errors: [connection].Error.InvalidArguments

		void SetProperty(string name, variant value) [experimental]

			Changes the value of the specified property. Only
			properties that are listed as read-write are
			changeable. On success a PropertyChanged signal
			will be emitted.

			Possible Errors: [connection].Error.InvalidArguments
					 [connection].Error.InvalidProperty

		void ClearProperty(string name) [experimental]

			Clears the value of the specified property.

			Possible Errors: [connection].Error.InvalidArguments
					 [connection].Error.InvalidProperty

		void Connect() [experimental]

			Connect this VPN connection. It will attempt to connect
			to the VPN connection. The Connect() will wait until
			the connection is created or there is an error. The
			error description is returned in dbus error.

			Possible Errors: [connection].Error.InvalidArguments
					[connection].Error.InProgress

		void Disconnect() [experimental]

			Disconnect this VPN connection. If the connection is
			not connected an error message will be generated.

			Possible Errors: [connection].Error.InvalidArguments

Signals		PropertyChanged(string name, variant value) [experimental]

			This signal indicates a changed value of the given
			property.

Properties	string State [readonly]

			The connection state information.

			Valid states are "idle", "failure", "configuration",
			"ready", "disconnect".

		string Type [readonly]

			The VPN type (for example "openvpn", "vpnc" etc.)

		string Name [readonly]

			The VPN name.

		string Domain [readonly]

			The domain name used behind the VPN connection.
			This is optional for most VPN technologies.

		string Host [readonly]

		       The VPN host (server) address.

		boolean Immutable [readonly]

			This value will be set to true if the connection is
			configured externally via a configuration file.

			The only valid operation are Connect(), Disconnect()
                        and GetProperties()

		int Index [readonly]

			The index of the VPN network tunneling interface.
			If there is no tunneling device, then this value
			is not returned.

		dict IPv4 [readonly]

			string Address

			        The current configured IPv4 address.

			string Netmask

			       The current configured IPv4 netmask.

			string Gateway

			       The current configured IPv4 gateway.

			string Peer

			       The current configured VPN tunnel endpoint
			       IPv4 address.

		dict IPv6 [readonly]

			string Address

			        The current configured IPv6 address.

			string PrefixLength

			       The prefix length of the IPv6 address.

			string Gateway

			       The current configured IPv6 gateway.

			string Peer

			       The current configured VPN tunnel endpoint
			       IPv6 address.

		array{string} Nameservers [readonly]

			The list of nameservers set by VPN.

		array{dict} UserRoutes [readwrite]

			int ProtocolFamily

				Protocol family of the route. Set to 4
				if IPv4 and 6 if IPv6 route.

			string Network

				The network part of the route.

			string Netmask

				The netmask of the route. For IPv6 routes,
				this is the prefix length.

			string Gateway

				Gateway address of the route.

			The list of currently active user activated
			routes.

		array{dict} ServerRoutes [readonly]

			int ProtocolFamily

				Protocol family of the route. Set to 4
				if IPv4 and 6 if IPv6 route.

			string Network

				The network part of the route.

			string Netmask

				The netmask of the route. For IPv6 routes,
				this is the prefix length.

			string Gateway

				Gateway address of the route.

			The VPN server activated route. These routes
			are pushed to connman by VPN server.

		There can be other properties also but as the VPN
		technologies are so different, they have different
		kind of options that they need, so not all options
		are mentioned in this document.
