| OLD | NEW |
| (Empty) | |
| 1 { |
| 2 "auth": { |
| 3 "oauth2": { |
| 4 "scopes": { |
| 5 "https://www.googleapis.com/auth/cloud-platform": { |
| 6 "description": "View and manage your data across Google Clou
d Platform services" |
| 7 } |
| 8 } |
| 9 } |
| 10 }, |
| 11 "basePath": "/toolresults/v1beta3/projects/", |
| 12 "baseUrl": "https://www.googleapis.com/toolresults/v1beta3/projects/", |
| 13 "batchPath": "batch", |
| 14 "description": "Read and publish results from Cloud Test Lab.", |
| 15 "discoveryVersion": "v1", |
| 16 "documentationLink": "https://developers.google.com/cloud-test-lab/", |
| 17 "etag": "\"bRFOOrZKfO9LweMbPqu0kcu6De8/Ek_-qXhUibPF2j8KMy4bYpvrtsk\"", |
| 18 "icons": { |
| 19 "x16": "http://www.google.com/images/icons/product/search-16.gif", |
| 20 "x32": "http://www.google.com/images/icons/product/search-32.gif" |
| 21 }, |
| 22 "id": "toolresults:v1beta3", |
| 23 "kind": "discovery#restDescription", |
| 24 "name": "toolresults", |
| 25 "ownerDomain": "google.com", |
| 26 "ownerName": "Google", |
| 27 "parameters": { |
| 28 "alt": { |
| 29 "default": "json", |
| 30 "description": "Data format for the response.", |
| 31 "enum": [ |
| 32 "json" |
| 33 ], |
| 34 "enumDescriptions": [ |
| 35 "Responses with Content-Type of application/json" |
| 36 ], |
| 37 "location": "query", |
| 38 "type": "string" |
| 39 }, |
| 40 "fields": { |
| 41 "description": "Selector specifying which fields to include in a par
tial response.", |
| 42 "location": "query", |
| 43 "type": "string" |
| 44 }, |
| 45 "key": { |
| 46 "description": "API key. Your API key identifies your project and pr
ovides you with API access, quota, and reports. Required unless you provide an O
Auth 2.0 token.", |
| 47 "location": "query", |
| 48 "type": "string" |
| 49 }, |
| 50 "oauth_token": { |
| 51 "description": "OAuth 2.0 token for the current user.", |
| 52 "location": "query", |
| 53 "type": "string" |
| 54 }, |
| 55 "prettyPrint": { |
| 56 "default": "true", |
| 57 "description": "Returns response with indentations and line breaks."
, |
| 58 "location": "query", |
| 59 "type": "boolean" |
| 60 }, |
| 61 "quotaUser": { |
| 62 "description": "Available to use for quota purposes for server-side
applications. Can be any arbitrary string assigned to a user, but should not exc
eed 40 characters. Overrides userIp if both are provided.", |
| 63 "location": "query", |
| 64 "type": "string" |
| 65 }, |
| 66 "userIp": { |
| 67 "description": "IP address of the site where the request originates.
Use this if you want to enforce per-user limits.", |
| 68 "location": "query", |
| 69 "type": "string" |
| 70 } |
| 71 }, |
| 72 "protocol": "rest", |
| 73 "resources": { |
| 74 "projects": { |
| 75 "methods": { |
| 76 "getSettings": { |
| 77 "description": "Gets the Tool Results settings for a project
.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENI
ED - if the user is not authorized to read from project", |
| 78 "httpMethod": "GET", |
| 79 "id": "toolresults.projects.getSettings", |
| 80 "parameterOrder": [ |
| 81 "projectId" |
| 82 ], |
| 83 "parameters": { |
| 84 "projectId": { |
| 85 "description": "A Project id.\n\nRequired.", |
| 86 "location": "path", |
| 87 "required": true, |
| 88 "type": "string" |
| 89 } |
| 90 }, |
| 91 "path": "{projectId}/settings", |
| 92 "response": { |
| 93 "$ref": "ProjectSettings" |
| 94 }, |
| 95 "scopes": [ |
| 96 "https://www.googleapis.com/auth/cloud-platform" |
| 97 ] |
| 98 }, |
| 99 "initializeSettings": { |
| 100 "description": "Creates resources for settings which have no
t yet been set.\n\nCurrently, this creates a single resource: a Google Cloud Sto
rage bucket, to be used as the default bucket for this project. The bucket is cr
eated in the name of the user calling. Except in rare cases, calling this method
in parallel from multiple clients will only create a single bucket. In order to
avoid unnecessary storage charges, the bucket is configured to automatically de
lete objects older than 90 days.\n\nThe bucket is created with the project-priva
te ACL: All project team members are given permissions to the bucket and objects
created within it according to their roles. Project owners have owners rights,
and so on. The default ACL on objects created in the bucket is project-private a
s well. See Google Cloud Storage documentation for more details.\n\nIf there is
already a default bucket set and the project can access the bucket, this call do
es nothing. However, if the project doesn't have the permission to access the bu
cket or the bucket is deteleted, a new bucket will be created.\n\nMay return any
canonical error codes, including the following:\n\n- PERMISSION_DENIED - if the
user is not authorized to write to project - Any error code raised by Google Cl
oud Storage", |
| 101 "httpMethod": "POST", |
| 102 "id": "toolresults.projects.initializeSettings", |
| 103 "parameterOrder": [ |
| 104 "projectId" |
| 105 ], |
| 106 "parameters": { |
| 107 "projectId": { |
| 108 "description": "A Project id.\n\nRequired.", |
| 109 "location": "path", |
| 110 "required": true, |
| 111 "type": "string" |
| 112 } |
| 113 }, |
| 114 "path": "{projectId}:initializeSettings", |
| 115 "response": { |
| 116 "$ref": "ProjectSettings" |
| 117 }, |
| 118 "scopes": [ |
| 119 "https://www.googleapis.com/auth/cloud-platform" |
| 120 ] |
| 121 } |
| 122 }, |
| 123 "resources": { |
| 124 "histories": { |
| 125 "methods": { |
| 126 "create": { |
| 127 "description": "Creates a History.\n\nThe returned H
istory will have the id set.\n\nMay return any of the following canonical error
codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write to projec
t - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containi
ng project does not exist", |
| 128 "httpMethod": "POST", |
| 129 "id": "toolresults.projects.histories.create", |
| 130 "parameterOrder": [ |
| 131 "projectId" |
| 132 ], |
| 133 "parameters": { |
| 134 "projectId": { |
| 135 "description": "A Project id.\n\nRequired.", |
| 136 "location": "path", |
| 137 "required": true, |
| 138 "type": "string" |
| 139 }, |
| 140 "requestId": { |
| 141 "description": "A unique request ID for serv
er to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly
recommended.", |
| 142 "location": "query", |
| 143 "type": "string" |
| 144 } |
| 145 }, |
| 146 "path": "{projectId}/histories", |
| 147 "request": { |
| 148 "$ref": "History" |
| 149 }, |
| 150 "response": { |
| 151 "$ref": "History" |
| 152 }, |
| 153 "scopes": [ |
| 154 "https://www.googleapis.com/auth/cloud-platform" |
| 155 ] |
| 156 }, |
| 157 "get": { |
| 158 "description": "Gets a History.\n\nMay return any of
the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is no
t authorized to read project - INVALID_ARGUMENT - if the request is malformed -
NOT_FOUND - if the History does not exist", |
| 159 "httpMethod": "GET", |
| 160 "id": "toolresults.projects.histories.get", |
| 161 "parameterOrder": [ |
| 162 "projectId", |
| 163 "historyId" |
| 164 ], |
| 165 "parameters": { |
| 166 "historyId": { |
| 167 "description": "A History id.\n\nRequired.", |
| 168 "location": "path", |
| 169 "required": true, |
| 170 "type": "string" |
| 171 }, |
| 172 "projectId": { |
| 173 "description": "A Project id.\n\nRequired.", |
| 174 "location": "path", |
| 175 "required": true, |
| 176 "type": "string" |
| 177 } |
| 178 }, |
| 179 "path": "{projectId}/histories/{historyId}", |
| 180 "response": { |
| 181 "$ref": "History" |
| 182 }, |
| 183 "scopes": [ |
| 184 "https://www.googleapis.com/auth/cloud-platform" |
| 185 ] |
| 186 }, |
| 187 "list": { |
| 188 "description": "Lists Histories for a given Project.
\n\nThe histories are sorted by modification time in descending order. The histo
ry_id key will be used to order the history with the same modification time.\n\n
May return any of the following canonical error codes:\n\n- PERMISSION_DENIED -
if the user is not authorized to read project - INVALID_ARGUMENT - if the reques
t is malformed - NOT_FOUND - if the History does not exist", |
| 189 "httpMethod": "GET", |
| 190 "id": "toolresults.projects.histories.list", |
| 191 "parameterOrder": [ |
| 192 "projectId" |
| 193 ], |
| 194 "parameters": { |
| 195 "filterByName": { |
| 196 "description": "If set, only return historie
s with the given name.\n\nOptional.", |
| 197 "location": "query", |
| 198 "type": "string" |
| 199 }, |
| 200 "pageSize": { |
| 201 "description": "The maximum number of Histor
ies to fetch.\n\nDefault value: 20. The server will use this default if the fiel
d is not set or has a value of 0. Any value greater than 100 will be treated as
100.\n\nOptional.", |
| 202 "format": "int32", |
| 203 "location": "query", |
| 204 "type": "integer" |
| 205 }, |
| 206 "pageToken": { |
| 207 "description": "A continuation token to resu
me the query at the next item.\n\nOptional.", |
| 208 "location": "query", |
| 209 "type": "string" |
| 210 }, |
| 211 "projectId": { |
| 212 "description": "A Project id.\n\nRequired.", |
| 213 "location": "path", |
| 214 "required": true, |
| 215 "type": "string" |
| 216 } |
| 217 }, |
| 218 "path": "{projectId}/histories", |
| 219 "response": { |
| 220 "$ref": "ListHistoriesResponse" |
| 221 }, |
| 222 "scopes": [ |
| 223 "https://www.googleapis.com/auth/cloud-platform" |
| 224 ] |
| 225 } |
| 226 }, |
| 227 "resources": { |
| 228 "executions": { |
| 229 "methods": { |
| 230 "create": { |
| 231 "description": "Creates an Execution.\n\nThe
returned Execution will have the id set.\n\nMay return any of the following can
onical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to wr
ite to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if
the containing History does not exist", |
| 232 "httpMethod": "POST", |
| 233 "id": "toolresults.projects.histories.execut
ions.create", |
| 234 "parameterOrder": [ |
| 235 "projectId", |
| 236 "historyId" |
| 237 ], |
| 238 "parameters": { |
| 239 "historyId": { |
| 240 "description": "A History id.\n\nReq
uired.", |
| 241 "location": "path", |
| 242 "required": true, |
| 243 "type": "string" |
| 244 }, |
| 245 "projectId": { |
| 246 "description": "A Project id.\n\nReq
uired.", |
| 247 "location": "path", |
| 248 "required": true, |
| 249 "type": "string" |
| 250 }, |
| 251 "requestId": { |
| 252 "description": "A unique request ID
for server to detect duplicated requests. For example, a UUID.\n\nOptional, but
strongly recommended.", |
| 253 "location": "query", |
| 254 "type": "string" |
| 255 } |
| 256 }, |
| 257 "path": "{projectId}/histories/{historyId}/e
xecutions", |
| 258 "request": { |
| 259 "$ref": "Execution" |
| 260 }, |
| 261 "response": { |
| 262 "$ref": "Execution" |
| 263 }, |
| 264 "scopes": [ |
| 265 "https://www.googleapis.com/auth/cloud-p
latform" |
| 266 ] |
| 267 }, |
| 268 "get": { |
| 269 "description": "Gets an Execution.\n\nMay re
turn any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the
user is not authorized to write to project - INVALID_ARGUMENT - if the request
is malformed - NOT_FOUND - if the Execution does not exist", |
| 270 "httpMethod": "GET", |
| 271 "id": "toolresults.projects.histories.execut
ions.get", |
| 272 "parameterOrder": [ |
| 273 "projectId", |
| 274 "historyId", |
| 275 "executionId" |
| 276 ], |
| 277 "parameters": { |
| 278 "executionId": { |
| 279 "description": "An Execution id.\n\n
Required.", |
| 280 "location": "path", |
| 281 "required": true, |
| 282 "type": "string" |
| 283 }, |
| 284 "historyId": { |
| 285 "description": "A History id.\n\nReq
uired.", |
| 286 "location": "path", |
| 287 "required": true, |
| 288 "type": "string" |
| 289 }, |
| 290 "projectId": { |
| 291 "description": "A Project id.\n\nReq
uired.", |
| 292 "location": "path", |
| 293 "required": true, |
| 294 "type": "string" |
| 295 } |
| 296 }, |
| 297 "path": "{projectId}/histories/{historyId}/e
xecutions/{executionId}", |
| 298 "response": { |
| 299 "$ref": "Execution" |
| 300 }, |
| 301 "scopes": [ |
| 302 "https://www.googleapis.com/auth/cloud-p
latform" |
| 303 ] |
| 304 }, |
| 305 "list": { |
| 306 "description": "Lists Histories for a given
Project.\n\nThe executions are sorted by creation_time in descending order. The
execution_id key will be used to order the executions with the same creation_tim
e.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DEN
IED - if the user is not authorized to read project - INVALID_ARGUMENT - if the
request is malformed - NOT_FOUND - if the containing History does not exist", |
| 307 "httpMethod": "GET", |
| 308 "id": "toolresults.projects.histories.execut
ions.list", |
| 309 "parameterOrder": [ |
| 310 "projectId", |
| 311 "historyId" |
| 312 ], |
| 313 "parameters": { |
| 314 "historyId": { |
| 315 "description": "A History id.\n\nReq
uired.", |
| 316 "location": "path", |
| 317 "required": true, |
| 318 "type": "string" |
| 319 }, |
| 320 "pageSize": { |
| 321 "description": "The maximum number o
f Executions to fetch.\n\nDefault value: 25. The server will use this default if
the field is not set or has a value of 0.\n\nOptional.", |
| 322 "format": "int32", |
| 323 "location": "query", |
| 324 "type": "integer" |
| 325 }, |
| 326 "pageToken": { |
| 327 "description": "A continuation token
to resume the query at the next item.\n\nOptional.", |
| 328 "location": "query", |
| 329 "type": "string" |
| 330 }, |
| 331 "projectId": { |
| 332 "description": "A Project id.\n\nReq
uired.", |
| 333 "location": "path", |
| 334 "required": true, |
| 335 "type": "string" |
| 336 } |
| 337 }, |
| 338 "path": "{projectId}/histories/{historyId}/e
xecutions", |
| 339 "response": { |
| 340 "$ref": "ListExecutionsResponse" |
| 341 }, |
| 342 "scopes": [ |
| 343 "https://www.googleapis.com/auth/cloud-p
latform" |
| 344 ] |
| 345 }, |
| 346 "patch": { |
| 347 "description": "Updates an existing Executio
n with the supplied partial entity.\n\nMay return any of the following canonical
error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write to
project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION
- if the requested state transition is illegal - NOT_FOUND - if the containing H
istory does not exist", |
| 348 "httpMethod": "PATCH", |
| 349 "id": "toolresults.projects.histories.execut
ions.patch", |
| 350 "parameterOrder": [ |
| 351 "projectId", |
| 352 "historyId", |
| 353 "executionId" |
| 354 ], |
| 355 "parameters": { |
| 356 "executionId": { |
| 357 "description": "Required.", |
| 358 "location": "path", |
| 359 "required": true, |
| 360 "type": "string" |
| 361 }, |
| 362 "historyId": { |
| 363 "description": "Required.", |
| 364 "location": "path", |
| 365 "required": true, |
| 366 "type": "string" |
| 367 }, |
| 368 "projectId": { |
| 369 "description": "A Project id. Requir
ed.", |
| 370 "location": "path", |
| 371 "required": true, |
| 372 "type": "string" |
| 373 }, |
| 374 "requestId": { |
| 375 "description": "A unique request ID
for server to detect duplicated requests. For example, a UUID.\n\nOptional, but
strongly recommended.", |
| 376 "location": "query", |
| 377 "type": "string" |
| 378 } |
| 379 }, |
| 380 "path": "{projectId}/histories/{historyId}/e
xecutions/{executionId}", |
| 381 "request": { |
| 382 "$ref": "Execution" |
| 383 }, |
| 384 "response": { |
| 385 "$ref": "Execution" |
| 386 }, |
| 387 "scopes": [ |
| 388 "https://www.googleapis.com/auth/cloud-p
latform" |
| 389 ] |
| 390 } |
| 391 }, |
| 392 "resources": { |
| 393 "steps": { |
| 394 "methods": { |
| 395 "create": { |
| 396 "description": "Creates a Step.\n\nT
he returned Step will have the id set.\n\nMay return any of the following canoni
cal error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write
to project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITI
ON - if the step is too large (more than 10Mib) - NOT_FOUND - if the containing
Execution does not exist", |
| 397 "httpMethod": "POST", |
| 398 "id": "toolresults.projects.historie
s.executions.steps.create", |
| 399 "parameterOrder": [ |
| 400 "projectId", |
| 401 "historyId", |
| 402 "executionId" |
| 403 ], |
| 404 "parameters": { |
| 405 "executionId": { |
| 406 "description": "A Execution
id.\n\nRequired.", |
| 407 "location": "path", |
| 408 "required": true, |
| 409 "type": "string" |
| 410 }, |
| 411 "historyId": { |
| 412 "description": "A History id
.\n\nRequired.", |
| 413 "location": "path", |
| 414 "required": true, |
| 415 "type": "string" |
| 416 }, |
| 417 "projectId": { |
| 418 "description": "A Project id
.\n\nRequired.", |
| 419 "location": "path", |
| 420 "required": true, |
| 421 "type": "string" |
| 422 }, |
| 423 "requestId": { |
| 424 "description": "A unique req
uest ID for server to detect duplicated requests. For example, a UUID.\n\nOption
al, but strongly recommended.", |
| 425 "location": "query", |
| 426 "type": "string" |
| 427 } |
| 428 }, |
| 429 "path": "{projectId}/histories/{hist
oryId}/executions/{executionId}/steps", |
| 430 "request": { |
| 431 "$ref": "Step" |
| 432 }, |
| 433 "response": { |
| 434 "$ref": "Step" |
| 435 }, |
| 436 "scopes": [ |
| 437 "https://www.googleapis.com/auth
/cloud-platform" |
| 438 ] |
| 439 }, |
| 440 "get": { |
| 441 "description": "Gets a Step.\n\nMay
return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if t
he user is not authorized to read project - INVALID_ARGUMENT - if the request is
malformed - NOT_FOUND - if the Step does not exist", |
| 442 "httpMethod": "GET", |
| 443 "id": "toolresults.projects.historie
s.executions.steps.get", |
| 444 "parameterOrder": [ |
| 445 "projectId", |
| 446 "historyId", |
| 447 "executionId", |
| 448 "stepId" |
| 449 ], |
| 450 "parameters": { |
| 451 "executionId": { |
| 452 "description": "A Execution
id.\n\nRequired.", |
| 453 "location": "path", |
| 454 "required": true, |
| 455 "type": "string" |
| 456 }, |
| 457 "historyId": { |
| 458 "description": "A History id
.\n\nRequired.", |
| 459 "location": "path", |
| 460 "required": true, |
| 461 "type": "string" |
| 462 }, |
| 463 "projectId": { |
| 464 "description": "A Project id
.\n\nRequired.", |
| 465 "location": "path", |
| 466 "required": true, |
| 467 "type": "string" |
| 468 }, |
| 469 "stepId": { |
| 470 "description": "A Step id.\n
\nRequired.", |
| 471 "location": "path", |
| 472 "required": true, |
| 473 "type": "string" |
| 474 } |
| 475 }, |
| 476 "path": "{projectId}/histories/{hist
oryId}/executions/{executionId}/steps/{stepId}", |
| 477 "response": { |
| 478 "$ref": "Step" |
| 479 }, |
| 480 "scopes": [ |
| 481 "https://www.googleapis.com/auth
/cloud-platform" |
| 482 ] |
| 483 }, |
| 484 "list": { |
| 485 "description": "Lists Steps for a gi
ven Execution.\n\nThe steps are sorted by creation_time in descending order. The
step_id key will be used to order the steps with the same creation_time.\n\nMay
return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if
the user is not authorized to read project - INVALID_ARGUMENT - if the request i
s malformed - FAILED_PRECONDITION - if an argument in the request happens to be
invalid; e.g. if an attempt is made to list the children of a nonexistent Step -
NOT_FOUND - if the containing Execution does not exist", |
| 486 "httpMethod": "GET", |
| 487 "id": "toolresults.projects.historie
s.executions.steps.list", |
| 488 "parameterOrder": [ |
| 489 "projectId", |
| 490 "historyId", |
| 491 "executionId" |
| 492 ], |
| 493 "parameters": { |
| 494 "executionId": { |
| 495 "description": "A Execution
id.\n\nRequired.", |
| 496 "location": "path", |
| 497 "required": true, |
| 498 "type": "string" |
| 499 }, |
| 500 "historyId": { |
| 501 "description": "A History id
.\n\nRequired.", |
| 502 "location": "path", |
| 503 "required": true, |
| 504 "type": "string" |
| 505 }, |
| 506 "pageSize": { |
| 507 "description": "The maximum
number of Steps to fetch.\n\nDefault value: 25. The server will use this default
if the field is not set or has a value of 0.\n\nOptional.", |
| 508 "format": "int32", |
| 509 "location": "query", |
| 510 "type": "integer" |
| 511 }, |
| 512 "pageToken": { |
| 513 "description": "A continuati
on token to resume the query at the next item.\n\nOptional.", |
| 514 "location": "query", |
| 515 "type": "string" |
| 516 }, |
| 517 "projectId": { |
| 518 "description": "A Project id
.\n\nRequired.", |
| 519 "location": "path", |
| 520 "required": true, |
| 521 "type": "string" |
| 522 } |
| 523 }, |
| 524 "path": "{projectId}/histories/{hist
oryId}/executions/{executionId}/steps", |
| 525 "response": { |
| 526 "$ref": "ListStepsResponse" |
| 527 }, |
| 528 "scopes": [ |
| 529 "https://www.googleapis.com/auth
/cloud-platform" |
| 530 ] |
| 531 }, |
| 532 "patch": { |
| 533 "description": "Updates an existing
Step with the supplied partial entity.\n\nMay return any of the following canoni
cal error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write
project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION
- if the requested state transition is illegal (e.g try to upload a duplicate xm
l file), if the updated step is too large (more than 10Mib) - NOT_FOUND - if the
containing Execution does not exist", |
| 534 "httpMethod": "PATCH", |
| 535 "id": "toolresults.projects.historie
s.executions.steps.patch", |
| 536 "parameterOrder": [ |
| 537 "projectId", |
| 538 "historyId", |
| 539 "executionId", |
| 540 "stepId" |
| 541 ], |
| 542 "parameters": { |
| 543 "executionId": { |
| 544 "description": "A Execution
id.\n\nRequired.", |
| 545 "location": "path", |
| 546 "required": true, |
| 547 "type": "string" |
| 548 }, |
| 549 "historyId": { |
| 550 "description": "A History id
.\n\nRequired.", |
| 551 "location": "path", |
| 552 "required": true, |
| 553 "type": "string" |
| 554 }, |
| 555 "projectId": { |
| 556 "description": "A Project id
.\n\nRequired.", |
| 557 "location": "path", |
| 558 "required": true, |
| 559 "type": "string" |
| 560 }, |
| 561 "requestId": { |
| 562 "description": "A unique req
uest ID for server to detect duplicated requests. For example, a UUID.\n\nOption
al, but strongly recommended.", |
| 563 "location": "query", |
| 564 "type": "string" |
| 565 }, |
| 566 "stepId": { |
| 567 "description": "A Step id.\n
\nRequired.", |
| 568 "location": "path", |
| 569 "required": true, |
| 570 "type": "string" |
| 571 } |
| 572 }, |
| 573 "path": "{projectId}/histories/{hist
oryId}/executions/{executionId}/steps/{stepId}", |
| 574 "request": { |
| 575 "$ref": "Step" |
| 576 }, |
| 577 "response": { |
| 578 "$ref": "Step" |
| 579 }, |
| 580 "scopes": [ |
| 581 "https://www.googleapis.com/auth
/cloud-platform" |
| 582 ] |
| 583 }, |
| 584 "publishXunitXmlFiles": { |
| 585 "description": "Publish xml files to
an existing Step.\n\nMay return any of the following canonical error codes:\n\n
- PERMISSION_DENIED - if the user is not authorized to write project - INVALID_A
RGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested s
tate transition is illegal, e.g try to upload a duplicate xml file or a file too
large. - NOT_FOUND - if the containing Execution does not exist", |
| 586 "httpMethod": "POST", |
| 587 "id": "toolresults.projects.historie
s.executions.steps.publishXunitXmlFiles", |
| 588 "parameterOrder": [ |
| 589 "projectId", |
| 590 "historyId", |
| 591 "executionId", |
| 592 "stepId" |
| 593 ], |
| 594 "parameters": { |
| 595 "executionId": { |
| 596 "description": "A Execution
id.\n\nRequired.", |
| 597 "location": "path", |
| 598 "required": true, |
| 599 "type": "string" |
| 600 }, |
| 601 "historyId": { |
| 602 "description": "A History id
.\n\nRequired.", |
| 603 "location": "path", |
| 604 "required": true, |
| 605 "type": "string" |
| 606 }, |
| 607 "projectId": { |
| 608 "description": "A Project id
.\n\nRequired.", |
| 609 "location": "path", |
| 610 "required": true, |
| 611 "type": "string" |
| 612 }, |
| 613 "stepId": { |
| 614 "description": "A Step id. N
ote: This step must include a TestExecutionStep.\n\nRequired.", |
| 615 "location": "path", |
| 616 "required": true, |
| 617 "type": "string" |
| 618 } |
| 619 }, |
| 620 "path": "{projectId}/histories/{hist
oryId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles", |
| 621 "request": { |
| 622 "$ref": "PublishXunitXmlFilesReq
uest" |
| 623 }, |
| 624 "response": { |
| 625 "$ref": "Step" |
| 626 }, |
| 627 "scopes": [ |
| 628 "https://www.googleapis.com/auth
/cloud-platform" |
| 629 ] |
| 630 } |
| 631 }, |
| 632 "resources": { |
| 633 "thumbnails": { |
| 634 "methods": { |
| 635 "list": { |
| 636 "description": "Lists thumbn
ails of images attached to a step.\n\nMay return any of the following canonical
error codes: - PERMISSION_DENIED - if the user is not authorized to read from th
e project, or from any of the images - INVALID_ARGUMENT - if the request is malf
ormed - NOT_FOUND - if the step does not exist, or if any of the images do not e
xist", |
| 637 "httpMethod": "GET", |
| 638 "id": "toolresults.projects.
histories.executions.steps.thumbnails.list", |
| 639 "parameterOrder": [ |
| 640 "projectId", |
| 641 "historyId", |
| 642 "executionId", |
| 643 "stepId" |
| 644 ], |
| 645 "parameters": { |
| 646 "executionId": { |
| 647 "description": "An E
xecution id.\n\nRequired.", |
| 648 "location": "path", |
| 649 "required": true, |
| 650 "type": "string" |
| 651 }, |
| 652 "historyId": { |
| 653 "description": "A Hi
story id.\n\nRequired.", |
| 654 "location": "path", |
| 655 "required": true, |
| 656 "type": "string" |
| 657 }, |
| 658 "pageSize": { |
| 659 "description": "The
maximum number of thumbnails to fetch.\n\nDefault value: 50. The server will use
this default if the field is not set or has a value of 0.\n\nOptional.", |
| 660 "format": "int32", |
| 661 "location": "query", |
| 662 "type": "integer" |
| 663 }, |
| 664 "pageToken": { |
| 665 "description": "A co
ntinuation token to resume the query at the next item.\n\nOptional.", |
| 666 "location": "query", |
| 667 "type": "string" |
| 668 }, |
| 669 "projectId": { |
| 670 "description": "A Pr
oject id.\n\nRequired.", |
| 671 "location": "path", |
| 672 "required": true, |
| 673 "type": "string" |
| 674 }, |
| 675 "stepId": { |
| 676 "description": "A St
ep id.\n\nRequired.", |
| 677 "location": "path", |
| 678 "required": true, |
| 679 "type": "string" |
| 680 } |
| 681 }, |
| 682 "path": "{projectId}/histori
es/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails", |
| 683 "response": { |
| 684 "$ref": "ListStepThumbna
ilsResponse" |
| 685 }, |
| 686 "scopes": [ |
| 687 "https://www.googleapis.
com/auth/cloud-platform" |
| 688 ] |
| 689 } |
| 690 } |
| 691 } |
| 692 } |
| 693 } |
| 694 } |
| 695 } |
| 696 } |
| 697 } |
| 698 } |
| 699 } |
| 700 }, |
| 701 "revision": "20160310", |
| 702 "rootUrl": "https://www.googleapis.com/", |
| 703 "schemas": { |
| 704 "Any": { |
| 705 "description": "`Any` contains an arbitrary serialized message along
with a URL that describes the type of the serialized message.\n\nProtobuf libra
ry provides support to pack/unpack Any values in the form of utility functions o
r additional generated methods of the Any type.\n\nExample 1: Pack and unpack a
message in C++.\n\nFoo foo = ...; Any any; any.PackFrom(foo); ... if (any.Unpack
To(&foo)) { ... }\n\nExample 2: Pack and unpack a message in Java.\n\nFoo foo =
...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.
class); }\n\nThe pack methods provided by protobuf library will by default use '
type.googleapis.com/full.type.name' as the type URL and the unpack methods only
use the fully qualified type name after the last '/' in the type URL, for exampl
e \"foo.bar.com/x/y.z\" will yield type name \"y.z\".\n\n\n\nJSON ==== The JSON
representation of an `Any` value uses the regular representation of the deserial
ized, embedded message, with an additional field `@type` which contains the type
URL. Example:\n\npackage google.profile; message Person { string first_name = 1
; string last_name = 2; }\n\n{ \"@type\": \"type.googleapis.com/google.profile.P
erson\", \"firstName\": , \"lastName\": }\n\nIf the embedded message type is we
ll-known and has a custom JSON representation, that representation will be embed
ded adding a field `value` which holds the custom JSON in addition to the `@type
` field. Example (for message [google.protobuf.Duration][]):\n\n{ \"@type\": \"t
ype.googleapis.com/google.protobuf.Duration\", \"value\": \"1.212s\" }", |
| 706 "id": "Any", |
| 707 "properties": { |
| 708 "typeUrl": { |
| 709 "description": "A URL/resource name whose content describes
the type of the serialized message.\n\nFor URLs which use the schema `http`, `ht
tps`, or no schema, the following restrictions and interpretations apply:\n\n* I
f no schema is provided, `https` is assumed. * The last segment of the URL's pat
h must represent the fully qualified name of the type (as in `path/google.protob
uf.Duration`). * An HTTP GET on the URL must yield a [google.protobuf.Type][] va
lue in binary format, or produce an error. * Applications are allowed to cache l
ookup results based on the URL, or have them precompiled into a binary to avoid
any lookup. Therefore, binary compatibility needs to be preserved on changes to
types. (Use versioned type names to manage breaking changes.)\n\nSchemas other t
han `http`, `https` (or the empty schema) might be used with implementation spec
ific semantics.", |
| 710 "type": "string" |
| 711 }, |
| 712 "value": { |
| 713 "description": "Must be valid serialized data of the above s
pecified type.", |
| 714 "format": "byte", |
| 715 "type": "string" |
| 716 } |
| 717 }, |
| 718 "type": "object" |
| 719 }, |
| 720 "Duration": { |
| 721 "description": "A Duration represents a signed, fixed-length span of
time represented as a count of seconds and fractions of seconds at nanosecond r
esolution. It is independent of any calendar and concepts like \"day\" or \"mont
h\". It is related to Timestamp in that the difference between two Timestamp val
ues is a Duration and it can be added or subtracted from a Timestamp. Range is a
pproximately +-10,000 years.\n\nExample 1: Compute Duration from two Timestamps
in pseudo code.\n\nTimestamp start = ...; Timestamp end = ...; Duration duration
= ...;\n\nduration.seconds = end.seconds - start.seconds; duration.nanos = end.
nanos - start.nanos;\n\nif (duration.seconds 0) { duration.seconds += 1; durati
on.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0)
{ duration.seconds -= 1; duration.nanos += 1000000000; }\n\nExample 2: Compute T
imestamp from Timestamp + Duration in pseudo code.\n\nTimestamp start = ...; Dur
ation duration = ...; Timestamp end = ...;\n\nend.seconds = start.seconds + dura
tion.seconds; end.nanos = start.nanos + duration.nanos;\n\nif (end.nanos = 10000
00000) { end.seconds += 1; end.nanos -= 1000000000; }", |
| 722 "id": "Duration", |
| 723 "properties": { |
| 724 "nanos": { |
| 725 "description": "Signed fractions of a second at nanosecond r
esolution of the span of time. Durations less than one second are represented wi
th a 0 `seconds` field and a positive or negative `nanos` field. For durations o
f one second or more, a non-zero value for the `nanos` field must be of the same
sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusiv
e.", |
| 726 "format": "int32", |
| 727 "type": "integer" |
| 728 }, |
| 729 "seconds": { |
| 730 "description": "Signed seconds of the span of time. Must be
from -315,576,000,000 to +315,576,000,000 inclusive.", |
| 731 "format": "int64", |
| 732 "type": "string" |
| 733 } |
| 734 }, |
| 735 "type": "object" |
| 736 }, |
| 737 "Execution": { |
| 738 "description": "An Execution represents a collection of Steps. For i
nstance, it could represent: - a mobile test executed across a range of device c
onfigurations - a jenkins job with a build step followed by a test step\n\nThe m
aximum size of an execution message is 1 MiB.\n\nAn Execution can be updated unt
il its state is set to COMPLETE at which point it becomes immutable. Next tag: 1
2", |
| 739 "id": "Execution", |
| 740 "properties": { |
| 741 "completionTime": { |
| 742 "$ref": "Timestamp", |
| 743 "description": "The time when the Execution status transitio
ned to COMPLETE.\n\nThis value will be set automatically when state transitions
to COMPLETE.\n\n- In response: set if the execution state is COMPLETE. - In crea
te/update request: never set" |
| 744 }, |
| 745 "creationTime": { |
| 746 "$ref": "Timestamp", |
| 747 "description": "The time when the Execution was created.\n\n
This value will be set automatically when CreateExecution is called.\n\n- In res
ponse: always set - In create/update request: never set" |
| 748 }, |
| 749 "executionId": { |
| 750 "description": "A unique identifier within a History for thi
s Execution.\n\nReturns INVALID_ARGUMENT if this field is set or overwritten by
the caller.\n\n- In response always set - In create/update request: never set", |
| 751 "type": "string" |
| 752 }, |
| 753 "outcome": { |
| 754 "$ref": "Outcome", |
| 755 "description": "Classify the result, for example into SUCCES
S or FAILURE\n\n- In response: present if set by create/update request - In crea
te/update request: optional" |
| 756 }, |
| 757 "state": { |
| 758 "description": "The initial state is IN_PROGRESS.\n\nThe onl
y legal state transitions is from IN_PROGRESS to COMPLETE.\n\nA PRECONDITION_FAI
LED will be returned if an invalid transition is requested.\n\nThe state can onl
y be set to COMPLETE once. A FAILED_PRECONDITION will be returned if the state i
s set to COMPLETE multiple times.\n\nIf the state is set to COMPLETE, all the in
-progress steps within the execution will be set as COMPLETE. If the outcome of
the step is not set, the outcome will be set to INCONCLUSIVE.\n\n- In response a
lways set - In create/update request: optional", |
| 759 "enum": [ |
| 760 "complete", |
| 761 "inProgress", |
| 762 "pending", |
| 763 "unknownState" |
| 764 ], |
| 765 "enumDescriptions": [ |
| 766 "", |
| 767 "", |
| 768 "", |
| 769 "" |
| 770 ], |
| 771 "type": "string" |
| 772 }, |
| 773 "testExecutionMatrixId": { |
| 774 "description": "TestExecution Matrix ID that the Test Servic
e uses.\n\n- In response: present if set by create - In create: optional - In up
date: never set", |
| 775 "type": "string" |
| 776 } |
| 777 }, |
| 778 "type": "object" |
| 779 }, |
| 780 "FailureDetail": { |
| 781 "id": "FailureDetail", |
| 782 "properties": { |
| 783 "crashed": { |
| 784 "description": "If the failure was severe because the system
under test crashed.", |
| 785 "type": "boolean" |
| 786 }, |
| 787 "notInstalled": { |
| 788 "description": "If an app is not installed and thus no test
can be run with the app. This might be caused by trying to run a test on an unsu
pported platform.", |
| 789 "type": "boolean" |
| 790 }, |
| 791 "otherNativeCrash": { |
| 792 "description": "If a native process other than the app crash
ed.", |
| 793 "type": "boolean" |
| 794 }, |
| 795 "timedOut": { |
| 796 "description": "If the test overran some time limit, and tha
t is why it failed.", |
| 797 "type": "boolean" |
| 798 } |
| 799 }, |
| 800 "type": "object" |
| 801 }, |
| 802 "FileReference": { |
| 803 "description": "A reference to a file.", |
| 804 "id": "FileReference", |
| 805 "properties": { |
| 806 "fileUri": { |
| 807 "description": "The URI of a file stored in Google Cloud Sto
rage.\n\nFor example: http://storage.googleapis.com/mybucket/path/to/test.xml or
in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs
://mybucket/path/to/test.xml#1360383693690000\n\nAn INVALID_ARGUMENT error will
be returned if the URI format is not supported.\n\n- In response: always set - I
n create/update request: always set", |
| 808 "type": "string" |
| 809 } |
| 810 }, |
| 811 "type": "object" |
| 812 }, |
| 813 "History": { |
| 814 "description": "A History represents a sorted list of Executions ord
ered by the start_timestamp_millis field (descending). It can be used to group a
ll the Executions of a continuous build.\n\nNote that the ordering only operates
on one-dimension. If a repository has multiple branches, it means that multiple
histories will need to be used in order to order Executions per branch. Next ta
g: 7", |
| 815 "id": "History", |
| 816 "properties": { |
| 817 "displayName": { |
| 818 "description": "A short human-readable (plain text) name to
display in the UI. Maximum of 100 characters.\n\n- In response: present if set d
uring create. - In create request: optional", |
| 819 "type": "string" |
| 820 }, |
| 821 "historyId": { |
| 822 "description": "A unique identifier within a project for thi
s History.\n\nReturns INVALID_ARGUMENT if this field is set or overwritten by th
e caller.\n\n- In response always set - In create request: never set", |
| 823 "type": "string" |
| 824 }, |
| 825 "name": { |
| 826 "description": "A name to uniquely identify a history within
a project. Maximum of 100 characters.\n\n- In response always set - In create r
equest: always set", |
| 827 "type": "string" |
| 828 } |
| 829 }, |
| 830 "type": "object" |
| 831 }, |
| 832 "Image": { |
| 833 "description": "An image, with a link to the main image and a thumbn
ail.\n\nNext tag: 6", |
| 834 "id": "Image", |
| 835 "properties": { |
| 836 "error": { |
| 837 "$ref": "Status", |
| 838 "description": "An error explaining why the thumbnail could
not be rendered." |
| 839 }, |
| 840 "sourceImage": { |
| 841 "$ref": "ToolOutputReference", |
| 842 "description": "A reference to the full-size, original image
.\n\nThis is the same as the tool_outputs entry for the image under its Step.\n\
nAlways set." |
| 843 }, |
| 844 "stepId": { |
| 845 "description": "The step to which the image is attached.\n\n
Always set.", |
| 846 "type": "string" |
| 847 }, |
| 848 "thumbnail": { |
| 849 "$ref": "Thumbnail", |
| 850 "description": "The thumbnail." |
| 851 } |
| 852 }, |
| 853 "type": "object" |
| 854 }, |
| 855 "InconclusiveDetail": { |
| 856 "id": "InconclusiveDetail", |
| 857 "properties": { |
| 858 "abortedByUser": { |
| 859 "description": "If the end user aborted the test execution b
efore a pass or fail could be determined. For example, the user pressed ctrl-c w
hich sent a kill signal to the test runner while the test was running.", |
| 860 "type": "boolean" |
| 861 }, |
| 862 "infrastructureFailure": { |
| 863 "description": "If the test runner could not determine succe
ss or failure because the test depends on a component other than the system unde
r test which failed.\n\nFor example, a mobile test requires provisioning a devic
e where the test executes, and that provisioning can fail.", |
| 864 "type": "boolean" |
| 865 }, |
| 866 "nativeCrash": { |
| 867 "description": "A native process crashed on the device, prod
ucing a tombstone. It is unclear whether the crash was related to the app under
test.\n\nFor example, OpenGL crashed, but it is unclear if the app is responsibl
e. TODO(yinfu): Remove after all reference from TestService are deleted.", |
| 868 "type": "boolean" |
| 869 } |
| 870 }, |
| 871 "type": "object" |
| 872 }, |
| 873 "ListExecutionsResponse": { |
| 874 "description": "Next tag: 3", |
| 875 "id": "ListExecutionsResponse", |
| 876 "properties": { |
| 877 "executions": { |
| 878 "description": "Executions.\n\nAlways set.", |
| 879 "items": { |
| 880 "$ref": "Execution" |
| 881 }, |
| 882 "type": "array" |
| 883 }, |
| 884 "nextPageToken": { |
| 885 "description": "A continuation token to resume the query at
the next item.\n\nWill only be set if there are more Executions to fetch.", |
| 886 "type": "string" |
| 887 } |
| 888 }, |
| 889 "type": "object" |
| 890 }, |
| 891 "ListHistoriesResponse": { |
| 892 "description": "Response message for HistoryService.List", |
| 893 "id": "ListHistoriesResponse", |
| 894 "properties": { |
| 895 "histories": { |
| 896 "description": "Histories.", |
| 897 "items": { |
| 898 "$ref": "History" |
| 899 }, |
| 900 "type": "array" |
| 901 }, |
| 902 "nextPageToken": { |
| 903 "description": "A continuation token to resume the query at
the next item.\n\nWill only be set if there are more histories to fetch.\n\nToke
ns are valid for up to one hour from the time of the first list request. For ins
tance, if you make a list request at 1PM and use the token from this first reque
st 10 minutes later, the token from this second response will only be valid for
50 minutes.", |
| 904 "type": "string" |
| 905 } |
| 906 }, |
| 907 "type": "object" |
| 908 }, |
| 909 "ListStepThumbnailsResponse": { |
| 910 "description": "A response containing the thumbnails in a step.\n\nN
ext tag: 3", |
| 911 "id": "ListStepThumbnailsResponse", |
| 912 "properties": { |
| 913 "nextPageToken": { |
| 914 "description": "A continuation token to resume the query at
the next item.\n\nIf set, indicates that there are more thumbnails to read, by c
alling list again with this value in the page_token field.", |
| 915 "type": "string" |
| 916 }, |
| 917 "thumbnails": { |
| 918 "description": "A list of image data.\n\nImages are returned
in a deterministic order; they are ordered by these factors, in order of import
ance: * First, by their associated test case. Images without a test case are con
sidered greater than images with one. * Second, by their creation time. Images w
ithout a creation time are greater than images with one. * Third, by the order i
n which they were added to the step (by calls to CreateStep or UpdateStep).", |
| 919 "items": { |
| 920 "$ref": "Image" |
| 921 }, |
| 922 "type": "array" |
| 923 } |
| 924 }, |
| 925 "type": "object" |
| 926 }, |
| 927 "ListStepsResponse": { |
| 928 "description": "Response message for StepService.List.", |
| 929 "id": "ListStepsResponse", |
| 930 "properties": { |
| 931 "nextPageToken": { |
| 932 "description": "A continuation token to resume the query at
the next item.\n\nIf set, indicates that there are more steps to read, by callin
g list again with this value in the page_token field.", |
| 933 "type": "string" |
| 934 }, |
| 935 "steps": { |
| 936 "description": "Steps.", |
| 937 "items": { |
| 938 "$ref": "Step" |
| 939 }, |
| 940 "type": "array" |
| 941 } |
| 942 }, |
| 943 "type": "object" |
| 944 }, |
| 945 "Outcome": { |
| 946 "description": "Interprets a result so that humans and machines can
act on it.", |
| 947 "id": "Outcome", |
| 948 "properties": { |
| 949 "failureDetail": { |
| 950 "$ref": "FailureDetail", |
| 951 "description": "More information about a FAILURE outcome.\n\
nReturns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.\n
\nOptional" |
| 952 }, |
| 953 "inconclusiveDetail": { |
| 954 "$ref": "InconclusiveDetail", |
| 955 "description": "More information about an INCONCLUSIVE outco
me.\n\nReturns INVALID_ARGUMENT if this field is set but the summary is not INCO
NCLUSIVE.\n\nOptional" |
| 956 }, |
| 957 "skippedDetail": { |
| 958 "$ref": "SkippedDetail", |
| 959 "description": "More information about a SKIPPED outcome.\n\
nReturns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.\n
\nOptional" |
| 960 }, |
| 961 "successDetail": { |
| 962 "$ref": "SuccessDetail", |
| 963 "description": "More information about a SUCCESS outcome.\n\
nReturns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.\n
\nOptional" |
| 964 }, |
| 965 "summary": { |
| 966 "description": "The simplest way to interpret a result.\n\nR
equired", |
| 967 "enum": [ |
| 968 "failure", |
| 969 "inconclusive", |
| 970 "skipped", |
| 971 "success", |
| 972 "unset" |
| 973 ], |
| 974 "enumDescriptions": [ |
| 975 "", |
| 976 "", |
| 977 "", |
| 978 "", |
| 979 "" |
| 980 ], |
| 981 "type": "string" |
| 982 } |
| 983 }, |
| 984 "type": "object" |
| 985 }, |
| 986 "ProjectSettings": { |
| 987 "description": "Per-project settings for the Tool Results service.", |
| 988 "id": "ProjectSettings", |
| 989 "properties": { |
| 990 "defaultBucket": { |
| 991 "description": "The name of the Google Cloud Storage bucket
to which results are written.\n\nBy default, this is unset.\n\nIn update request
: optional In response: optional", |
| 992 "type": "string" |
| 993 }, |
| 994 "name": { |
| 995 "description": "The name of the project's settings.\n\nAlway
s of the form: projects/{project-id}/settings\n\nIn update request: never set In
response: always set", |
| 996 "type": "string" |
| 997 } |
| 998 }, |
| 999 "type": "object" |
| 1000 }, |
| 1001 "PublishXunitXmlFilesRequest": { |
| 1002 "description": "Request message for StepService.PublishXunitXmlFiles
.", |
| 1003 "id": "PublishXunitXmlFilesRequest", |
| 1004 "properties": { |
| 1005 "xunitXmlFiles": { |
| 1006 "description": "URI of the Xunit XML files to publish.\n\nTh
e maximum size of the file this reference is pointing to is 50MB.\n\nRequired.", |
| 1007 "items": { |
| 1008 "$ref": "FileReference" |
| 1009 }, |
| 1010 "type": "array" |
| 1011 } |
| 1012 }, |
| 1013 "type": "object" |
| 1014 }, |
| 1015 "SkippedDetail": { |
| 1016 "id": "SkippedDetail", |
| 1017 "properties": { |
| 1018 "incompatibleAppVersion": { |
| 1019 "description": "If the App doesn't support the specific API
level.", |
| 1020 "type": "boolean" |
| 1021 }, |
| 1022 "incompatibleArchitecture": { |
| 1023 "description": "If the App doesn't run on the specific archi
tecture, for example, x86.", |
| 1024 "type": "boolean" |
| 1025 }, |
| 1026 "incompatibleDevice": { |
| 1027 "description": "If the requested OS version doesn't run on t
he specific device model.", |
| 1028 "type": "boolean" |
| 1029 } |
| 1030 }, |
| 1031 "type": "object" |
| 1032 }, |
| 1033 "Status": { |
| 1034 "description": "The `Status` type defines a logical error model that
is suitable for different programming environments, including REST APIs and RPC
APIs. It is used by [gRPC](https://github.com/grpc). The error model is designe
d to be:\n\n- Simple to use and understand for most users - Flexible enough to m
eet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces
of data: error code, error message, and error details. The error code should be
an enum value of [google.rpc.Code][], but it may accept additional error codes
if needed. The error message should be a developer-facing English message that h
elps developers *understand* and *resolve* the error. If a localized user-facing
error message is needed, put the localized message in the error details or loca
lize it in the client. The optional error details may contain arbitrary informat
ion about the error. There is a predefined set of error detail types in the pack
age `google.rpc` which can be used for common error conditions.\n\n# Language ma
pping\n\nThe `Status` message is the logical representation of the error model,
but it is not necessarily the actual wire format. When the `Status` message is e
xposed in different client libraries and different wire protocols, it can be map
ped differently. For example, it will likely be mapped to some exceptions in Jav
a, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error
model and the `Status` message can be used in a variety of environments, either
with or without APIs, to provide a consistent developer experience across diffe
rent environments.\n\nExample uses of this error model include:\n\n- Partial err
ors. If a service needs to return partial errors to the client, it may embed the
`Status` in the normal response to indicate the partial errors.\n\n- Workflow e
rrors. A typical workflow has multiple steps. Each step may have a `Status` mess
age for error reporting purpose.\n\n- Batch operations. If a client uses batch r
equest and batch response, the `Status` message should be used directly inside b
atch response, one for each error sub-response.\n\n- Asynchronous operations. If
an API call embeds asynchronous operation results in its response, the status o
f those operations should be represented directly using the `Status` message.\n\
n- Logging. If some API errors are stored in logs, the message `Status` could be
used directly after any stripping needed for security/privacy reasons.", |
| 1035 "id": "Status", |
| 1036 "properties": { |
| 1037 "code": { |
| 1038 "description": "The status code, which should be an enum val
ue of [google.rpc.Code][].", |
| 1039 "format": "int32", |
| 1040 "type": "integer" |
| 1041 }, |
| 1042 "details": { |
| 1043 "description": "A list of messages that carry the error deta
ils. There will be a common set of message types for APIs to use.", |
| 1044 "items": { |
| 1045 "$ref": "Any" |
| 1046 }, |
| 1047 "type": "array" |
| 1048 }, |
| 1049 "message": { |
| 1050 "description": "A developer-facing error message, which shou
ld be in English. Any user-facing error message should be localized and sent in
the [google.rpc.Status.details][] field, or localized by the client.", |
| 1051 "type": "string" |
| 1052 } |
| 1053 }, |
| 1054 "type": "object" |
| 1055 }, |
| 1056 "Step": { |
| 1057 "description": "A Step represents a single operation performed as pa
rt of Execution. A step can be used to represent the execution of a tool ( for e
xample a test runner execution or an execution of a compiler).\n\nSteps can over
lap (for instance two steps might have the same start time if some operations ar
e done in parallel).\n\nHere is an example, let's consider that we have a contin
uous build is executing a test runner for each iteration. The workflow would loo
k like: - user creates a Execution with id 1 - user creates an TestExecutionStep
with id 100 for Execution 1 - user update TestExecutionStep with id 100 to add
a raw xml log + the service parses the xml logs and returns a TestExecutionStep
with updated TestResult(s). - user update the status of TestExecutionStep with i
d 100 to COMPLETE\n\nA Step can be updated until its state is set to COMPLETE at
which points it becomes immutable.\n\nNext tag: 20", |
| 1058 "id": "Step", |
| 1059 "properties": { |
| 1060 "completionTime": { |
| 1061 "$ref": "Timestamp", |
| 1062 "description": "The time when the step status was set to com
plete.\n\nThis value will be set automatically when state transitions to COMPLET
E.\n\n- In response: set if the execution state is COMPLETE. - In create/update
request: never set" |
| 1063 }, |
| 1064 "creationTime": { |
| 1065 "$ref": "Timestamp", |
| 1066 "description": "The time when the step was created.\n\n- In
response: always set - In create/update request: never set" |
| 1067 }, |
| 1068 "description": { |
| 1069 "description": "A description of this tool For example: mvn
clean package -D skipTests=true\n\n- In response: present if set by create/updat
e request - In create/update request: optional", |
| 1070 "type": "string" |
| 1071 }, |
| 1072 "deviceUsageDuration": { |
| 1073 "$ref": "Duration", |
| 1074 "description": "How much the device resource is used to perf
orm the test.\n\nThis is the device usage used for billing purpose, which is dif
ferent from the run_duration, for example, infrastructure failure won't be charg
ed for device usage.\n\nPRECONDITION_FAILED will be returned if one attempts to
set a device_usage on a step which already has this field set.\n\n- In response:
present if previously set. - In create request: optional - In update request: o
ptional" |
| 1075 }, |
| 1076 "dimensionValue": { |
| 1077 "description": "If the execution containing this step has an
y dimension_definition set, then this field allows the child to specify the valu
es of the dimensions.\n\nThe keys must exactly match the dimension_definition of
the execution.\n\nFor example, if the execution has `dimension_definition = ['a
ttempt', 'device']` then a step must define values for those dimensions, eg. `di
mension_value = ['attempt': '1', 'device': 'Nexus 6']`\n\nIf a step does not par
ticipate in one dimension of the matrix, the value for that dimension should be
empty string. For example, if one of the tests is executed by a runner which doe
s not support retries, the step could have `dimension_value = ['attempt': '', 'd
evice': 'Nexus 6']`\n\nIf the step does not participate in any dimensions of the
matrix, it may leave dimension_value unset.\n\nA PRECONDITION_FAILED will be re
turned if any of the keys do not exist in the dimension_definition of the execut
ion.\n\nA PRECONDITION_FAILED will be returned if another step in this execution
already has the same name and dimension_value, but differs on other data fields
, for example, step field is different.\n\nA PRECONDITION_FAILED will be returne
d if dimension_value is set, and there is a dimension_definition in the executio
n which is not specified as one of the keys.\n\n- In response: present if set by
create - In create request: optional - In update request: never set", |
| 1078 "items": { |
| 1079 "$ref": "StepDimensionValueEntry" |
| 1080 }, |
| 1081 "type": "array" |
| 1082 }, |
| 1083 "hasImages": { |
| 1084 "description": "Whether any of the outputs of this step are
images whose thumbnails can be fetched with ListThumbnails.\n\n- In response: al
ways set - In create/update request: never set", |
| 1085 "type": "boolean" |
| 1086 }, |
| 1087 "labels": { |
| 1088 "description": "Arbitrary user-supplied key/value pairs that
are associated with the step.\n\nUsers are responsible for managing the key nam
espace such that keys don't accidentally collide.\n\nAn INVALID_ARGUMENT will be
returned if the number of labels exceeds 100 or if the length of any of the key
s or values exceeds 100 characters.\n\n- In response: always set - In create req
uest: optional - In update request: optional; any new key/value pair will be add
ed to the map, and any new value for an existing key will update that key's valu
e", |
| 1089 "items": { |
| 1090 "$ref": "StepLabelsEntry" |
| 1091 }, |
| 1092 "type": "array" |
| 1093 }, |
| 1094 "name": { |
| 1095 "description": "A short human-readable name to display in th
e UI. Maximum of 100 characters. For example: Clean build\n\nA PRECONDITION_FAIL
ED will be returned upon creating a new step if it shares its name and dimension
_value with an existing step. If two steps represent a similar action, but have
different dimension values, they should share the same name. For instance, if th
e same set of tests is run on two different platforms, the two steps should have
the same name.\n\n- In response: always set - In create request: always set - I
n update request: never set", |
| 1096 "type": "string" |
| 1097 }, |
| 1098 "outcome": { |
| 1099 "$ref": "Outcome", |
| 1100 "description": "Classification of the result, for example in
to SUCCESS or FAILURE\n\n- In response: present if set by create/update request
- In create/update request: optional" |
| 1101 }, |
| 1102 "runDuration": { |
| 1103 "$ref": "Duration", |
| 1104 "description": "How long it took for this step to run.\n\nIf
unset, this is set to the difference between creation_time and completion_time
when the step is set to the COMPLETE state. In some cases, it is appropriate to
set this value separately: For instance, if a step is created, but the operation
it represents is queued for a few minutes before it executes, it would be appro
priate not to include the time spent queued in its run_duration.\n\nPRECONDITION
_FAILED will be returned if one attempts to set a run_duration on a step which a
lready has this field set.\n\n- In response: present if previously set; always p
resent on COMPLETE step - In create request: optional - In update request: optio
nal" |
| 1105 }, |
| 1106 "state": { |
| 1107 "description": "The initial state is IN_PROGRESS. The only l
egal state transitions are * IN_PROGRESS -> COMPLETE\n\nA PRECONDITION_FAILED wi
ll be returned if an invalid transition is requested.\n\nIt is valid to create S
tep with a state set to COMPLETE. The state can only be set to COMPLETE once. A
PRECONDITION_FAILED will be returned if the state is set to COMPLETE multiple ti
mes.\n\n- In response: always set - In create/update request: optional", |
| 1108 "enum": [ |
| 1109 "complete", |
| 1110 "inProgress", |
| 1111 "pending", |
| 1112 "unknownState" |
| 1113 ], |
| 1114 "enumDescriptions": [ |
| 1115 "", |
| 1116 "", |
| 1117 "", |
| 1118 "" |
| 1119 ], |
| 1120 "type": "string" |
| 1121 }, |
| 1122 "stepId": { |
| 1123 "description": "A unique identifier within a Execution for t
his Step.\n\nReturns INVALID_ARGUMENT if this field is set or overwritten by the
caller.\n\n- In response: always set - In create/update request: never set", |
| 1124 "type": "string" |
| 1125 }, |
| 1126 "testExecutionStep": { |
| 1127 "$ref": "TestExecutionStep", |
| 1128 "description": "An execution of a test runner." |
| 1129 }, |
| 1130 "toolExecutionStep": { |
| 1131 "$ref": "ToolExecutionStep", |
| 1132 "description": "An execution of a tool (used for steps we do
n't explicitly support)." |
| 1133 } |
| 1134 }, |
| 1135 "type": "object" |
| 1136 }, |
| 1137 "StepDimensionValueEntry": { |
| 1138 "id": "StepDimensionValueEntry", |
| 1139 "properties": { |
| 1140 "key": { |
| 1141 "type": "string" |
| 1142 }, |
| 1143 "value": { |
| 1144 "type": "string" |
| 1145 } |
| 1146 }, |
| 1147 "type": "object" |
| 1148 }, |
| 1149 "StepLabelsEntry": { |
| 1150 "id": "StepLabelsEntry", |
| 1151 "properties": { |
| 1152 "key": { |
| 1153 "type": "string" |
| 1154 }, |
| 1155 "value": { |
| 1156 "type": "string" |
| 1157 } |
| 1158 }, |
| 1159 "type": "object" |
| 1160 }, |
| 1161 "SuccessDetail": { |
| 1162 "id": "SuccessDetail", |
| 1163 "properties": { |
| 1164 "otherNativeCrash": { |
| 1165 "description": "If a native process other than the app crash
ed.", |
| 1166 "type": "boolean" |
| 1167 } |
| 1168 }, |
| 1169 "type": "object" |
| 1170 }, |
| 1171 "TestCaseReference": { |
| 1172 "description": "A reference to a test case.\n\nTest case references
are canonically ordered lexicographically by these three factors: * First, by te
st_suite_name. * Second, by class_name. * Third, by name.", |
| 1173 "id": "TestCaseReference", |
| 1174 "properties": { |
| 1175 "className": { |
| 1176 "description": "The name of the class.", |
| 1177 "type": "string" |
| 1178 }, |
| 1179 "name": { |
| 1180 "description": "The name of the test case.\n\nRequired.", |
| 1181 "type": "string" |
| 1182 }, |
| 1183 "testSuiteName": { |
| 1184 "description": "The name of the test suite to which this tes
t case belongs.", |
| 1185 "type": "string" |
| 1186 } |
| 1187 }, |
| 1188 "type": "object" |
| 1189 }, |
| 1190 "TestExecutionStep": { |
| 1191 "description": "A step that represents running tests.\n\nIt accepts
ant-junit xml files which will be parsed into structured test results by the ser
vice. Xml file paths are updated in order to append more files, however they can
't be deleted.\n\nUsers can also add test results manually by using the test_res
ult field. Next tag: 7", |
| 1192 "id": "TestExecutionStep", |
| 1193 "properties": { |
| 1194 "testSuiteOverviews": { |
| 1195 "description": "List of test suite overview contents. This c
ould be parsed from xUnit XML log by server, or uploaded directly by user. This
references should only be called when test suites are fully parsed or uploaded.\
n\nThe maximum allowed number of test suite overviews per step is 1000.\n\n- In
response: always set - In create request: optional - In update request: never (u
se publishXunitXmlFiles custom method instead)", |
| 1196 "items": { |
| 1197 "$ref": "TestSuiteOverview" |
| 1198 }, |
| 1199 "type": "array" |
| 1200 }, |
| 1201 "testTiming": { |
| 1202 "$ref": "TestTiming", |
| 1203 "description": "The timing break down of the test execution.
\n\n- In response: present if set by create or update - In create/update request
: optional" |
| 1204 }, |
| 1205 "toolExecution": { |
| 1206 "$ref": "ToolExecution", |
| 1207 "description": "Represents the execution of the test runner.
\n\nThe exit code of this tool will be used to determine if the test passed.\n\n
- In response: always set - In create/update request: optional" |
| 1208 } |
| 1209 }, |
| 1210 "type": "object" |
| 1211 }, |
| 1212 "TestSuiteOverview": { |
| 1213 "description": "A summary of a test suite result either parsed from
XML or uploaded directly by a user.\n\nNote: the API related comments are for St
epService only. This message is also being used in ExecutionService in a read on
ly mode for the corresponding step.\n\nNext tag: 7", |
| 1214 "id": "TestSuiteOverview", |
| 1215 "properties": { |
| 1216 "errorCount": { |
| 1217 "description": "Number of test cases in error, typically set
by the service by parsing the xml_source.\n\n- In create/response: always set -
In update request: never", |
| 1218 "format": "int32", |
| 1219 "type": "integer" |
| 1220 }, |
| 1221 "failureCount": { |
| 1222 "description": "Number of failed test cases, typically set b
y the service by parsing the xml_source. May also be set by the user.\n\n- In cr
eate/response: always set - In update request: never", |
| 1223 "format": "int32", |
| 1224 "type": "integer" |
| 1225 }, |
| 1226 "name": { |
| 1227 "description": "The name of the test suite.\n\n- In create/r
esponse: always set - In update request: never", |
| 1228 "type": "string" |
| 1229 }, |
| 1230 "skippedCount": { |
| 1231 "description": "Number of test cases not run, typically set
by the service by parsing the xml_source.\n\n- In create/response: always set -
In update request: never", |
| 1232 "format": "int32", |
| 1233 "type": "integer" |
| 1234 }, |
| 1235 "totalCount": { |
| 1236 "description": "Number of test cases, typically set by the s
ervice by parsing the xml_source.\n\n- In create/response: always set - In updat
e request: never", |
| 1237 "format": "int32", |
| 1238 "type": "integer" |
| 1239 }, |
| 1240 "xmlSource": { |
| 1241 "$ref": "FileReference", |
| 1242 "description": "If this test suite was parsed from XML, this
is the URI where the original XML file is stored.\n\nNote: Multiple test suites
can share the same xml_source\n\nReturns INVALID_ARGUMENT if the uri format is
not supported.\n\n- In create/response: optional - In update request: never" |
| 1243 } |
| 1244 }, |
| 1245 "type": "object" |
| 1246 }, |
| 1247 "TestTiming": { |
| 1248 "description": "Testing timing break down to know phases.", |
| 1249 "id": "TestTiming", |
| 1250 "properties": { |
| 1251 "testProcessDuration": { |
| 1252 "$ref": "Duration", |
| 1253 "description": "How long it took to run the test process.\n\
n- In response: present if previously set. - In create/update request: optional" |
| 1254 } |
| 1255 }, |
| 1256 "type": "object" |
| 1257 }, |
| 1258 "Thumbnail": { |
| 1259 "description": "A single thumbnail, with its size and format.\n\nNex
t tag: 102", |
| 1260 "id": "Thumbnail", |
| 1261 "properties": { |
| 1262 "contentType": { |
| 1263 "description": "The thumbnail's content type, i.e. \"image/p
ng\".\n\nAlways set.", |
| 1264 "type": "string" |
| 1265 }, |
| 1266 "data": { |
| 1267 "description": "The thumbnail file itself.\n\nThat is, the b
ytes here are precisely the bytes that make up the thumbnail file; they can be s
erved as an image as-is (with the appropriate content type.)\n\nAlways set.", |
| 1268 "format": "byte", |
| 1269 "type": "string" |
| 1270 }, |
| 1271 "heightPx": { |
| 1272 "description": "The height of the thumbnail, in pixels.\n\nA
lways set.", |
| 1273 "format": "int32", |
| 1274 "type": "integer" |
| 1275 }, |
| 1276 "widthPx": { |
| 1277 "description": "The width of the thumbnail, in pixels.\n\nAl
ways set.", |
| 1278 "format": "int32", |
| 1279 "type": "integer" |
| 1280 } |
| 1281 }, |
| 1282 "type": "object" |
| 1283 }, |
| 1284 "Timestamp": { |
| 1285 "description": "A Timestamp represents a point in time independent o
f any time zone or calendar, represented as seconds and fractions of seconds at
nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Grego
rian Calendar which extends the Gregorian calendar backwards to year one. It is
encoded assuming all minutes are 60 seconds long, i.e. leap seconds are \"smeare
d\" so that no leap second table is needed for interpretation. Range is from 000
1-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that rang
e, we ensure that we can convert to and from RFC 3339 date strings. See [https:/
/www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).\n\nExample
1: Compute Timestamp from POSIX `time()`.\n\nTimestamp timestamp; timestamp.set
_seconds(time(NULL)); timestamp.set_nanos(0);\n\nExample 2: Compute Timestamp fr
om POSIX `gettimeofday()`.\n\nstruct timeval tv; gettimeofday(&tv, NULL);\n\nTim
estamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_us
ec * 1000);\n\nExample 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime(
)`.\n\nFILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dw
HighDateTime) << 32) | ft.dwLowDateTime;\n\n// A Windows tick is 100 nanoseconds
. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch
1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((tick
s / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000)
* 100));\n\nExample 4: Compute Timestamp from Java `System.currentTimeMillis()`
.\n\nlong millis = System.currentTimeMillis();\n\nTimestamp timestamp = Timestam
p.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000
000)).build();\n\n\n\nExample 5: Compute Timestamp from current time in Python.\
n\nnow = time.time() seconds = int(now) nanos = int((now - seconds) * 10**9) tim
estamp = Timestamp(seconds=seconds, nanos=nanos)", |
| 1286 "id": "Timestamp", |
| 1287 "properties": { |
| 1288 "nanos": { |
| 1289 "description": "Non-negative fractions of a second at nanose
cond resolution. Negative second values with fractions must still have non-negat
ive nanos values that count forward in time. Must be from 0 to 999,999,999 inclu
sive.", |
| 1290 "format": "int32", |
| 1291 "type": "integer" |
| 1292 }, |
| 1293 "seconds": { |
| 1294 "description": "Represents seconds of UTC time since Unix ep
och 1970-01-01T00:00:00Z. Must be from from 0001-01-01T00:00:00Z to 9999-12-31T2
3:59:59Z inclusive.", |
| 1295 "format": "int64", |
| 1296 "type": "string" |
| 1297 } |
| 1298 }, |
| 1299 "type": "object" |
| 1300 }, |
| 1301 "ToolExecution": { |
| 1302 "description": "An execution of an arbitrary tool. It could be a tes
t runner or a tool copying artifacts or deploying code. Next tag: 7", |
| 1303 "id": "ToolExecution", |
| 1304 "properties": { |
| 1305 "commandLineArguments": { |
| 1306 "description": "The full tokenized command line including th
e program name (equivalent to argv in a C program).\n\n- In response: present if
set by create request - In create request: optional - In update request: never
set", |
| 1307 "items": { |
| 1308 "type": "string" |
| 1309 }, |
| 1310 "type": "array" |
| 1311 }, |
| 1312 "exitCode": { |
| 1313 "$ref": "ToolExitCode", |
| 1314 "description": "Tool execution exit code. This field will be
set once the tool has exited.\n\n- In response: present if set by create/update
request - In create request: optional - In update request: optional, a FAILED_P
RECONDITION error will be returned if an exit_code is already set." |
| 1315 }, |
| 1316 "toolLogs": { |
| 1317 "description": "References to any plain text logs output the
tool execution.\n\nThis field can be set before the tool has exited in order to
be able to have access to a live view of the logs while the tool is running.\n\
nThe maximum allowed number of tool logs per step is 1000.\n\n- In response: pre
sent if set by create/update request - In create request: optional - In update r
equest: optional, any value provided will be appended to the existing list", |
| 1318 "items": { |
| 1319 "$ref": "FileReference" |
| 1320 }, |
| 1321 "type": "array" |
| 1322 }, |
| 1323 "toolOutputs": { |
| 1324 "description": "References to opaque files of any format out
put by the tool execution.\n\nThe maximum allowed number of tool outputs per ste
p is 1000.\n\n- In response: present if set by create/update request - In create
request: optional - In update request: optional, any value provided will be app
ended to the existing list", |
| 1325 "items": { |
| 1326 "$ref": "ToolOutputReference" |
| 1327 }, |
| 1328 "type": "array" |
| 1329 } |
| 1330 }, |
| 1331 "type": "object" |
| 1332 }, |
| 1333 "ToolExecutionStep": { |
| 1334 "description": "Generic tool step to be used for binaries we do not
explicitly support. For example: running cp to copy artifacts from one location
to another.", |
| 1335 "id": "ToolExecutionStep", |
| 1336 "properties": { |
| 1337 "toolExecution": { |
| 1338 "$ref": "ToolExecution", |
| 1339 "description": "A Tool execution.\n\n- In response: present
if set by create/update request - In create/update request: optional" |
| 1340 } |
| 1341 }, |
| 1342 "type": "object" |
| 1343 }, |
| 1344 "ToolExitCode": { |
| 1345 "description": "Exit code from a tool execution.", |
| 1346 "id": "ToolExitCode", |
| 1347 "properties": { |
| 1348 "number": { |
| 1349 "description": "Tool execution exit code. A value of 0 means
that the execution was successful.\n\n- In response: always set - In create/upd
ate request: always set", |
| 1350 "format": "int32", |
| 1351 "type": "integer" |
| 1352 } |
| 1353 }, |
| 1354 "type": "object" |
| 1355 }, |
| 1356 "ToolOutputReference": { |
| 1357 "description": "A reference to a ToolExecution output file.", |
| 1358 "id": "ToolOutputReference", |
| 1359 "properties": { |
| 1360 "creationTime": { |
| 1361 "$ref": "Timestamp", |
| 1362 "description": "The creation time of the file.\n\n- In respo
nse: present if set by create/update request - In create/update request: optiona
l" |
| 1363 }, |
| 1364 "output": { |
| 1365 "$ref": "FileReference", |
| 1366 "description": "A FileReference to an output file.\n\n- In r
esponse: always set - In create/update request: always set" |
| 1367 }, |
| 1368 "testCase": { |
| 1369 "$ref": "TestCaseReference", |
| 1370 "description": "The test case to which this output file belo
ngs.\n\n- In response: present if set by create/update request - In create/updat
e request: optional" |
| 1371 } |
| 1372 }, |
| 1373 "type": "object" |
| 1374 } |
| 1375 }, |
| 1376 "servicePath": "toolresults/v1beta3/projects/", |
| 1377 "title": "Cloud Tool Results API", |
| 1378 "version": "v1beta3" |
| 1379 } |
| OLD | NEW |