1 <?xml version="1.0" encoding="UTF-8" ?>
3 <node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
4 <interface name="org.freedesktop.NetworkManager.VPN.Plugin">
5 <annotation name="org.gtk.GDBus.C.Name" value="VpnPlugin"/>
8 This interface is provided by plugins providing VPN services to the NetworkManager daemon.
11 <method name="Connect">
13 Tells the plugin to connect. Interactive secrets requests (eg, emitting
14 the SecretsRequired signal) are not allowed.
16 <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_connect"/>
17 <arg name="connection" type="a{sa{sv}}" direction="in" tp:type="String_String_Variant_Map_Map">
19 Describes the connection to be established.
23 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.StartingInProgress"/>
24 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.AlreadyStarted"/>
25 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress"/>
26 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.BadArguments"/>
27 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.LaunchFailed"/>
28 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.WrongState"/>
32 <method name="ConnectInteractive">
34 Tells the plugin to connect, allowing interactive secrets requests (eg
35 the plugin is allowed to emit the SecretsRequired signal if the VPN
36 service indicates that it needs additional secrets during the connect
39 <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_connect_interactive"/>
40 <arg name="connection" type="a{sa{sv}}" direction="in" tp:type="String_String_Variant_Map_Map">
42 Describes the connection to be established.
45 <arg name="details" type="a{sv}" direction="in" tp:type="String_Variant_Map">
47 Additional details about the Connect process.
51 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.StartingInProgress"/>
52 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.AlreadyStarted"/>
53 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress"/>
54 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.BadArguments"/>
55 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.LaunchFailed"/>
56 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.WrongState"/>
57 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.InteractiveNotSupported"/>
61 <method name="NeedSecrets">
63 Asks the plugin whether the provided connection will require secrets to connect successfully.
65 <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_need_secrets"/>
66 <arg name="settings" type="a{sa{sv}}" direction="in" tp:type="String_String_Variant_Map_Map">
68 Describes the connection that may need secrets.
71 <arg name="setting_name" type="s" direction="out">
73 The setting name within the provided connection that requires secrets, if any.
77 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.ConnectionInvalid"/>
81 <method name="Disconnect">
83 Disconnect the plugin.
85 <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_disconnect"/>
87 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress"/>
88 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.AlreadyStopped"/>
92 <method name="SetConfig">
94 Set generic connection details on the connection.
96 <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_config"/>
97 <arg name="config" type="a{sv}" direction="in" tp:type="String_Variant_Map">
99 Generic configuration details for the connection.
104 <method name="SetIp4Config">
106 Set IPv4 details on the connection.
108 <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_ip4_config"/>
109 <arg name="config" type="a{sv}" direction="in" tp:type="String_Variant_Map">
111 Ip4Config details for the connection. You must call
112 SetConfig() before calling this.
117 <method name="SetIp6Config">
119 Set IPv6 details on the connection.
121 <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_ip6_config"/>
122 <arg name="config" type="a{sv}" direction="in" tp:type="String_Variant_Map">
124 Ip6Config details for the connection. You must call
125 SetConfig() before calling this.
130 <method name="SetFailure">
132 Indicate a failure to the plugin.
134 <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_failure"/>
135 <arg name="reason" type="s" direction="in">
137 The reason for the failure.
142 <property name="State" type="u" access="read" tp:type="NM_VPN_SERVICE_STATE">
144 The state of the plugin.
148 <signal name="StateChanged">
150 Emitted when the plugin state changes.
152 <arg name="state" type="u" tp:type="NM_VPN_SERVICE_STATE">
154 The new state of the plugin.
159 <signal name="SecretsRequired">
161 Emitted during an ongoing ConnectInteractive() request when the plugin
162 has determined that new secrets are required. NetworkManager will then
163 call the NewSecrets() method with a connection hash including the new
166 <arg name="message" type="s" direction="out">
168 Informational message, if any, about the request. For example, if
169 a second PIN is required, could indicate to the user to wait for
170 the token code to change until entering the next PIN.
173 <arg name="secrets" type="as" direction="out">
175 Array of strings of VPN secret names which the plugin thinks
176 secrets may be required for, or other VPN-specific data to be
177 processed by the VPN's front-end.
182 <method name="NewSecrets">
184 Called in response to a SecretsRequired signal to deliver updated secrets
185 or other information to the plugin.
187 <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_new_secrets"/>
188 <arg name="connection" type="a{sa{sv}}" direction="in" tp:type="String_String_Variant_Map_Map">
190 Describes the connection including the new secrets.
194 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.WrongState"/>
195 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.BadArguments"/>
196 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.LaunchFailed"/>
197 <tp:error name="org.freedesktop.NetworkManager.VPN.Error.InteractiveNotSupported"/>
198 </tp:possible-errors>
201 <signal name="Config">
203 The plugin obtained generic configuration information.
205 <arg name="config" type="a{sv}" tp:type="String_Variant_Map">
207 The configuration information.
212 <signal name="Ip4Config">
214 The plugin obtained an IPv4 configuration.
216 <arg name="ip4config" type="a{sv}" tp:type="String_Variant_Map">
218 The IPv4 configuration.
223 <signal name="Ip6Config">
225 The plugin obtained an IPv6 configuration.
227 <arg name="ip6config" type="a{sv}" tp:type="String_Variant_Map">
229 The IPv6 configuration.
234 <signal name="LoginBanner">
236 Emitted when the plugin receives a login banner from the VPN service.
238 <arg name="banner" type="s">
240 The login banner string.
245 <signal name="Failure">
247 Emitted when a failure in the VPN plugin occurs.
249 <arg name="reason" type="u" tp:type="NM_VPN_PLUGIN_FAILURE">
251 Reason code for the failure.
256 <tp:enum name="NM_VPN_SERVICE_STATE" type="u">
257 <tp:enumvalue suffix="UNKNOWN" value="0">
259 The state of the VPN plugin is unknown.
262 <tp:enumvalue suffix="INIT" value="1">
264 The VPN plugin is initialized.
267 <tp:enumvalue suffix="SHUTDOWN" value="2">
272 <tp:enumvalue suffix="STARTING" value="3">
274 The plugin is attempting to connect to a VPN server.
277 <tp:enumvalue suffix="STARTED" value="4">
279 The plugin has connected to a VPN server.
282 <tp:enumvalue suffix="STOPPING" value="5">
284 The plugin is disconnecting from the VPN server.
287 <tp:enumvalue suffix="STOPPED" value="6">
289 The plugin has disconnected from the VPN server.
294 <tp:enum name="NM_VPN_PLUGIN_FAILURE" type="u">
295 <tp:enumvalue suffix="LOGIN_FAILED" value="0">
300 <tp:enumvalue suffix="CONNECT_FAILED" value="1">
305 <tp:enumvalue suffix="BAD_IP_CONFIG" value="2">
307 Invalid IP configuration returned from the VPN plugin.