manager: Deprecating connect/remove provider API
[platform/upstream/connman.git] / doc / manager-api.txt
1 Manager hierarchy
2 =================
3
4 Service         net.connman
5 Interface       net.connman.Manager
6 Object path     /
7
8 Methods         dict GetProperties()
9
10                         Returns all global system properties. See the
11                         properties section for available properties.
12
13                         Possible Errors: [service].Error.InvalidArguments
14
15                 void SetProperty(string name, variant value)
16
17                         Changes the value of the specified property. Only
18                         properties that are listed as read-write are
19                         changeable. On success a PropertyChanged signal
20                         will be emitted.
21
22                         Possible Errors: [service].Error.InvalidArguments
23                                          [service].Error.InvalidProperty
24
25                 array{object,dict} GetTechnologies()
26
27                         Returns a list of tuples with technology object
28                         path and dictionary of technology properties.
29
30                         Possible Errors: [service].Error.InvalidArguments
31
32                 array{object,dict} GetServices()
33
34                         Returns a sorted list of tuples with service
35                         object path and dictionary of service properties.
36
37                         This list will not contain sensitive information
38                         like passphrases etc.
39
40                         Possible Errors: [service].Error.InvalidArguments
41
42                 object ConnectProvider(dict provider)   [deprecated]
43
44                         Connect to a VPN specified by the given provider
45                         properties.
46
47                         When successful this method will return the object
48                         path of the VPN service object.
49
50                         This method can also be used to connect to an
51                         already existing VPN.
52
53                         This method call will only return in case of an
54                         error or when the service is fully connected. So
55                         setting a longer D-Bus timeout might be a really
56                         good idea.
57
58                         When 'SessionMode' property is enabled, this method
59                         call is disallowed.
60
61                         This API is deprecated and should not be used.
62                         The VPN configuration API is provided by ConnMan
63                         VPN daemon and user should use that one instead.
64
65                         Possible Errors: [service].Error.InvalidArguments
66
67                 void RegisterAgent(object path)
68
69                         Register new agent for handling user requests.
70
71                         Possible Errors: [service].Error.InvalidArguments
72
73                 void UnregisterAgent(object path)
74
75                         Unregister an existing agent.
76
77                         Possible Errors: [service].Error.InvalidArguments
78
79                 void RegisterCounter(object path, uint32 accuracy, uint32 period)  [experimental]
80
81                         Register a new counter for user notifications.
82
83                         The accuracy is specified in kilo-bytes and defines
84                         a threshold for counter updates. Together with the
85                         period value it defines how often user space needs
86                         to be updated. The period value is in seconds.
87
88                         This interface is not meant for time tracking. If
89                         the time needs to be tracked down to the second, it
90                         is better to have a real timer running inside the
91                         application than using this interface.
92
93                         Also getting notified for every kilo-byte is a bad
94                         choice (even if the interface supports it). Something
95                         like 10 kilo-byte units or better 1 mega-byte seems
96                         to be a lot more reasonable and better for the user.
97
98                         Possible Errors: [service].Error.InvalidArguments
99
100                 void UnregisterCounter(object path)  [experimental]
101
102                         Unregister an existing counter.
103
104                         Possible Errors: [service].Error.InvalidArguments
105
106                 object CreateSession(dict settings, object notifier)  [experimental]
107
108                         Create a new session for the application. Every
109                         application can create multiple session with
110                         different settings. The settings are described
111                         as part of the session interface.
112
113                         The notifier allows asynchronous notification about
114                         session specific changes. These changes can be
115                         for online/offline state or IP address changes or
116                         similar things the application is required to
117                         handle.
118
119                         Every application should at least create one session
120                         to inform about its requirements and it purpose.
121
122                 void DestroySession(object session)  [experimental]
123
124                         Remove the previously created session.
125
126                         If an application exits unexpectatly the session
127                         will be automatically destroyed.
128
129                 object path, dict, fd RequestPrivateNetwork(dict options)
130                                                                 [experimental]
131
132                         Request a new Private Network, which includes the
133                         creation of a tun/tap interface, and IP
134                         configuration, NAT and IP forwarding on that
135                         interface.
136                         An object path, a dictionnary and a file descriptor
137                         with IP settings are returned.
138
139                         Possible Errors: [service].Error.InvalidArguments
140                                          [service].Error.NotSupported
141
142                 void ReleasePrivateNetwork(object path) [experimental]
143
144                         Releases a private network.
145
146                         Possible Errors: [service].Error.InvalidArguments
147
148 Signals         TechnologyAdded(object path, dict properties)
149
150                         Signal that is sent when a new technology is added.
151
152                         It contains the object path of the technology and
153                         also its properties.
154
155                 TechnologyRemoved(object path)
156
157                         Signal that is sent when a technology has been removed.
158
159                         The object path is no longer accessible after this
160                         signal and only emitted for reference.
161
162                 ServicesChanged(array{object, dict}, array{object})
163
164                         Signals a list of services that have been changed
165                         via the first array. And a list of service that
166                         have been removed via the second array.
167
168                         The list of added services is sorted. The dictionary
169                         with the properties might be empty in case none of
170                         the properties have changed. Or only contains the
171                         properties that have changed.
172
173                         For newly added services the whole set of properties
174                         will be present.
175
176                         The list of removed services can be empty.
177
178                         This signal will only be triggered when the sort
179                         order of the service list or the number of services
180                         changes. It will not be emitted if only a property
181                         of the service object changes. For that it is
182                         required to watch the PropertyChanged signal of
183                         the service object.
184
185                 PropertyChanged(string name, variant value)
186
187                         This signal indicates a changed value of the given
188                         property.
189
190 Properties      string State [readonly]
191
192                         The global connection state of a system. Possible
193                         values are "offline", "idle", "ready" and "online".
194
195                         If the device is in offline mode, the value "offline"
196                         indicates this special global state. It can also be
197                         retrieved via the OfflineMode property, but is kept
198                         here for consistency and to differentiate from "idle".
199
200                         However when OfflineMode property is true, the State
201                         property can still be "idle", "ready" or "online"
202                         since it is possible by the end user to re-enable
203                         individual technologies like WiFi and Bluetooth while
204                         in offline mode.
205
206                         The states "idle", "ready" and "online" match to
207                         states from the services. If no service is in
208                         either "ready" or "online" state it will indicate
209                         the "idle" state.
210
211                         If at least one service is in "ready" state and no
212                         service is in "online" state, then it will indicate
213                         the "ready" state.
214
215                         When at least one service is in "online" state,
216                         this property will indicate "online" as well.
217
218                 boolean OfflineMode [readwrite]
219
220                         The offline mode indicates the global setting for
221                         switching all radios on or off. Changing offline mode
222                         to true results in powering down all devices. When
223                         leaving offline mode the individual policy of each
224                         device decides to switch the radio back on or not.
225
226                         During offline mode, it is still possible to switch
227                         certain technologies manually back on. For example
228                         the limited usage of WiFi or Bluetooth devices might
229                         be allowed in some situations.
230
231                 boolean SessionMode [readwrite]  [experminental]
232
233                         This disables the auto connect feature. It should be
234                         enabled when the Session API is used. When SessionMode
235                         is enabled, 'ConnectService' and 'ConnectProvider'
236                         method calls are disallowed.
237
238                         The default value is false.