1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 [ 6 { 7 "namespace":"networkingPrivate", 8 "description": "none", 9 "compiler_options": { 10 "implemented_in": "chrome/browser/extensions/api/networking_private/networking_private_api.h" 11 }, 12 "platforms": ["chromeos", "win"], 13 "types" : [ 14 { 15 "id": "NetworkProperties", 16 "type": "object", 17 "additionalProperties": { "type": "any" } 18 }, 19 { 20 "id": "ManagedNetworkProperties", 21 "type": "object", 22 "additionalProperties": { "type": "any" } 23 }, 24 { 25 "id": "VerificationProperties", 26 "type": "object", 27 "properties": { 28 "certificate": { 29 "type": "string", 30 "description": "A string containing a PEM-encoded X.509 certificate for use in verifying the signed data." 31 }, 32 "publicKey": { 33 "type": "string", 34 "description": "A string containing a PEM-encoded RSA public key to be used to compare with the one in signedData" 35 }, 36 "nonce": { 37 "type": "string", 38 "description": "A string containing a base64-encoded random binary data for use in verifying the signed data." 39 }, 40 "signedData": { 41 "type": "string", 42 "description": "A string containing the identifying data string signed by the device." 43 }, 44 "deviceSerial": { 45 "type": "string", 46 "description": "A string containing the serial number of the device." 47 }, 48 "deviceSsid": { 49 "type": "string", 50 "description": "A string containing the SSID of the device. Only set if the device has already been setup once." 51 }, 52 "deviceBssid": { 53 "type": "string", 54 "description": "A string containing the BSSID of the device. Only set if the device has already been setup." 55 } 56 } 57 }, 58 { 59 "id": "NetworkType", 60 "type": "string", 61 "enum": ["Ethernet", "WiFi", "Cellular"] 62 } 63 ], 64 "functions": [ 65 { 66 "name": "getProperties", 67 "description": "Gets all the properties of the network with id networkGuid. Includes all properties of the network (read-only and read/write values).", 68 "parameters": [ 69 { 70 "name": "networkGuid", 71 "type": "string", 72 "description": "The unique identifier of the network to get properties from." 73 }, 74 { 75 "name": "callback", 76 "type": "function", 77 "parameters": [ 78 { 79 "name": "properties", 80 "$ref": "NetworkProperties", 81 "description": "Results of the query for network properties." 82 } 83 ] 84 } 85 ] 86 }, 87 { 88 "name": "getManagedProperties", 89 "description": "Gets the merged properties of the network with id networkGuid from the sources: User settings, shared settings, user policy, device policy and the currently active settings.", 90 "parameters": [ 91 { 92 "name": "networkGuid", 93 "type": "string", 94 "description": "The unique identifier of the network to get properties from." 95 }, 96 { 97 "name": "callback", 98 "type": "function", 99 "parameters": [ 100 { 101 "name": "properties", 102 "$ref": "ManagedNetworkProperties", 103 "description": "Results of the query for managed network properties." 104 } 105 ] 106 } 107 ] 108 }, 109 { 110 "name": "getState", 111 "description": "Gets the cached read-only properties of the network with id networkGuid. This is meant to be a higher performance function than getProperties, which requires a round trip to query the networking subsystem. It only returns a subset of the properties returned by getProperties.", 112 "parameters": [ 113 { 114 "name": "networkGuid", 115 "type": "string", 116 "description": "The unique identifier of the network to set properties on." 117 }, 118 { 119 "name": "callback", 120 "type": "function", 121 "parameters": [ 122 { 123 "name": "properties", 124 "$ref": "NetworkProperties", 125 "description": "Results of the query for network properties." 126 } 127 ] 128 } 129 ] 130 }, 131 { 132 "name": "setProperties", 133 "description": "Sets the properties of the network with id networkGuid.", 134 "parameters": [ 135 { 136 "name": "networkGuid", 137 "type": "string", 138 "description": "The unique identifier of the network to set properties on." 139 }, 140 { 141 "name": "properties", 142 "$ref": "NetworkProperties", 143 "description": "The properties to set on the network." 144 }, 145 { 146 "name": "callback", 147 "type": "function", 148 "parameters": [] 149 } 150 ] 151 }, 152 { 153 "name": "createNetwork", 154 "description": "Creates a new network configuration from propeties. If a matching configured network already exists, this will fail. Otherwise returns the guid of the new network.", 155 "parameters": [ 156 { 157 "name": "shared", 158 "type": "boolean", 159 "description": "If true, share this network configuration with other users." 160 }, 161 { 162 "name": "properties", 163 "$ref": "NetworkProperties", 164 "description": "The properties to configure the new network with." 165 }, 166 { 167 "name": "callback", 168 "type": "function", 169 "parameters": [ 170 { 171 "name": "guid", 172 "type": "string" 173 } 174 ] 175 } 176 ] 177 }, 178 { 179 "name": "getVisibleNetworks", 180 "description": "Gets the list of visible networks, and returns a list of cached, read-only network properties for each.", 181 "parameters": [ 182 { 183 "name": "type", 184 "type": "string", 185 "enum": ["Ethernet", "WiFi", "Bluetooth", "Cellular", "VPN", "All"], 186 "description": "The type of networks to return." 187 }, 188 { 189 "name": "callback", 190 "type": "function", 191 "optional": true, 192 "parameters": [ 193 { 194 "name": "networkList", 195 "type": "array", 196 "items": { "$ref": "NetworkProperties" } 197 } 198 ] 199 } 200 ] 201 }, 202 { 203 "name": "getEnabledNetworkTypes", 204 "description": "Returns a list of the enabled network type.", 205 "parameters": [ 206 { 207 "name": "callback", 208 "type": "function", 209 "optional": true, 210 "parameters": [ 211 { 212 "name": "networkList", 213 "type": "array", 214 "items": { "$ref": "NetworkType" } 215 } 216 ] 217 } 218 ] 219 }, 220 { 221 "name": "enableNetworkType", 222 "description": "Enable the specified network type.", 223 "parameters": [ 224 { 225 "name": "networkType", 226 "$ref": "NetworkType" 227 } 228 ] 229 }, 230 { 231 "name": "disableNetworkType", 232 "description": "Disable the specified network type.", 233 "parameters": [ 234 { 235 "name": "networkType", 236 "$ref": "NetworkType" 237 } 238 ] 239 }, 240 { 241 "name": "requestNetworkScan", 242 "description": "Requests that the networking subsystem scan for new networks and update the list returned by getVisibleNetworks. This is only a request: the network subsystem can choose to ignore it. If the list is updated, then the onNetworkListChanged event will be fired.", 243 "parameters": [] 244 }, 245 { 246 "name": "startConnect", 247 "description": "Starts a connection to the network with networkGuid.", 248 "parameters": [ 249 { 250 "name": "networkGuid", 251 "type": "string", 252 "description": "The unique identifier of the network to connect to." 253 }, 254 { 255 "name": "callback", 256 "type": "function", 257 "optional": true, 258 "parameters": [], 259 "description": "A callback function that indicates that a connection has been initiated." 260 } 261 ] 262 }, 263 { 264 "name": "startDisconnect", 265 "description": "Starts a disconnect from the network with networkGuid.", 266 "parameters": [ 267 { 268 "name": "networkGuid", 269 "type": "string", 270 "description": "The unique identifier of the network to disconnect from." 271 }, 272 { 273 "name": "callback", 274 "type": "function", 275 "optional": true, 276 "parameters": [], 277 "description": "A callback function that indicates that a disconnect has been initiated." 278 } 279 ] 280 }, 281 { 282 "name": "verifyDestination", 283 "description": "Verifies that the device is a trusted device.", 284 "parameters": [ 285 { 286 "name": "properties", 287 "$ref": "VerificationProperties", 288 "description": "Properties of the destination to use in verifying that it is a trusted device." 289 }, 290 { 291 "name": "callback", 292 "type": "function", 293 "parameters": [ 294 { 295 "name": "verified", 296 "type": "boolean" 297 } 298 ], 299 "description": "A callback function that indicates whether or not the device is a trusted device." 300 } 301 ] 302 }, 303 { 304 "name": "verifyAndEncryptCredentials", 305 "description": "Verifies that the device is a trusted device and retrieves encrypted network credentials.", 306 "parameters": [ 307 { 308 "name": "properties", 309 "$ref": "VerificationProperties", 310 "description": "Properties of the destination to use in verifying that it is a trusted device." 311 }, 312 { 313 "name": "guid", 314 "type": "string", 315 "description": "A string containing the unique identifier of the network to get credentials for." 316 }, 317 { 318 "name": "callback", 319 "type": "function", 320 "parameters": [ 321 { 322 "name": "credentials", 323 "type": "string" 324 } 325 ], 326 "description": "A callback function that receives base64-encoded encrypted credential data to send to a trusted device." 327 } 328 ] 329 }, 330 { 331 "name": "verifyAndEncryptData", 332 "description": "Verifies that the device is a trusted device and encrypts supplied data with device public key.", 333 "parameters": [ 334 { 335 "name": "properties", 336 "$ref": "VerificationProperties", 337 "description": "Properties of the destination to use in verifying that it is a trusted device." 338 }, 339 { 340 "name": "data", 341 "type": "string", 342 "description": "A string containing the base64-encoded data to encrypt." 343 }, 344 { 345 "name": "callback", 346 "type": "function", 347 "parameters": [ 348 { 349 "name": "encryptedData", 350 "type": "string" 351 } 352 ], 353 "description": "A callback function that receives base64-encoded encrypted data to send to a trusted device." 354 } 355 ] 356 } 357 ], 358 "events": [ 359 { 360 "name": "onNetworksChanged", 361 "type": "function", 362 "description": "Fired when the properties change on any of the networks. Sends a list of identifiers for networks whose properties have changed.", 363 "parameters": [ 364 { 365 "name": "changes", 366 "type": "array", 367 "items": { "type": "string" } 368 } 369 ] 370 }, 371 { 372 "name": "onNetworkListChanged", 373 "type": "function", 374 "description": "Fired when the list of networks has changed. Sends a complete list of identifiers for all the current networks.", 375 "parameters": [ 376 { 377 "name": "changes", 378 "type": "array", 379 "items": { "type": "string" } 380 } 381 ] 382 } 383 ] 384 } 385 ] 386