TIVI-1924: Initial commit of IVI settings daemon.
[profile/ivi/settings-daemon.git] / doc / settings-protocol.js
1 // --------------------------------------------------------------
2 //                           Overview
3 // --------------------------------------------------------------
4 // General form of a request
5 var request =
6     {
7         "type": request_type
8         "transactionid": request_transaction_id
9         "name": request_name
10         "value": request_args
11     }
12
13 // Response for successful operation
14 var response =
15     {
16         "type": request_type
17         "transactionid": request_transaction_id
18         "result": "succeeded"
19         ...
20         <setting specific results>
21         ...
22     }
23
24 // Response for failed operation
25 var response =
26     {
27         "type": request_type,
28         "transactionid": request_transaction_id,
29         "result": "failed"
30         "reason": "<some error message>"
31     }
32
33 // --------------------------------------------------------------
34 //                           Bluetooth
35 // --------------------------------------------------------------
36 // Check if bluetooth subsystem is enabled/powered.
37 var request =
38     {
39         "type": "bluetooth",
40         "transactionid": "<some UUID>",
41         "name": "is_enabled",
42         "value": null
43     }
44
45 // Enable bluetooth subsystem
46 var request =
47     {
48         "type": "bluetooth",
49         "transactionid": "<some UUID>",
50         "name": "enable",
51         "value": true
52     }
53
54 // Disable bluetooth subsystem
55 var request =
56     {
57         "type": "bluetooth",
58         "transactionid": "<some UUID>",
59         "name": "enable",
60         "value": false
61     }
62
63 // Successful is_enabled
64 var response =
65     {
66         "type": "bluetooth",
67         "transactionid": "<some UUID>",
68         "result": true or false
69     }
70
71 // Successful enable/disable
72 var response =
73     {
74         "type": "bluetooth",
75         "transactionid": "<some UUID>",
76         "result": "succeeded"
77     }
78
79 // --------------------------------------------------------------
80 //                           WiFi
81 // --------------------------------------------------------------
82 // Check if WiFi subsystem is enabled/powered.
83 var request =
84     {
85         "type": "wifi",
86         "transactionid": "<some UUID>",
87         "name": "is_enabled",
88         "value": null
89     }
90
91 // Enable WiFi subsystem
92 var request =
93     {
94         "type": "wifi",
95         "transactionid": "<some UUID>",
96         "name": "enable",
97         "value": true
98     }
99
100 // Disable WiFi subsystem
101 var request =
102     {
103         "type": "wifi",
104         "transactionid": "<some UUID>",
105         "name": "enable",
106         "value": false
107     }
108
109 // Scan WiFi subsystem
110 var request =
111     {
112         "type": "wifi",
113         "transactionid": "<some UUID>",
114         "name": "scan",
115         "value": null
116     }
117
118 // Connect to WiFi access point
119 var request =
120     {
121         "type": "wifi",
122         "transactionid": "<some UUID>",
123         "name": "connect",
124         "value": "<Connman service object path>"
125     }
126
127 // Disconnect from WiFi access point
128 var request =
129     {
130         "type": "wifi",
131         "transactionid": "<some UUID>",
132         "name": "disconnect",
133         "value": "<Connman service object path>"
134     }
135
136 // Successful is_enabled
137 var response =
138     {
139         "type": "wifi",
140         "transactionid": "<some UUID>",
141         "result": true or false
142     }
143
144 // Successful enable/disable/connect/disconnect
145 var response =
146     {
147         "type": "wifi",
148         "transactionid": "<some UUID>",
149         "result": "succeeded"
150     }
151
152 // Successful scan
153 var response =
154     {
155         "type": "wifi",
156         "transactionid": "3b5c9ebe-23fa-6b58-3f50-1203d7641441",
157         "result": "succeeded",
158         "value": [
159             [
160                 [
161                     "/net/connman/service/ethernet_0010f32f5a70_cable",
162                     {
163                         "AutoConnect": true,
164                         "Domains": [
165                             "ftrdhcpuser.net"
166                         ],
167                         "Domains.Configuration": [],
168                         "Ethernet": {
169                             "Address": "10:20:F3:2F:5E:23",
170                             "Interface": "eno1",
171                             "MTU": 1500,
172                             "Method": "auto"
173                         },
174                         "Favorite": true,
175                         "IPv4": {
176                             "Address": "192.168.1.20",
177                             "Gateway": "192.168.1.1",
178                             "Method": "dhcp",
179                             "Netmask": "255.255.255.0"
180                         },
181                         "IPv4.Configuration": {
182                             "Method": "dhcp"
183                         },
184                         "IPv6": {},
185                         "IPv6.Configuration": {
186                             "Method": "auto",
187                             "Privacy": "disabled"
188                         },
189                         "Immutable": false,
190                         "Name": "Wired",
191                         "Nameservers": [
192                             "192.168.1.1",
193                             "184.11.12.13"
194                         ],
195                         "Nameservers.Configuration": [],
196                         "Provider": {},
197                         "Proxy": {
198                             "Method": "direct"
199                         },
200                         "Proxy.Configuration": {},
201                         "Security": [],
202                         "State": "online",
203                         "Timeservers": [
204                             "192.168.1.1",
205                             "pool.ntp.org"
206                         ],
207                         "Timeservers.Configuration": [],
208                         "Type": "ethernet"
209                     }
210                 ],
211                 [
212                     "/net/connman/service/wifi_c8f733acdf96_3558364737_managed_psk",
213                     {
214                         "AutoConnect": false,
215                         "BSSID": "42:18:23:98:93:f9",
216                         "Domains": [],
217                         "Domains.Configuration": [],
218                         "EncryptionMode": "aes",
219                         "Ethernet": {
220                             "Address": "D8:A7:47:AC:66:10",
221                             "Interface": "wlp1s0",
222                             "MTU": 1500,
223                             "Method": "auto"
224                         },
225                         "Favorite": false,
226                         "Frequency": 2412,
227                         "IPv4": {},
228                         "IPv4.Configuration": {
229                             "Method": "dhcp"
230                         },
231                         "IPv6": {},
232                         "IPv6.Configuration": {
233                             "Method": "auto",
234                             "Privacy": "disabled"
235                         },
236                         "Immutable": false,
237                         "MaxRate": 54000000,
238                         "Name": "TIZENIVI",
239                         "Nameservers": [],
240                         "Nameservers.Configuration": [],
241                         "Provider": {},
242                         "Proxy": {},
243                         "Proxy.Configuration": {},
244                         "Security": [
245                             "psk",
246                             "wps"
247                         ],
248                         "State": "idle",
249                         "Strength": 78,
250                         "Timeservers": [],
251                         "Timeservers.Configuration": [],
252                         "Type": "wifi"
253                     }
254                 ]
255             ]
256         ]
257     }
258
259 // --------------------------------------------------------------
260 //                           Clock
261 // --------------------------------------------------------------
262 // Set time
263 var request =
264     {
265         "type": "clock",
266         "transactionid": "<some UUID>",
267         "name": "time",
268         "value": <time in seconds from Epoch>
269     }
270
271 // Set timezone
272 var request =
273     {
274         "type": "clock",
275         "transactionid": "<some UUID>",
276         "name": "timezone",
277         "value": "<timezone typically found in tzdata>"
278     }
279
280 // Set time/timezone updates
281 // NOTE: The "time" request will fail with a permission denied error
282 //       if the value is set to "auto".
283 var request =
284     {
285         "type": "clock",
286         "transactionid": "<some UUID>",
287         "name": "time_updates" or "timezone_updates"
288         "value": "manual" or "auto"
289     }
290
291 // Check if time/timezone updates are set to automatic
292 var request =
293     {
294         "type": "clock",
295         "transactionid": "<some UUID>",
296         "name": "is_time_updates_auto" or "is_timezone_updates_auto"
297         "value": null
298     }
299
300 // Successful time/time_updates/timezone/timezone_updates
301 var response =
302     {
303         "type": "clock",
304         "transactionid": "<some UUID>",
305         "result": "succeeded"
306     }
307
308 // Successful is_{time,timezone}_update_auto
309 var response =
310     {
311         "type": "clock",
312         "transactionid": "<some UUID>",
313         "result": "succeeded"
314         "value": true or false
315     }