summaryrefslogtreecommitdiff
path: root/introspection/org.freedesktop.NetworkManager.VPN.Plugin.xml
blob: 0c68f76e2887957d04533431022f1d22c1e92a87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
<?xml version="1.0" encoding="UTF-8"?>
<node name="/">

  <!--
      org.freedesktop.NetworkManager.VPN.Plugin:
      @short_description: VPN Service

      This interface is provided by plugins providing VPN services to the
      NetworkManager daemon.
  -->
  <interface name="org.freedesktop.NetworkManager.VPN.Plugin">
    <annotation name="org.gtk.GDBus.C.Name" value="VpnPlugin"/>

    <!--
        Connect:
        @connection: Describes the connection to be established.

        Tells the plugin to connect. Interactive secrets requests (eg, emitting
        the SecretsRequired signal) are not allowed.
    -->
    <method name="Connect">
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_connect"/>
      <arg name="connection" type="a{sa{sv}}" direction="in"/>
    </method>

    <!--
        ConnectInteractive:
        @connection: Describes the connection to be established.
        @details: Additional details about the Connect process.

        Tells the plugin to connect, allowing interactive secrets requests (eg the
        plugin is allowed to emit the SecretsRequired signal if the VPN service
        indicates that it needs additional secrets during the connect process).
    -->
    <method name="ConnectInteractive">
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_connect_interactive"/>
      <arg name="connection" type="a{sa{sv}}" direction="in"/>
      <arg name="details" type="a{sv}" direction="in"/>
    </method>

    <!--
        NeedSecrets:
        @settings: Describes the connection that may need secrets.
        @setting_name: The setting name within the provided connection that requires secrets, if any.

        Asks the plugin whether the provided connection will require secrets to
        connect successfully.
    -->
    <method name="NeedSecrets">
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_need_secrets"/>
      <arg name="settings" type="a{sa{sv}}" direction="in"/>
      <arg name="setting_name" type="s" direction="out"/>
    </method>

    <!--
        Disconnect:

        Disconnect the plugin.
    -->
    <method name="Disconnect">
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_disconnect"/>
    </method>

    <!--
        SetConfig:
        @config: Generic configuration details for the connection.

        Set generic connection details on the connection.
    -->
    <method name="SetConfig">
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_config"/>
      <arg name="config" type="a{sv}" direction="in"/>
    </method>

    <!--
        SetIp4Config:
        @config: Ip4Config details for the connection. You must call SetConfig() before calling this.

        Set IPv4 details on the connection.
    -->
    <method name="SetIp4Config">
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_ip4_config"/>
      <arg name="config" type="a{sv}" direction="in"/>
    </method>

    <!--
        SetIp6Config:
        @config: Ip6Config details for the connection. You must call SetConfig() before calling this.

        Set IPv6 details on the connection.
    -->
    <method name="SetIp6Config">
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_ip6_config"/>
      <arg name="config" type="a{sv}" direction="in"/>
    </method>

    <!--
        SetFailure:
        @reason: The reason for the failure.

        Indicate a failure to the plugin.
    -->
    <method name="SetFailure">
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_failure"/>
      <arg name="reason" type="s" direction="in"/>
    </method>

    <!--
        State:

        The state of the plugin.

        Returns: <link linkend="NMVpnServiceState">NMVpnServiceState</link>
    -->
    <property name="State" type="u" access="read"/>

    <!--
        StateChanged:
        @state: (<link linkend="NMVpnServiceState">NMVpnServiceState</link>) The new state of the plugin.

        Emitted when the plugin state changes.
    -->
    <signal name="StateChanged">
      <arg name="state" type="u"/>
    </signal>

    <!--
        SecretsRequired:
        @message: Informational message, if any, about the request. For example, if a second PIN is required, could indicate to the user to wait for the token code to change until entering the next PIN.
        @secrets: Array of strings of VPN secret names which the plugin thinks secrets may be required for, or other VPN-specific data to be processed by the VPN's front-end.

        Emitted during an ongoing ConnectInteractive() request when the plugin has
        determined that new secrets are required. NetworkManager will then call
        the NewSecrets() method with a connection hash including the new secrets.
    -->
    <signal name="SecretsRequired">
      <arg name="message" type="s" direction="out"/>
      <arg name="secrets" type="as" direction="out"/>
    </signal>

    <!--
        NewSecrets:
        @connection: Describes the connection including the new secrets.

        Called in response to a SecretsRequired signal to deliver updated secrets
        or other information to the plugin.
    -->
    <method name="NewSecrets">
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_new_secrets"/>
      <arg name="connection" type="a{sa{sv}}" direction="in"/>
    </method>

    <!--
        Config:
        @config: The configuration information.

        The plugin obtained generic configuration information.
    -->
    <signal name="Config">
      <arg name="config" type="a{sv}"/>
    </signal>

    <!--
        Ip4Config:
        @ip4config: The IPv4 configuration.

        The plugin obtained an IPv4 configuration.
    -->
    <signal name="Ip4Config">
      <arg name="ip4config" type="a{sv}"/>
    </signal>

    <!--
        Ip6Config:
        @ip6config: The IPv6 configuration.

        The plugin obtained an IPv6 configuration.
    -->
    <signal name="Ip6Config">
      <arg name="ip6config" type="a{sv}"/>
    </signal>

    <!--
        LoginBanner:
        @banner: The login banner string.

        Emitted when the plugin receives a login banner from the VPN service.
    -->
    <signal name="LoginBanner">
      <arg name="banner" type="s"/>
    </signal>

    <!--
        Failure:
        @reason: (<link linkend="NMVpnPluginFailure">NMVpnPluginFailure</link>) Reason code for the failure.

        Emitted when a failure in the VPN plugin occurs.
    -->
    <signal name="Failure">
      <arg name="reason" type="u"/>
    </signal>
  </interface>
</node>