Blink roll 25b6bd3a7a131ffe68d809546ad1a20707915cdc:3a503f41ae42e5b79cfcd2ff10e65afde...
[chromium-blink-merge.git] / extensions / common / api / bluetooth_private.json
blob20c82f1b95af5cf4f82d366254f7969c37f8073e
2   {
3     "namespace": "bluetoothPrivate",
4     "description": " Use the <code>chrome.bluetoothPrivate</code> API to control the Bluetooth\n adapter state and handle device pairing.",
5     "compiler_options": {
6       "implemented_in": "extensions/browser/api/bluetooth/bluetooth_private_api.h"
7     },
8     "functions": [
9       {
10         "name": "setAdapterState",
11         "type": "function",
12         "description": "Changes the state of the Bluetooth adapter.",
13         "parameters": [
14           {
15             "name": "adapterState",
16             "$ref": "NewAdapterState"
17           },
18           {
19             "name": "callback",
20             "type": "function",
21             "parameters": []
22           }
23         ]
24       },
25       {
26         "name": "setPairingResponse",
27         "type": "function",
28         "parameters": [
29           {
30             "name": "options",
31             "$ref": "SetPairingResponseOptions"
32           },
33           {
34             "name": "callback",
35             "type": "function",
36             "parameters": []
37           }
38         ]
39       }
40     ],
41     "events": [
42       {
43         "name": "onPairing",
44         "type": "function",
45         "description": "Fired when a pairing event occurs.",
46         "parameters": [
47           {
48             "name": "pairingEvent",
49             "description": "A pairing event.",
50             "$ref": "PairingEvent"
51           }
52         ],
53         "options":
54         {
55           "maxListeners": 1
56         }
57       }
58     ],
59     "types": [
60       {
61         "type": "string",
62         "id": "PairingEventType",
63         "description": "Events that can occur during pairing. The method used for pairing varies depending on the capability of the two devices.",
64         "enum": [
65           {
66             "name": "requestPincode",
67             "description": "An alphanumeric PIN code is required to be entered by the user."
68           },
69           {
70             "name": "displayPincode",
71             "description": "Display a PIN code to the user."
72           },
73           {
74             "name": "requestPasskey",
75             "description": "A numeric passkey is required to be entered by the user."
76           },
77           {
78             "name": "displayPasskey",
79             "description": "Display a zero padded 6 digit numeric passkey that the user entered on the remote device. This event may occur multiple times during pairing to update the entered passkey."
80           },
81           {
82             "name": "keysEntered",
83             "description": "The number of keys inputted by the user on the remote device when entering a passkey. This event may be called multiple times during pairing to update the number of keys inputted."
84           },
85           {
86             "name": "confirmPasskey",
87             "description": "Requests that a 6 digit passkey be displayed and the user confirms that both devies show the same passkey."
88           },
89           {
90             "name": "requestAuthorization",
91             "description": "Requests authorization for a pairing under the just-works model. It is up to the app to ask for user confirmation."
92           },
93           {
94             "name": "complete",
95             "description": "Pairing is completed"
96           }
97         ]
98       },
99       {
100         "type": "string",
101         "id": "PairingResponse",
102         "description": "Valid pairing responses.",
103         "enum": [ "confirm", "reject", "cancel"]
104       },
105       {
106         "type": "object",
107         "id": "PairingEvent",
108         "description": "A pairing event received from a Bluetooth device.",
109         "properties": {
110           "pairing": {
111             "name": "pairing",
112             "$ref": "PairingEventType"
113           },
114           "device": {
115             "name": "device",
116             "$ref": "bluetooth.Device"
117           },
118           "pincode": {
119             "optional": true,
120             "name": "pincode",
121             "type": "string"
122           },
123           "passkey": {
124             "optional": true,
125             "name": "passkey",
126             "type": "integer"
127           },
128           "enteredKey": {
129             "optional": true,
130             "name": "enteredKey",
131             "type": "integer"
132           }
133         }
134       },
135       {
136         "type": "object",
137         "id": "NewAdapterState",
138         "properties": {
139           "name": {
140             "optional": true,
141             "name": "name",
142             "type": "string",
143             "description": "The human-readable name of the adapter."
144           },
145           "powered": {
146             "optional": true,
147             "name": "powered",
148             "type": "boolean",
149             "description": "Whether or not the adapter has power."
150           },
151           "discoverable": {
152             "optional": true,
153             "name": "discoverable",
154             "type": "boolean",
155             "description": "Whether the adapter is discoverable by other devices."
156           }
157         }
158       },
159       {
160         "type": "object",
161         "id": "SetPairingResponseOptions",
162         "properties": {
163           "device": {
164             "name": "device",
165             "$ref": "bluetooth.Device",
166             "description": "The remote device to send the pairing response."
167           },
168           "response": {
169             "optional": true,
170             "name": "response",
171             "$ref": "PairingResponse",
172             "description": "The response type"
173           },
174           "pincode": {
175             "optional": true,
176             "name": "pincode",
177             "type": "string",
178             "description": "A 1-16 character alphanumeric set in response to <code>requestPincode</code>."
179           },
180           "passkey": {
181             "optional": true,
182             "name": "passkey",
183             "type": "integer",
184             "description": "An integer between 0-999999 set in response to <code>requestPasskey</code>."
185           }
186         }
187       }
188     ]
189   }