1{
2  "protocol": "loginUi",
3  "imports": [
4    {
5      "path": "common.avdl",
6      "type": "idl"
7    }
8  ],
9  "types": [
10    {
11      "type": "enum",
12      "name": "ResetPromptType",
13      "symbols": [
14        "COMPLETE_0",
15        "ENTER_NO_DEVICES_1",
16        "ENTER_FORGOT_PW_2",
17        "ENTER_RESET_PW_3"
18      ]
19    },
20    {
21      "type": "record",
22      "name": "ResetPromptInfo",
23      "fields": [
24        {
25          "type": "boolean",
26          "name": "hasWallet"
27        }
28      ]
29    },
30    {
31      "type": "variant",
32      "name": "ResetPrompt",
33      "switch": {
34        "type": "ResetPromptType",
35        "name": "t"
36      },
37      "cases": [
38        {
39          "label": {
40            "name": "COMPLETE",
41            "def": false
42          },
43          "body": "ResetPromptInfo"
44        },
45        {
46          "label": {
47            "def": true
48          },
49          "body": null
50        }
51      ]
52    },
53    {
54      "type": "enum",
55      "name": "ResetPromptResponse",
56      "symbols": [
57        "NOTHING_0",
58        "CANCEL_RESET_1",
59        "CONFIRM_RESET_2"
60      ]
61    },
62    {
63      "type": "enum",
64      "name": "PassphraseRecoveryPromptType",
65      "symbols": [
66        "ENCRYPTED_PGP_KEYS_0"
67      ]
68    },
69    {
70      "type": "enum",
71      "name": "ResetMessage",
72      "symbols": [
73        "ENTERED_VERIFIED_0",
74        "ENTERED_PASSWORDLESS_1",
75        "REQUEST_VERIFIED_2",
76        "NOT_COMPLETED_3",
77        "CANCELED_4",
78        "COMPLETED_5",
79        "RESET_LINK_SENT_6"
80      ]
81    }
82  ],
83  "messages": {
84    "getEmailOrUsername": {
85      "request": [
86        {
87          "name": "sessionID",
88          "type": "int"
89        }
90      ],
91      "response": "string"
92    },
93    "promptRevokePaperKeys": {
94      "request": [
95        {
96          "name": "sessionID",
97          "type": "int"
98        },
99        {
100          "name": "device",
101          "type": "Device"
102        },
103        {
104          "name": "index",
105          "type": "int"
106        }
107      ],
108      "response": "boolean"
109    },
110    "displayPaperKeyPhrase": {
111      "request": [
112        {
113          "name": "sessionID",
114          "type": "int"
115        },
116        {
117          "name": "phrase",
118          "type": "string"
119        }
120      ],
121      "response": null
122    },
123    "displayPrimaryPaperKey": {
124      "request": [
125        {
126          "name": "sessionID",
127          "type": "int"
128        },
129        {
130          "name": "phrase",
131          "type": "string"
132        }
133      ],
134      "response": null
135    },
136    "promptResetAccount": {
137      "request": [
138        {
139          "name": "sessionID",
140          "type": "int"
141        },
142        {
143          "name": "prompt",
144          "type": "ResetPrompt"
145        }
146      ],
147      "response": "ResetPromptResponse",
148      "doc": "Called during login / provisioning flows to ask the user whether they\n   would like to either enter the autoreset pipeline and perform the reset\n   of the account."
149    },
150    "displayResetProgress": {
151      "request": [
152        {
153          "name": "sessionID",
154          "type": "int"
155        },
156        {
157          "name": "text",
158          "type": "string"
159        },
160        {
161          "name": "endTime",
162          "type": "Time"
163        },
164        {
165          "name": "needVerify",
166          "type": "boolean"
167        }
168      ],
169      "response": null,
170      "doc": "In some flows the user will get notified of the reset progress"
171    },
172    "explainDeviceRecovery": {
173      "request": [
174        {
175          "name": "sessionID",
176          "type": "int"
177        },
178        {
179          "name": "kind",
180          "type": "DeviceType"
181        },
182        {
183          "name": "name",
184          "type": "string"
185        }
186      ],
187      "response": null,
188      "doc": "During recovery the service might want to explain to the user how they can change\n   their password by using the \"change password\" functionality on other devices."
189    },
190    "promptPassphraseRecovery": {
191      "request": [
192        {
193          "name": "sessionID",
194          "type": "int"
195        },
196        {
197          "name": "kind",
198          "type": "PassphraseRecoveryPromptType"
199        }
200      ],
201      "response": "bool"
202    },
203    "chooseDeviceToRecoverWith": {
204      "request": [
205        {
206          "name": "sessionID",
207          "type": "int"
208        },
209        {
210          "name": "devices",
211          "type": {
212            "type": "array",
213            "items": "Device"
214          }
215        }
216      ],
217      "response": "DeviceID",
218      "doc": "Different from ProvisionUI's chooseDevice due to phrasing in the UI."
219    },
220    "displayResetMessage": {
221      "request": [
222        {
223          "name": "sessionID",
224          "type": "int"
225        },
226        {
227          "name": "kind",
228          "type": "ResetMessage"
229        }
230      ],
231      "response": null,
232      "doc": "Simply displays a message in the recovery flow."
233    }
234  },
235  "namespace": "keybase.1"
236}