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}