1{
2 "basePath": "",
3 "baseUrl": "https://www.googleapis.com/",
4 "batchPath": "batch",
5 "canonicalName": "Tool Results",
6 "description": "API to publish and access results from developer tools.",
7 "discoveryVersion": "v1",
8 "documentationLink": "https://firebase.google.com/docs/test-lab/",
9 "icons": {
10 "x16": "http://www.google.com/images/icons/product/search-16.gif",
11 "x32": "http://www.google.com/images/icons/product/search-32.gif"
12 },
13 "id": "toolresults:v1",
14 "kind": "discovery#restDescription",
15 "mtlsRootUrl": "https://www.mtls.googleapis.com/",
16 "name": "toolresults",
17 "ownerDomain": "google.com",
18 "ownerName": "Google",
19 "parameters": {
20 "$.xgafv": {
21 "description": "V1 error format.",
22 "enum": [
23 "1",
24 "2"
25 ],
26 "enumDescriptions": [
27 "v1 error format",
28 "v2 error format"
29 ],
30 "location": "query",
31 "type": "string"
32 },
33 "access_token": {
34 "description": "OAuth access token.",
35 "location": "query",
36 "type": "string"
37 },
38 "alt": {
39 "default": "json",
40 "description": "Data format for response.",
41 "enum": [
42 "json",
43 "media",
44 "proto"
45 ],
46 "enumDescriptions": [
47 "Responses with Content-Type of application/json",
48 "Media download with context-dependent Content-Type",
49 "Responses with Content-Type of application/x-protobuf"
50 ],
51 "location": "query",
52 "type": "string"
53 },
54 "callback": {
55 "description": "JSONP",
56 "location": "query",
57 "type": "string"
58 },
59 "fields": {
60 "description": "Selector specifying which fields to include in a partial response.",
61 "location": "query",
62 "type": "string"
63 },
64 "key": {
65 "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
66 "location": "query",
67 "type": "string"
68 },
69 "oauth_token": {
70 "description": "OAuth 2.0 token for the current user.",
71 "location": "query",
72 "type": "string"
73 },
74 "prettyPrint": {
75 "default": "true",
76 "description": "Returns response with indentations and line breaks.",
77 "location": "query",
78 "type": "boolean"
79 },
80 "quotaUser": {
81 "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
82 "location": "query",
83 "type": "string"
84 },
85 "uploadType": {
86 "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
87 "location": "query",
88 "type": "string"
89 },
90 "upload_protocol": {
91 "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
92 "location": "query",
93 "type": "string"
94 }
95 },
96 "protocol": "rest",
97 "resources": {},
98 "revision": "20200224",
99 "rootUrl": "https://www.googleapis.com/",
100 "schemas": {
101 "ANR": {
102 "description": "Additional details for an ANR crash.",
103 "id": "ANR",
104 "properties": {
105 "stackTrace": {
106 "$ref": "StackTrace",
107 "description": "The stack trace of the ANR crash.\nOptional."
108 }
109 },
110 "type": "object"
111 },
112 "AvailableDeepLinks": {
113 "description": "A suggestion to use deep links for a Robo run.",
114 "id": "AvailableDeepLinks",
115 "properties": {},
116 "type": "object"
117 },
118 "BlankScreen": {
119 "description": "A warning that Robo encountered a screen that was mostly blank; this may\nindicate a problem with the app.",
120 "id": "BlankScreen",
121 "properties": {
122 "screenId": {
123 "description": "The screen id of the element",
124 "type": "string"
125 }
126 },
127 "type": "object"
128 },
129 "CrashDialogError": {
130 "description": "Crash dialog was detected during the test execution",
131 "id": "CrashDialogError",
132 "properties": {
133 "crashPackage": {
134 "description": "The name of the package that caused the dialog.",
135 "type": "string"
136 }
137 },
138 "type": "object"
139 },
140 "EncounteredLoginScreen": {
141 "description": "Additional details about encountered login screens.",
142 "id": "EncounteredLoginScreen",
143 "properties": {
144 "distinctScreens": {
145 "description": "Number of encountered distinct login screens.",
146 "format": "int32",
147 "type": "integer"
148 },
149 "screenIds": {
150 "description": "Subset of login screens.",
151 "items": {
152 "type": "string"
153 },
154 "type": "array"
155 }
156 },
157 "type": "object"
158 },
159 "EncounteredNonAndroidUiWidgetScreen": {
160 "description": "Additional details about encountered screens with elements that are not\nAndroid UI widgets.",
161 "id": "EncounteredNonAndroidUiWidgetScreen",
162 "properties": {
163 "distinctScreens": {
164 "description": "Number of encountered distinct screens with non Android UI widgets.",
165 "format": "int32",
166 "type": "integer"
167 },
168 "screenIds": {
169 "description": "Subset of screens which contain non Android UI widgets.",
170 "items": {
171 "type": "string"
172 },
173 "type": "array"
174 }
175 },
176 "type": "object"
177 },
178 "FailedToInstall": {
179 "description": "Failed to install the APK.",
180 "id": "FailedToInstall",
181 "properties": {},
182 "type": "object"
183 },
184 "FatalException": {
185 "description": "Additional details for a fatal exception.",
186 "id": "FatalException",
187 "properties": {
188 "stackTrace": {
189 "$ref": "StackTrace",
190 "description": "The stack trace of the fatal exception.\nOptional."
191 }
192 },
193 "type": "object"
194 },
195 "InAppPurchasesFound": {
196 "description": "Additional details of in-app purchases encountered during the crawl.",
197 "id": "InAppPurchasesFound",
198 "properties": {
199 "inAppPurchasesFlowsExplored": {
200 "description": "The total number of in-app purchases flows explored: how many times the\nrobo tries to buy a SKU.",
201 "format": "int32",
202 "type": "integer"
203 },
204 "inAppPurchasesFlowsStarted": {
205 "description": "The total number of in-app purchases flows started.",
206 "format": "int32",
207 "type": "integer"
208 }
209 },
210 "type": "object"
211 },
212 "InsufficientCoverage": {
213 "description": "A warning that Robo did not crawl potentially important parts of the app.",
214 "id": "InsufficientCoverage",
215 "properties": {},
216 "type": "object"
217 },
218 "IosAppCrashed": {
219 "description": "Additional details for an iOS app crash.",
220 "id": "IosAppCrashed",
221 "properties": {
222 "stackTrace": {
223 "$ref": "StackTrace",
224 "description": "The stack trace, if one is available.\nOptional."
225 }
226 },
227 "type": "object"
228 },
229 "LauncherActivityNotFound": {
230 "description": "Failed to find the launcher activity of an app.",
231 "id": "LauncherActivityNotFound",
232 "properties": {},
233 "type": "object"
234 },
235 "NativeCrash": {
236 "description": "Additional details for a native crash.",
237 "id": "NativeCrash",
238 "properties": {
239 "stackTrace": {
240 "$ref": "StackTrace",
241 "description": "The stack trace of the native crash.\nOptional."
242 }
243 },
244 "type": "object"
245 },
246 "NonSdkApi": {
247 "description": "A non-sdk API and examples of it being called along with other metadata\nSee\nhttps://developer.android.com/distribute/best-practices/develop/restrictions-non-sdk-interfaces",
248 "id": "NonSdkApi",
249 "properties": {
250 "apiSignature": {
251 "description": "The signature of the Non-SDK API",
252 "type": "string"
253 },
254 "exampleStackTraces": {
255 "description": "Example stack traces of this API being called.",
256 "items": {
257 "type": "string"
258 },
259 "type": "array"
260 },
261 "insights": {
262 "description": "Optional debugging insights for non-SDK API violations.",
263 "items": {
264 "$ref": "NonSdkApiInsight"
265 },
266 "type": "array"
267 },
268 "invocationCount": {
269 "description": "The total number of times this API was observed to have been called.",
270 "format": "int32",
271 "type": "integer"
272 },
273 "list": {
274 "description": "Which list this API appears on",
275 "enum": [
276 "NONE",
277 "WHITE",
278 "BLACK",
279 "GREY",
280 "GREY_MAX_O",
281 "GREY_MAX_P",
282 "GREY_MAX_Q"
283 ],
284 "enumDescriptions": [
285 "",
286 "",
287 "",
288 "",
289 "",
290 "",
291 ""
292 ],
293 "type": "string"
294 }
295 },
296 "type": "object"
297 },
298 "NonSdkApiInsight": {
299 "description": "Non-SDK API insights (to address debugging solutions).",
300 "id": "NonSdkApiInsight",
301 "properties": {
302 "exampleTraceMessages": {
303 "description": "Optional sample stack traces, for which this insight applies (there\nshould be at least one).",
304 "items": {
305 "type": "string"
306 },
307 "type": "array"
308 },
309 "matcherId": {
310 "description": "A unique ID, to be used for determining the effectiveness of this\nparticular insight in the context of a matcher. (required)",
311 "type": "string"
312 },
313 "pendingGoogleUpdateInsight": {
314 "$ref": "PendingGoogleUpdateInsight",
315 "description": "An insight indicating that the hidden API usage originates from a\nGoogle-provided library."
316 },
317 "upgradeInsight": {
318 "$ref": "UpgradeInsight",
319 "description": "An insight indicating that the hidden API usage originates from the\nuse of a library that needs to be upgraded."
320 }
321 },
322 "type": "object"
323 },
324 "NonSdkApiUsageViolation": {
325 "description": "Additional details for a non-sdk API usage violation.",
326 "id": "NonSdkApiUsageViolation",
327 "properties": {
328 "apiSignatures": {
329 "description": "Signatures of a subset of those hidden API's.",
330 "items": {
331 "type": "string"
332 },
333 "type": "array"
334 },
335 "uniqueApis": {
336 "description": "Total number of unique hidden API's accessed.",
337 "format": "int32",
338 "type": "integer"
339 }
340 },
341 "type": "object"
342 },
343 "NonSdkApiUsageViolationReport": {
344 "description": "Contains a summary and examples of non-sdk API usage violations.",
345 "id": "NonSdkApiUsageViolationReport",
346 "properties": {
347 "exampleApis": {
348 "description": "Examples of the detected API usages.",
349 "items": {
350 "$ref": "NonSdkApi"
351 },
352 "type": "array"
353 },
354 "minSdkVersion": {
355 "description": "Minimum API level required for the application to run.",
356 "format": "int32",
357 "type": "integer"
358 },
359 "targetSdkVersion": {
360 "description": "Specifies the API Level on which the application is designed to run.",
361 "format": "int32",
362 "type": "integer"
363 },
364 "uniqueApis": {
365 "description": "Total number of unique Non-SDK API's accessed.",
366 "format": "int32",
367 "type": "integer"
368 }
369 },
370 "type": "object"
371 },
372 "OverlappingUIElements": {
373 "description": "A warning that Robo encountered a screen that has overlapping clickable\nelements; this may indicate a potential UI issue.",
374 "id": "OverlappingUIElements",
375 "properties": {
376 "resourceName": {
377 "description": "Resource names of the overlapping screen elements",
378 "items": {
379 "type": "string"
380 },
381 "type": "array"
382 },
383 "screenId": {
384 "description": "The screen id of the elements",
385 "type": "string"
386 }
387 },
388 "type": "object"
389 },
390 "PendingGoogleUpdateInsight": {
391 "description": "This insight indicates that the hidden API usage originates from a\nGoogle-provided library. Users need not take any action.",
392 "id": "PendingGoogleUpdateInsight",
393 "properties": {
394 "nameOfGoogleLibrary": {
395 "description": "The name of the Google-provided library with the non-SDK API dependency.",
396 "type": "string"
397 }
398 },
399 "type": "object"
400 },
401 "PerformedGoogleLogin": {
402 "description": "A notification that Robo signed in with Google.",
403 "id": "PerformedGoogleLogin",
404 "properties": {},
405 "type": "object"
406 },
407 "PerformedMonkeyActions": {
408 "description": "A notification that Robo performed some monkey actions.",
409 "id": "PerformedMonkeyActions",
410 "properties": {
411 "totalActions": {
412 "description": "The total number of monkey actions performed during the crawl.",
413 "format": "int32",
414 "type": "integer"
415 }
416 },
417 "type": "object"
418 },
419 "RoboScriptExecution": {
420 "description": "Execution stats for a user-provided Robo script.",
421 "id": "RoboScriptExecution",
422 "properties": {
423 "successfulActions": {
424 "description": "The number of Robo script actions executed successfully.",
425 "format": "int32",
426 "type": "integer"
427 },
428 "totalActions": {
429 "description": "The total number of actions in the Robo script.",
430 "format": "int32",
431 "type": "integer"
432 }
433 },
434 "type": "object"
435 },
436 "StackTrace": {
437 "description": "A stacktrace.",
438 "id": "StackTrace",
439 "properties": {
440 "exception": {
441 "description": "The stack trace message.\n\nRequired",
442 "type": "string"
443 }
444 },
445 "type": "object"
446 },
447 "StartActivityNotFound": {
448 "description": "User provided intent failed to resolve to an activity.",
449 "id": "StartActivityNotFound",
450 "properties": {
451 "action": {
452 "type": "string"
453 },
454 "uri": {
455 "type": "string"
456 }
457 },
458 "type": "object"
459 },
460 "UIElementTooDeep": {
461 "description": "A warning that the screen hierarchy is deeper than the recommended threshold.",
462 "id": "UIElementTooDeep",
463 "properties": {
464 "depth": {
465 "description": "The depth of the screen element",
466 "format": "int32",
467 "type": "integer"
468 },
469 "screenId": {
470 "description": "The screen id of the element",
471 "type": "string"
472 },
473 "screenStateId": {
474 "description": "The screen state id of the element",
475 "type": "string"
476 }
477 },
478 "type": "object"
479 },
480 "UnspecifiedWarning": {
481 "description": "Default unspecified warning.",
482 "id": "UnspecifiedWarning",
483 "properties": {},
484 "type": "object"
485 },
486 "UnusedRoboDirective": {
487 "description": "Additional details of an unused robodirective.",
488 "id": "UnusedRoboDirective",
489 "properties": {
490 "resourceName": {
491 "description": "The name of the resource that was unused.",
492 "type": "string"
493 }
494 },
495 "type": "object"
496 },
497 "UpgradeInsight": {
498 "description": "This insight is a recommendation to upgrade a given library to the specified\nversion, in order to avoid dependencies on non-SDK APIs.",
499 "id": "UpgradeInsight",
500 "properties": {
501 "packageName": {
502 "description": "The name of the package to be upgraded.",
503 "type": "string"
504 },
505 "upgradeToVersion": {
506 "description": "The suggested version to upgrade to.\nOptional: In case we are not sure which version solves this problem",
507 "type": "string"
508 }
509 },
510 "type": "object"
511 },
512 "UsedRoboDirective": {
513 "description": "Additional details of a used Robo directive.",
514 "id": "UsedRoboDirective",
515 "properties": {
516 "resourceName": {
517 "description": "The name of the resource that was used.",
518 "type": "string"
519 }
520 },
521 "type": "object"
522 },
523 "UsedRoboIgnoreDirective": {
524 "description": "Additional details of a used Robo directive with an ignore action.\nNote: This is a different scenario than unused directive.",
525 "id": "UsedRoboIgnoreDirective",
526 "properties": {
527 "resourceName": {
528 "description": "The name of the resource that was ignored.",
529 "type": "string"
530 }
531 },
532 "type": "object"
533 }
534 },
535 "servicePath": "",
536 "title": "Cloud Tool Results API",
537 "version": "v1",
538 "version_module": true
539}
View as plain text