{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage your data across Google Cloud Platform services"
        }
      }
    }
  },
  "basePath": "/toolresults/v1beta3/projects/",
  "baseUrl": "https://www.googleapis.com/toolresults/v1beta3/projects/",
  "batchPath": "batch/toolresults/v1beta3",
  "canonicalName": "Tool Results",
  "description": "Reads and publishes results from Firebase Test Lab.",
  "discoveryVersion": "v1",
  "documentationLink": "https://firebase.google.com/docs/test-lab/",
  "etag": "\"LYADMvHWYH2ul9D6m9UT9gT77YM/7Vf95D60_vv_RS0RkDQJl6GdnU4\"",
  "icons": {
    "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
    "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
  },
  "id": "toolresults:v1beta3",
  "kind": "discovery#restDescription",
  "name": "toolresults",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "parameters": {
    "alt": {
      "default": "json",
      "description": "Data format for the response.",
      "enum": [
        "json"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json"
      ],
      "location": "query",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "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.",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean"
    },
    "quotaUser": {
      "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "userIp": {
      "description": "Deprecated. Please use quotaUser instead.",
      "location": "query",
      "type": "string"
    }
  },
  "protocol": "rest",
  "resources": {
    "projects": {
      "methods": {
        "getSettings": {
          "description": "Gets the Tool Results settings for a project.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to read from project",
          "httpMethod": "GET",
          "id": "toolresults.projects.getSettings",
          "parameterOrder": [
            "projectId"
          ],
          "parameters": {
            "projectId": {
              "description": "A Project id.\n\nRequired.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "{projectId}/settings",
          "response": {
            "$ref": "ProjectSettings"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "initializeSettings": {
          "description": "Creates resources for settings which have not yet been set.\n\nCurrently, this creates a single resource: a Google Cloud Storage bucket, to be used as the default bucket for this project. The bucket is created in an FTL-own storage project. Except for 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 delete objects older than 90 days.\n\nThe bucket is created with the following permissions: - Owner access for owners of central storage project (FTL-owned) - Writer access for owners/editors of customer project - Reader access for viewers of customer project The default ACL on objects created in the bucket is: - Owner access for owners of central storage project - Reader access for owners/editors/viewers of customer project 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 does nothing. However, if the project doesn't have the permission to access the bucket or the bucket is deleted, 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 Cloud Storage",
          "httpMethod": "POST",
          "id": "toolresults.projects.initializeSettings",
          "parameterOrder": [
            "projectId"
          ],
          "parameters": {
            "projectId": {
              "description": "A Project id.\n\nRequired.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "{projectId}:initializeSettings",
          "response": {
            "$ref": "ProjectSettings"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        }
      },
      "resources": {
        "histories": {
          "methods": {
            "create": {
              "description": "Creates a History.\n\nThe returned History 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 project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing project does not exist",
              "httpMethod": "POST",
              "id": "toolresults.projects.histories.create",
              "parameterOrder": [
                "projectId"
              ],
              "parameters": {
                "projectId": {
                  "description": "A Project id.\n\nRequired.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "requestId": {
                  "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "{projectId}/histories",
              "request": {
                "$ref": "History"
              },
              "response": {
                "$ref": "History"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "get": {
              "description": "Gets a History.\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 is malformed - NOT_FOUND - if the History does not exist",
              "httpMethod": "GET",
              "id": "toolresults.projects.histories.get",
              "parameterOrder": [
                "projectId",
                "historyId"
              ],
              "parameters": {
                "historyId": {
                  "description": "A History id.\n\nRequired.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "projectId": {
                  "description": "A Project id.\n\nRequired.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "{projectId}/histories/{historyId}",
              "response": {
                "$ref": "History"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "list": {
              "description": "Lists Histories for a given Project.\n\nThe histories are sorted by modification time in descending order. The history_id key will be used to order the history with the same modification 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 is malformed - NOT_FOUND - if the History does not exist",
              "httpMethod": "GET",
              "id": "toolresults.projects.histories.list",
              "parameterOrder": [
                "projectId"
              ],
              "parameters": {
                "filterByName": {
                  "description": "If set, only return histories with the given name.\n\nOptional.",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "description": "The maximum number of Histories to fetch.\n\nDefault value: 20. The server will use this default if the field is not set or has a value of 0. Any value greater than 100 will be treated as 100.\n\nOptional.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "A continuation token to resume the query at the next item.\n\nOptional.",
                  "location": "query",
                  "type": "string"
                },
                "projectId": {
                  "description": "A Project id.\n\nRequired.",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "{projectId}/histories",
              "response": {
                "$ref": "ListHistoriesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          },
          "resources": {
            "executions": {
              "methods": {
                "create": {
                  "description": "Creates an Execution.\n\nThe returned Execution 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 project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing History does not exist",
                  "httpMethod": "POST",
                  "id": "toolresults.projects.histories.executions.create",
                  "parameterOrder": [
                    "projectId",
                    "historyId"
                  ],
                  "parameters": {
                    "historyId": {
                      "description": "A History id.\n\nRequired.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "projectId": {
                      "description": "A Project id.\n\nRequired.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "requestId": {
                      "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "{projectId}/histories/{historyId}/executions",
                  "request": {
                    "$ref": "Execution"
                  },
                  "response": {
                    "$ref": "Execution"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "description": "Gets an Execution.\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 - NOT_FOUND - if the Execution does not exist",
                  "httpMethod": "GET",
                  "id": "toolresults.projects.histories.executions.get",
                  "parameterOrder": [
                    "projectId",
                    "historyId",
                    "executionId"
                  ],
                  "parameters": {
                    "executionId": {
                      "description": "An Execution id.\n\nRequired.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "historyId": {
                      "description": "A History id.\n\nRequired.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "projectId": {
                      "description": "A Project id.\n\nRequired.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "{projectId}/histories/{historyId}/executions/{executionId}",
                  "response": {
                    "$ref": "Execution"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "description": "Lists Executions for a given History.\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_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 is malformed - NOT_FOUND - if the containing History does not exist",
                  "httpMethod": "GET",
                  "id": "toolresults.projects.histories.executions.list",
                  "parameterOrder": [
                    "projectId",
                    "historyId"
                  ],
                  "parameters": {
                    "historyId": {
                      "description": "A History id.\n\nRequired.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "The maximum number of 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.",
                      "format": "int32",
                      "location": "query",
                      "type": "integer"
                    },
                    "pageToken": {
                      "description": "A continuation token to resume the query at the next item.\n\nOptional.",
                      "location": "query",
                      "type": "string"
                    },
                    "projectId": {
                      "description": "A Project id.\n\nRequired.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "{projectId}/histories/{historyId}/executions",
                  "response": {
                    "$ref": "ListExecutionsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "patch": {
                  "description": "Updates an existing Execution 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 History does not exist",
                  "httpMethod": "PATCH",
                  "id": "toolresults.projects.histories.executions.patch",
                  "parameterOrder": [
                    "projectId",
                    "historyId",
                    "executionId"
                  ],
                  "parameters": {
                    "executionId": {
                      "description": "Required.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "historyId": {
                      "description": "Required.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "projectId": {
                      "description": "A Project id. Required.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "requestId": {
                      "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "{projectId}/histories/{historyId}/executions/{executionId}",
                  "request": {
                    "$ref": "Execution"
                  },
                  "response": {
                    "$ref": "Execution"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              },
              "resources": {
                "clusters": {
                  "methods": {
                    "get": {
                      "description": "Retrieves a single screenshot cluster by its ID",
                      "httpMethod": "GET",
                      "id": "toolresults.projects.histories.executions.clusters.get",
                      "parameterOrder": [
                        "projectId",
                        "historyId",
                        "executionId",
                        "clusterId"
                      ],
                      "parameters": {
                        "clusterId": {
                          "description": "A Cluster id\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "executionId": {
                          "description": "An Execution id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "historyId": {
                          "description": "A History id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "projectId": {
                          "description": "A Project id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "{projectId}/histories/{historyId}/executions/{executionId}/clusters/{clusterId}",
                      "response": {
                        "$ref": "ScreenshotCluster"
                      }
                    },
                    "list": {
                      "description": "Lists Screenshot Clusters\n\nReturns the list of screenshot clusters corresponding to an execution. Screenshot clusters are created after the execution is finished. Clusters are created from a set of screenshots. Between any two screenshots, a matching score is calculated based off their metadata that determines how similar they are. Screenshots are placed in the cluster that has screens which have the highest matching scores.",
                      "httpMethod": "GET",
                      "id": "toolresults.projects.histories.executions.clusters.list",
                      "parameterOrder": [
                        "projectId",
                        "historyId",
                        "executionId"
                      ],
                      "parameters": {
                        "executionId": {
                          "description": "An Execution id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "historyId": {
                          "description": "A History id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "projectId": {
                          "description": "A Project id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "{projectId}/histories/{historyId}/executions/{executionId}/clusters",
                      "response": {
                        "$ref": "ListScreenshotClustersResponse"
                      }
                    }
                  }
                },
                "steps": {
                  "methods": {
                    "create": {
                      "description": "Creates a Step.\n\nThe returned Step 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 project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the step is too large (more than 10Mib) - NOT_FOUND - if the containing Execution does not exist",
                      "httpMethod": "POST",
                      "id": "toolresults.projects.histories.executions.steps.create",
                      "parameterOrder": [
                        "projectId",
                        "historyId",
                        "executionId"
                      ],
                      "parameters": {
                        "executionId": {
                          "description": "Required. An Execution id.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "historyId": {
                          "description": "Required. A History id.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "projectId": {
                          "description": "Required. A Project id.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "requestId": {
                          "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps",
                      "request": {
                        "$ref": "Step"
                      },
                      "response": {
                        "$ref": "Step"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "get": {
                      "description": "Gets a Step.\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 is malformed - NOT_FOUND - if the Step does not exist",
                      "httpMethod": "GET",
                      "id": "toolresults.projects.histories.executions.steps.get",
                      "parameterOrder": [
                        "projectId",
                        "historyId",
                        "executionId",
                        "stepId"
                      ],
                      "parameters": {
                        "executionId": {
                          "description": "A Execution id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "historyId": {
                          "description": "A History id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "projectId": {
                          "description": "A Project id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "stepId": {
                          "description": "A Step id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
                      "response": {
                        "$ref": "Step"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "getPerfMetricsSummary": {
                      "description": "Retrieves a PerfMetricsSummary.\n\nMay return any of the following error code(s): - NOT_FOUND - The specified PerfMetricsSummary does not exist",
                      "httpMethod": "GET",
                      "id": "toolresults.projects.histories.executions.steps.getPerfMetricsSummary",
                      "parameterOrder": [
                        "projectId",
                        "historyId",
                        "executionId",
                        "stepId"
                      ],
                      "parameters": {
                        "executionId": {
                          "description": "A tool results execution ID.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "historyId": {
                          "description": "A tool results history ID.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "projectId": {
                          "description": "The cloud project",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "stepId": {
                          "description": "A tool results step ID.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary",
                      "response": {
                        "$ref": "PerfMetricsSummary"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "list": {
                      "description": "Lists Steps for a given 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 is 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",
                      "httpMethod": "GET",
                      "id": "toolresults.projects.histories.executions.steps.list",
                      "parameterOrder": [
                        "projectId",
                        "historyId",
                        "executionId"
                      ],
                      "parameters": {
                        "executionId": {
                          "description": "A Execution id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "historyId": {
                          "description": "A History id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "pageSize": {
                          "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.",
                          "format": "int32",
                          "location": "query",
                          "type": "integer"
                        },
                        "pageToken": {
                          "description": "A continuation token to resume the query at the next item.\n\nOptional.",
                          "location": "query",
                          "type": "string"
                        },
                        "projectId": {
                          "description": "A Project id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps",
                      "response": {
                        "$ref": "ListStepsResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "patch": {
                      "description": "Updates an existing Step 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 project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal (e.g try to upload a duplicate xml file), if the updated step is too large (more than 10Mib) - NOT_FOUND - if the containing Execution does not exist",
                      "httpMethod": "PATCH",
                      "id": "toolresults.projects.histories.executions.steps.patch",
                      "parameterOrder": [
                        "projectId",
                        "historyId",
                        "executionId",
                        "stepId"
                      ],
                      "parameters": {
                        "executionId": {
                          "description": "A Execution id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "historyId": {
                          "description": "A History id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "projectId": {
                          "description": "A Project id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "requestId": {
                          "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
                          "location": "query",
                          "type": "string"
                        },
                        "stepId": {
                          "description": "A Step id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
                      "request": {
                        "$ref": "Step"
                      },
                      "response": {
                        "$ref": "Step"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "publishXunitXmlFiles": {
                      "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_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state 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",
                      "httpMethod": "POST",
                      "id": "toolresults.projects.histories.executions.steps.publishXunitXmlFiles",
                      "parameterOrder": [
                        "projectId",
                        "historyId",
                        "executionId",
                        "stepId"
                      ],
                      "parameters": {
                        "executionId": {
                          "description": "A Execution id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "historyId": {
                          "description": "A History id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "projectId": {
                          "description": "A Project id.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "stepId": {
                          "description": "A Step id. Note: This step must include a TestExecutionStep.\n\nRequired.",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles",
                      "request": {
                        "$ref": "PublishXunitXmlFilesRequest"
                      },
                      "response": {
                        "$ref": "Step"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    }
                  },
                  "resources": {
                    "perfMetricsSummary": {
                      "methods": {
                        "create": {
                          "description": "Creates a PerfMetricsSummary resource. Returns the existing one if it has already been created.\n\nMay return any of the following error code(s): - NOT_FOUND - The containing Step does not exist",
                          "httpMethod": "POST",
                          "id": "toolresults.projects.histories.executions.steps.perfMetricsSummary.create",
                          "parameterOrder": [
                            "projectId",
                            "historyId",
                            "executionId",
                            "stepId"
                          ],
                          "parameters": {
                            "executionId": {
                              "description": "A tool results execution ID.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "historyId": {
                              "description": "A tool results history ID.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "projectId": {
                              "description": "The cloud project",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "stepId": {
                              "description": "A tool results step ID.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary",
                          "request": {
                            "$ref": "PerfMetricsSummary"
                          },
                          "response": {
                            "$ref": "PerfMetricsSummary"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        }
                      }
                    },
                    "perfSampleSeries": {
                      "methods": {
                        "create": {
                          "description": "Creates a PerfSampleSeries.\n\nMay return any of the following error code(s): - ALREADY_EXISTS - PerfMetricSummary already exists for the given Step - NOT_FOUND - The containing Step does not exist",
                          "httpMethod": "POST",
                          "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.create",
                          "parameterOrder": [
                            "projectId",
                            "historyId",
                            "executionId",
                            "stepId"
                          ],
                          "parameters": {
                            "executionId": {
                              "description": "A tool results execution ID.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "historyId": {
                              "description": "A tool results history ID.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "projectId": {
                              "description": "The cloud project",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "stepId": {
                              "description": "A tool results step ID.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries",
                          "request": {
                            "$ref": "PerfSampleSeries"
                          },
                          "response": {
                            "$ref": "PerfSampleSeries"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        },
                        "get": {
                          "description": "Gets a PerfSampleSeries.\n\nMay return any of the following error code(s): - NOT_FOUND - The specified PerfSampleSeries does not exist",
                          "httpMethod": "GET",
                          "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.get",
                          "parameterOrder": [
                            "projectId",
                            "historyId",
                            "executionId",
                            "stepId",
                            "sampleSeriesId"
                          ],
                          "parameters": {
                            "executionId": {
                              "description": "A tool results execution ID.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "historyId": {
                              "description": "A tool results history ID.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "projectId": {
                              "description": "The cloud project",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "sampleSeriesId": {
                              "description": "A sample series id",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "stepId": {
                              "description": "A tool results step ID.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}",
                          "response": {
                            "$ref": "PerfSampleSeries"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        },
                        "list": {
                          "description": "Lists PerfSampleSeries for a given Step.\n\nThe request provides an optional filter which specifies one or more PerfMetricsType to include in the result; if none returns all. The resulting PerfSampleSeries are sorted by ids.\n\nMay return any of the following canonical error codes: - NOT_FOUND - The containing Step does not exist",
                          "httpMethod": "GET",
                          "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.list",
                          "parameterOrder": [
                            "projectId",
                            "historyId",
                            "executionId",
                            "stepId"
                          ],
                          "parameters": {
                            "executionId": {
                              "description": "A tool results execution ID.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "filter": {
                              "description": "Specify one or more PerfMetricType values such as CPU to filter the result",
                              "enum": [
                                "cpu",
                                "graphics",
                                "memory",
                                "network",
                                "perfMetricTypeUnspecified"
                              ],
                              "enumDescriptions": [
                                "",
                                "",
                                "",
                                "",
                                ""
                              ],
                              "location": "query",
                              "repeated": true,
                              "type": "string"
                            },
                            "historyId": {
                              "description": "A tool results history ID.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "projectId": {
                              "description": "The cloud project",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "stepId": {
                              "description": "A tool results step ID.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries",
                          "response": {
                            "$ref": "ListPerfSampleSeriesResponse"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        }
                      },
                      "resources": {
                        "samples": {
                          "methods": {
                            "batchCreate": {
                              "description": "Creates a batch of PerfSamples - a client can submit multiple batches of Perf Samples through repeated calls to this method in order to split up a large request payload - duplicates and existing timestamp entries will be ignored. - the batch operation may partially succeed - the set of elements successfully inserted is returned in the response (omits items which already existed in the database).\n\nMay return any of the following canonical error codes: - NOT_FOUND - The containing PerfSampleSeries does not exist",
                              "httpMethod": "POST",
                              "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate",
                              "parameterOrder": [
                                "projectId",
                                "historyId",
                                "executionId",
                                "stepId",
                                "sampleSeriesId"
                              ],
                              "parameters": {
                                "executionId": {
                                  "description": "A tool results execution ID.",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "historyId": {
                                  "description": "A tool results history ID.",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "projectId": {
                                  "description": "The cloud project",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "sampleSeriesId": {
                                  "description": "A sample series id",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "stepId": {
                                  "description": "A tool results step ID.",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                }
                              },
                              "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples:batchCreate",
                              "request": {
                                "$ref": "BatchCreatePerfSamplesRequest"
                              },
                              "response": {
                                "$ref": "BatchCreatePerfSamplesResponse"
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ]
                            },
                            "list": {
                              "description": "Lists the Performance Samples of a given Sample Series - The list results are sorted by timestamps ascending - The default page size is 500 samples; and maximum size allowed 5000 - The response token indicates the last returned PerfSample timestamp - When the results size exceeds the page size, submit a subsequent request including the page token to return the rest of the samples up to the page limit\n\nMay return any of the following canonical error codes: - OUT_OF_RANGE - The specified request page_token is out of valid range - NOT_FOUND - The containing PerfSampleSeries does not exist",
                              "httpMethod": "GET",
                              "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list",
                              "parameterOrder": [
                                "projectId",
                                "historyId",
                                "executionId",
                                "stepId",
                                "sampleSeriesId"
                              ],
                              "parameters": {
                                "executionId": {
                                  "description": "A tool results execution ID.",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "historyId": {
                                  "description": "A tool results history ID.",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "pageSize": {
                                  "description": "The default page size is 500 samples, and the maximum size is 5000. If the page_size is greater than 5000, the effective page size will be 5000",
                                  "format": "int32",
                                  "location": "query",
                                  "type": "integer"
                                },
                                "pageToken": {
                                  "description": "Optional, the next_page_token returned in the previous response",
                                  "location": "query",
                                  "type": "string"
                                },
                                "projectId": {
                                  "description": "The cloud project",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "sampleSeriesId": {
                                  "description": "A sample series id",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                },
                                "stepId": {
                                  "description": "A tool results step ID.",
                                  "location": "path",
                                  "required": true,
                                  "type": "string"
                                }
                              },
                              "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples",
                              "response": {
                                "$ref": "ListPerfSamplesResponse"
                              },
                              "scopes": [
                                "https://www.googleapis.com/auth/cloud-platform"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "testCases": {
                      "methods": {
                        "get": {
                          "description": "Gets details of a Test Case for a Step. Experimental test cases API. Still in active development.\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 - NOT_FOUND - if the containing Test Case does not exist",
                          "httpMethod": "GET",
                          "id": "toolresults.projects.histories.executions.steps.testCases.get",
                          "parameterOrder": [
                            "projectId",
                            "historyId",
                            "executionId",
                            "stepId",
                            "testCaseId"
                          ],
                          "parameters": {
                            "executionId": {
                              "description": "A Execution id\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "historyId": {
                              "description": "A History id.\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "projectId": {
                              "description": "A Project id.\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "stepId": {
                              "description": "A Step id. Note: This step must include a TestExecutionStep.\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "testCaseId": {
                              "description": "A Test Case id.\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases/{testCaseId}",
                          "response": {
                            "$ref": "TestCase"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        },
                        "list": {
                          "description": "Lists Test Cases attached to a Step. Experimental test cases API. Still in active development.\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 - NOT_FOUND - if the containing Step does not exist",
                          "httpMethod": "GET",
                          "id": "toolresults.projects.histories.executions.steps.testCases.list",
                          "parameterOrder": [
                            "projectId",
                            "historyId",
                            "executionId",
                            "stepId"
                          ],
                          "parameters": {
                            "executionId": {
                              "description": "A Execution id\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "historyId": {
                              "description": "A History id.\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "pageSize": {
                              "description": "The maximum number of TestCases to fetch.\n\nDefault value: 100. The server will use this default if the field is not set or has a value of 0.\n\nOptional.",
                              "format": "int32",
                              "location": "query",
                              "type": "integer"
                            },
                            "pageToken": {
                              "description": "A continuation token to resume the query at the next item.\n\nOptional.",
                              "location": "query",
                              "type": "string"
                            },
                            "projectId": {
                              "description": "A Project id.\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "stepId": {
                              "description": "A Step id. Note: This step must include a TestExecutionStep.\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases",
                          "response": {
                            "$ref": "ListTestCasesResponse"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        }
                      }
                    },
                    "thumbnails": {
                      "methods": {
                        "list": {
                          "description": "Lists thumbnails 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 the project, or from any of the images - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the step does not exist, or if any of the images do not exist",
                          "httpMethod": "GET",
                          "id": "toolresults.projects.histories.executions.steps.thumbnails.list",
                          "parameterOrder": [
                            "projectId",
                            "historyId",
                            "executionId",
                            "stepId"
                          ],
                          "parameters": {
                            "executionId": {
                              "description": "An Execution id.\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "historyId": {
                              "description": "A History id.\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "pageSize": {
                              "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.",
                              "format": "int32",
                              "location": "query",
                              "type": "integer"
                            },
                            "pageToken": {
                              "description": "A continuation token to resume the query at the next item.\n\nOptional.",
                              "location": "query",
                              "type": "string"
                            },
                            "projectId": {
                              "description": "A Project id.\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            },
                            "stepId": {
                              "description": "A Step id.\n\nRequired.",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails",
                          "response": {
                            "$ref": "ListStepThumbnailsResponse"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "revision": "20190924",
  "rootUrl": "https://www.googleapis.com/",
  "schemas": {
    "AndroidAppInfo": {
      "description": "Android app information.",
      "id": "AndroidAppInfo",
      "properties": {
        "name": {
          "description": "The name of the app. Optional",
          "type": "string"
        },
        "packageName": {
          "description": "The package name of the app. Required.",
          "type": "string"
        },
        "versionCode": {
          "description": "The internal version code of the app. Optional.",
          "type": "string"
        },
        "versionName": {
          "description": "The version name of the app. Optional.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AndroidInstrumentationTest": {
      "description": "A test of an Android application that can control an Android component independently of its normal lifecycle.\n\nSee  for more information on types of Android tests.",
      "id": "AndroidInstrumentationTest",
      "properties": {
        "testPackageId": {
          "description": "The java package for the test to be executed. Required",
          "type": "string"
        },
        "testRunnerClass": {
          "description": "The InstrumentationTestRunner class. Required",
          "type": "string"
        },
        "testTargets": {
          "description": "Each target must be fully qualified with the package name or class name, in one of these formats: - \"package package_name\" - \"class package_name.class_name\" - \"class package_name.class_name#method_name\"\n\nIf empty, all targets in the module will be run.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "useOrchestrator": {
          "description": "The flag indicates whether Android Test Orchestrator will be used to run test or not.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AndroidRoboTest": {
      "description": "A test of an android application that explores the application on a virtual or physical Android device, finding culprits and crashes as it goes.",
      "id": "AndroidRoboTest",
      "properties": {
        "appInitialActivity": {
          "description": "The initial activity that should be used to start the app. Optional",
          "type": "string"
        },
        "bootstrapPackageId": {
          "description": "The java package for the bootstrap. Optional",
          "type": "string"
        },
        "bootstrapRunnerClass": {
          "description": "The runner class for the bootstrap. Optional",
          "type": "string"
        },
        "maxDepth": {
          "description": "The max depth of the traversal stack Robo can explore. Optional",
          "format": "int32",
          "type": "integer"
        },
        "maxSteps": {
          "description": "The max number of steps/actions Robo can execute. Default is no limit (0). Optional",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "AndroidTest": {
      "description": "An Android mobile test specification.",
      "id": "AndroidTest",
      "properties": {
        "androidAppInfo": {
          "$ref": "AndroidAppInfo",
          "description": "Information about the application under test."
        },
        "androidInstrumentationTest": {
          "$ref": "AndroidInstrumentationTest",
          "description": "An Android instrumentation test."
        },
        "androidRoboTest": {
          "$ref": "AndroidRoboTest",
          "description": "An Android robo test."
        },
        "testTimeout": {
          "$ref": "Duration",
          "description": "Max time a test is allowed to run before it is automatically cancelled."
        }
      },
      "type": "object"
    },
    "Any": {
      "description": "`Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form of utility functions or 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.UnpackTo(\u0026foo)) { ... }\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\nExample 3: Pack and unpack a message in Python.\n\nfoo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...\n\nExample 4: Pack and unpack a message in Go\n\nfoo := \u0026pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo := \u0026pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ... }\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 example \"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 deserialized, 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.Person\", \"firstName\": , \"lastName\":  }\n\nIf the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):\n\n{ \"@type\": \"type.googleapis.com/google.protobuf.Duration\", \"value\": \"1.212s\" }",
      "id": "Any",
      "properties": {
        "typeUrl": {
          "description": "A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one \"/\" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup 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\nNote: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.",
          "type": "string"
        },
        "value": {
          "description": "Must be a valid serialized protocol buffer of the above specified type.",
          "format": "byte",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AppStartTime": {
      "id": "AppStartTime",
      "properties": {
        "fullyDrawnTime": {
          "$ref": "Duration",
          "description": "Optional. The time from app start to reaching the developer-reported \"fully drawn\" time. This is only stored if the app includes a call to Activity.reportFullyDrawn(). See https://developer.android.com/topic/performance/launch-time.html#time-full"
        },
        "initialDisplayTime": {
          "$ref": "Duration",
          "description": "The time from app start to the first displayed activity being drawn, as reported in Logcat. See https://developer.android.com/topic/performance/launch-time.html#time-initial"
        }
      },
      "type": "object"
    },
    "BasicPerfSampleSeries": {
      "description": "Encapsulates the metadata for basic sample series represented by a line chart",
      "id": "BasicPerfSampleSeries",
      "properties": {
        "perfMetricType": {
          "enum": [
            "cpu",
            "graphics",
            "memory",
            "network",
            "perfMetricTypeUnspecified"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "perfUnit": {
          "enum": [
            "byte",
            "bytesPerSecond",
            "framesPerSecond",
            "kibibyte",
            "percent",
            "perfUnitUnspecified"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "sampleSeriesLabel": {
          "enum": [
            "cpuKernel",
            "cpuTotal",
            "cpuUser",
            "graphicsFrameRate",
            "memoryRssPrivate",
            "memoryRssShared",
            "memoryRssTotal",
            "memoryTotal",
            "networkReceived",
            "networkSent",
            "ntBytesReceived",
            "ntBytesTransferred",
            "sampleSeriesTypeUnspecified"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "BatchCreatePerfSamplesRequest": {
      "description": "The request must provide up to a maximum of 5000 samples to be created; a larger sample size will cause an INVALID_ARGUMENT error",
      "id": "BatchCreatePerfSamplesRequest",
      "properties": {
        "perfSamples": {
          "description": "The set of PerfSamples to create should not include existing timestamps",
          "items": {
            "$ref": "PerfSample"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "BatchCreatePerfSamplesResponse": {
      "id": "BatchCreatePerfSamplesResponse",
      "properties": {
        "perfSamples": {
          "items": {
            "$ref": "PerfSample"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "CPUInfo": {
      "id": "CPUInfo",
      "properties": {
        "cpuProcessor": {
          "description": "description of the device processor ie '1.8 GHz hexa core 64-bit ARMv8-A'",
          "type": "string"
        },
        "cpuSpeedInGhz": {
          "description": "the CPU clock speed in GHz",
          "format": "float",
          "type": "number"
        },
        "numberOfCores": {
          "description": "the number of CPU cores",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "Duration": {
      "description": "A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like \"day\" or \"month\". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years.\n\n# Examples\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; duration.nanos -= 1000000000; } else if (duration.seconds \u003e 0 \u0026\u0026 duration.nanos \u003c 0) { duration.seconds -= 1; duration.nanos += 1000000000; }\n\nExample 2: Compute Timestamp from Timestamp + Duration in pseudo code.\n\nTimestamp start = ...; Duration duration = ...; Timestamp end = ...;\n\nend.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;\n\nif (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }\n\nExample 3: Compute Duration from datetime.timedelta in Python.\n\ntd = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)\n\n# JSON Mapping\n\nIn JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix \"s\" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should be expressed in JSON format as \"3.000000001s\", and 3 seconds and 1 microsecond should be expressed in JSON format as \"3.000001s\".",
      "id": "Duration",
      "properties": {
        "nanos": {
          "description": "Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of 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 inclusive.",
          "format": "int32",
          "type": "integer"
        },
        "seconds": {
          "description": "Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Execution": {
      "description": "An Execution represents a collection of Steps. For instance, it could represent: - a mobile test executed across a range of device configurations - a jenkins job with a build step followed by a test step\n\nThe maximum size of an execution message is 1 MiB.\n\nAn Execution can be updated until its state is set to COMPLETE at which point it becomes immutable.",
      "id": "Execution",
      "properties": {
        "completionTime": {
          "$ref": "Timestamp",
          "description": "The time when the Execution status transitioned 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 create/update request: never set"
        },
        "creationTime": {
          "$ref": "Timestamp",
          "description": "The time when the Execution was created.\n\nThis value will be set automatically when CreateExecution is called.\n\n- In response: always set - In create/update request: never set"
        },
        "executionId": {
          "description": "A unique identifier within a History for this 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",
          "type": "string"
        },
        "outcome": {
          "$ref": "Outcome",
          "description": "Classify the result, for example into SUCCESS or FAILURE\n\n- In response: present if set by create/update request - In create/update request: optional"
        },
        "specification": {
          "$ref": "Specification",
          "description": "Lightweight information about execution request.\n\n- In response: present if set by create - In create: optional - In update: optional"
        },
        "state": {
          "description": "The initial state is IN_PROGRESS.\n\nThe only legal state transitions is from IN_PROGRESS to COMPLETE.\n\nA PRECONDITION_FAILED will be returned if an invalid transition is requested.\n\nThe state can only be set to COMPLETE once. A FAILED_PRECONDITION will be returned if the state is 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 always set - In create/update request: optional",
          "enum": [
            "complete",
            "inProgress",
            "pending",
            "unknownState"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "testExecutionMatrixId": {
          "description": "TestExecution Matrix ID that the TestExecutionService uses.\n\n- In response: present if set by create - In create: optional - In update: never set",
          "type": "string"
        }
      },
      "type": "object"
    },
    "FailureDetail": {
      "description": "Details for an outcome with a FAILURE outcome summary.",
      "id": "FailureDetail",
      "properties": {
        "crashed": {
          "description": "If the failure was severe because the system (app) under test crashed.",
          "type": "boolean"
        },
        "notInstalled": {
          "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 unsupported platform.",
          "type": "boolean"
        },
        "otherNativeCrash": {
          "description": "If a native process (including any other than the app) crashed.",
          "type": "boolean"
        },
        "timedOut": {
          "description": "If the test overran some time limit, and that is why it failed.",
          "type": "boolean"
        },
        "unableToCrawl": {
          "description": "If the robo was unable to crawl the app; perhaps because the app did not start.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "FileReference": {
      "description": "A reference to a file.",
      "id": "FileReference",
      "properties": {
        "fileUri": {
          "description": "The URI of a file stored in Google Cloud Storage.\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 - In create/update request: always set",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GraphicsStats": {
      "description": "Graphics statistics for the App. The information is collected from 'adb shell dumpsys graphicsstats'. For more info see: https://developer.android.com/training/testing/performance.html Statistics will only be present for API 23+.",
      "id": "GraphicsStats",
      "properties": {
        "buckets": {
          "description": "Histogram of frame render times. There should be 154 buckets ranging from [5ms, 6ms) to [4950ms, infinity)",
          "items": {
            "$ref": "GraphicsStatsBucket"
          },
          "type": "array"
        },
        "highInputLatencyCount": {
          "description": "Total \"high input latency\" events.",
          "format": "int64",
          "type": "string"
        },
        "jankyFrames": {
          "description": "Total frames with slow render time. Should be \u003c= total_frames.",
          "format": "int64",
          "type": "string"
        },
        "missedVsyncCount": {
          "description": "Total \"missed vsync\" events.",
          "format": "int64",
          "type": "string"
        },
        "p50Millis": {
          "description": "50th percentile frame render time in milliseconds.",
          "format": "int64",
          "type": "string"
        },
        "p90Millis": {
          "description": "90th percentile frame render time in milliseconds.",
          "format": "int64",
          "type": "string"
        },
        "p95Millis": {
          "description": "95th percentile frame render time in milliseconds.",
          "format": "int64",
          "type": "string"
        },
        "p99Millis": {
          "description": "99th percentile frame render time in milliseconds.",
          "format": "int64",
          "type": "string"
        },
        "slowBitmapUploadCount": {
          "description": "Total \"slow bitmap upload\" events.",
          "format": "int64",
          "type": "string"
        },
        "slowDrawCount": {
          "description": "Total \"slow draw\" events.",
          "format": "int64",
          "type": "string"
        },
        "slowUiThreadCount": {
          "description": "Total \"slow UI thread\" events.",
          "format": "int64",
          "type": "string"
        },
        "totalFrames": {
          "description": "Total frames rendered by package.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GraphicsStatsBucket": {
      "id": "GraphicsStatsBucket",
      "properties": {
        "frameCount": {
          "description": "Number of frames in the bucket.",
          "format": "int64",
          "type": "string"
        },
        "renderMillis": {
          "description": "Lower bound of render time in milliseconds.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "History": {
      "description": "A History represents a sorted list of Executions ordered by the start_timestamp_millis field (descending). It can be used to group all 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.",
      "id": "History",
      "properties": {
        "displayName": {
          "description": "A short human-readable (plain text) name to display in the UI. Maximum of 100 characters.\n\n- In response: present if set during create. - In create request: optional",
          "type": "string"
        },
        "historyId": {
          "description": "A unique identifier within a project for this History.\n\nReturns INVALID_ARGUMENT if this field is set or overwritten by the caller.\n\n- In response always set - In create request: never set",
          "type": "string"
        },
        "name": {
          "description": "A name to uniquely identify a history within a project. Maximum of 200 characters.\n\n- In response always set - In create request: always set",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Image": {
      "description": "An image, with a link to the main image and a thumbnail.",
      "id": "Image",
      "properties": {
        "error": {
          "$ref": "Status",
          "description": "An error explaining why the thumbnail could not be rendered."
        },
        "sourceImage": {
          "$ref": "ToolOutputReference",
          "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."
        },
        "stepId": {
          "description": "The step to which the image is attached.\n\nAlways set.",
          "type": "string"
        },
        "thumbnail": {
          "$ref": "Thumbnail",
          "description": "The thumbnail."
        }
      },
      "type": "object"
    },
    "InconclusiveDetail": {
      "description": "Details for an outcome with an INCONCLUSIVE outcome summary.",
      "id": "InconclusiveDetail",
      "properties": {
        "abortedByUser": {
          "description": "If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.",
          "type": "boolean"
        },
        "hasErrorLogs": {
          "description": "If results are being provided to the user in certain cases of infrastructure failures",
          "type": "boolean"
        },
        "infrastructureFailure": {
          "description": "If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.\n\nFor example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "IndividualOutcome": {
      "description": "Step Id and outcome of each individual step that was run as a group with other steps with the same configuration.",
      "id": "IndividualOutcome",
      "properties": {
        "multistepNumber": {
          "description": "Unique int given to each step. Ranges from 0(inclusive) to total number of steps(exclusive). The primary step is 0.",
          "format": "int32",
          "type": "integer"
        },
        "outcomeSummary": {
          "enum": [
            "failure",
            "flaky",
            "inconclusive",
            "skipped",
            "success",
            "unset"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "runDuration": {
          "$ref": "Duration",
          "description": "How long it took for this step to run."
        },
        "stepId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListExecutionsResponse": {
      "id": "ListExecutionsResponse",
      "properties": {
        "executions": {
          "description": "Executions.\n\nAlways set.",
          "items": {
            "$ref": "Execution"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "A continuation token to resume the query at the next item.\n\nWill only be set if there are more Executions to fetch.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListHistoriesResponse": {
      "description": "Response message for HistoryService.List",
      "id": "ListHistoriesResponse",
      "properties": {
        "histories": {
          "description": "Histories.",
          "items": {
            "$ref": "History"
          },
          "type": "array"
        },
        "nextPageToken": {
          "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\nTokens are valid for up to one hour from the time of the first list request. For instance, if you make a list request at 1PM and use the token from this first request 10 minutes later, the token from this second response will only be valid for 50 minutes.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListPerfSampleSeriesResponse": {
      "id": "ListPerfSampleSeriesResponse",
      "properties": {
        "perfSampleSeries": {
          "description": "The resulting PerfSampleSeries sorted by id",
          "items": {
            "$ref": "PerfSampleSeries"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListPerfSamplesResponse": {
      "id": "ListPerfSamplesResponse",
      "properties": {
        "nextPageToken": {
          "description": "Optional, returned if result size exceeds the page size specified in the request (or the default page size, 500, if unspecified). It indicates the last sample timestamp to be used as page_token in subsequent request",
          "type": "string"
        },
        "perfSamples": {
          "items": {
            "$ref": "PerfSample"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListScreenshotClustersResponse": {
      "id": "ListScreenshotClustersResponse",
      "properties": {
        "clusters": {
          "description": "The set of clusters associated with an execution Always set",
          "items": {
            "$ref": "ScreenshotCluster"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListStepThumbnailsResponse": {
      "description": "A response containing the thumbnails in a step.",
      "id": "ListStepThumbnailsResponse",
      "properties": {
        "nextPageToken": {
          "description": "A continuation token to resume the query at the next item.\n\nIf set, indicates that there are more thumbnails to read, by calling list again with this value in the page_token field.",
          "type": "string"
        },
        "thumbnails": {
          "description": "A list of image data.\n\nImages are returned in a deterministic order; they are ordered by these factors, in order of importance: * First, by their associated test case. Images without a test case are considered greater than images with one. * Second, by their creation time. Images without a creation time are greater than images with one. * Third, by the order in which they were added to the step (by calls to CreateStep or UpdateStep).",
          "items": {
            "$ref": "Image"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListStepsResponse": {
      "description": "Response message for StepService.List.",
      "id": "ListStepsResponse",
      "properties": {
        "nextPageToken": {
          "description": "A continuation token to resume the query at the next item.\n\nIf set, indicates that there are more steps to read, by calling list again with this value in the page_token field.",
          "type": "string"
        },
        "steps": {
          "description": "Steps.",
          "items": {
            "$ref": "Step"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListTestCasesResponse": {
      "description": "Response message for StepService.ListTestCases.",
      "id": "ListTestCasesResponse",
      "properties": {
        "nextPageToken": {
          "type": "string"
        },
        "testCases": {
          "description": "List of test cases.",
          "items": {
            "$ref": "TestCase"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "MemoryInfo": {
      "id": "MemoryInfo",
      "properties": {
        "memoryCapInKibibyte": {
          "description": "Maximum memory that can be allocated to the process in KiB",
          "format": "int64",
          "type": "string"
        },
        "memoryTotalInKibibyte": {
          "description": "Total memory available on the device in KiB",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "MultiStep": {
      "description": "Details when multiple steps are run with the same configuration as a group.",
      "id": "MultiStep",
      "properties": {
        "multistepNumber": {
          "description": "Unique int given to each step. Ranges from 0(inclusive) to total number of steps(exclusive). The primary step is 0.",
          "format": "int32",
          "type": "integer"
        },
        "primaryStep": {
          "$ref": "PrimaryStep",
          "description": "Present if it is a primary (original) step."
        },
        "primaryStepId": {
          "description": "Step Id of the primary (original) step, which might be this step.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Outcome": {
      "description": "Interprets a result so that humans and machines can act on it.",
      "id": "Outcome",
      "properties": {
        "failureDetail": {
          "$ref": "FailureDetail",
          "description": "More information about a FAILURE outcome.\n\nReturns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.\n\nOptional"
        },
        "inconclusiveDetail": {
          "$ref": "InconclusiveDetail",
          "description": "More information about an INCONCLUSIVE outcome.\n\nReturns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.\n\nOptional"
        },
        "skippedDetail": {
          "$ref": "SkippedDetail",
          "description": "More information about a SKIPPED outcome.\n\nReturns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.\n\nOptional"
        },
        "successDetail": {
          "$ref": "SuccessDetail",
          "description": "More information about a SUCCESS outcome.\n\nReturns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.\n\nOptional"
        },
        "summary": {
          "description": "The simplest way to interpret a result.\n\nRequired",
          "enum": [
            "failure",
            "flaky",
            "inconclusive",
            "skipped",
            "success",
            "unset"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "PerfEnvironment": {
      "description": "Encapsulates performance environment info",
      "id": "PerfEnvironment",
      "properties": {
        "cpuInfo": {
          "$ref": "CPUInfo",
          "description": "CPU related environment info"
        },
        "memoryInfo": {
          "$ref": "MemoryInfo",
          "description": "Memory related environment info"
        }
      },
      "type": "object"
    },
    "PerfMetricsSummary": {
      "description": "A summary of perf metrics collected and performance environment info",
      "id": "PerfMetricsSummary",
      "properties": {
        "appStartTime": {
          "$ref": "AppStartTime"
        },
        "executionId": {
          "description": "A tool results execution ID.",
          "type": "string"
        },
        "graphicsStats": {
          "$ref": "GraphicsStats",
          "description": "Graphics statistics for the entire run. Statistics are reset at the beginning of the run and collected at the end of the run."
        },
        "historyId": {
          "description": "A tool results history ID.",
          "type": "string"
        },
        "perfEnvironment": {
          "$ref": "PerfEnvironment",
          "description": "Describes the environment in which the performance metrics were collected"
        },
        "perfMetrics": {
          "description": "Set of resource collected",
          "items": {
            "enum": [
              "cpu",
              "graphics",
              "memory",
              "network",
              "perfMetricTypeUnspecified"
            ],
            "enumDescriptions": [
              "",
              "",
              "",
              "",
              ""
            ],
            "type": "string"
          },
          "type": "array"
        },
        "projectId": {
          "description": "The cloud project",
          "type": "string"
        },
        "stepId": {
          "description": "A tool results step ID.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PerfSample": {
      "description": "Resource representing a single performance measure or data point",
      "id": "PerfSample",
      "properties": {
        "sampleTime": {
          "$ref": "Timestamp",
          "description": "Timestamp of collection."
        },
        "value": {
          "description": "Value observed",
          "format": "double",
          "type": "number"
        }
      },
      "type": "object"
    },
    "PerfSampleSeries": {
      "description": "Resource representing a collection of performance samples (or data points)",
      "id": "PerfSampleSeries",
      "properties": {
        "basicPerfSampleSeries": {
          "$ref": "BasicPerfSampleSeries",
          "description": "Basic series represented by a line chart"
        },
        "executionId": {
          "description": "A tool results execution ID.",
          "type": "string"
        },
        "historyId": {
          "description": "A tool results history ID.",
          "type": "string"
        },
        "projectId": {
          "description": "The cloud project",
          "type": "string"
        },
        "sampleSeriesId": {
          "description": "A sample series id",
          "type": "string"
        },
        "stepId": {
          "description": "A tool results step ID.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PrimaryStep": {
      "description": "Stores rollup test status of multiple steps that were run as a group and outcome of each individual step.",
      "id": "PrimaryStep",
      "properties": {
        "individualOutcome": {
          "description": "Step Id and outcome of each individual step.",
          "items": {
            "$ref": "IndividualOutcome"
          },
          "type": "array"
        },
        "rollUp": {
          "description": "Rollup test status of multiple steps that were run with the same configuration as a group.",
          "enum": [
            "failure",
            "flaky",
            "inconclusive",
            "skipped",
            "success",
            "unset"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProjectSettings": {
      "description": "Per-project settings for the Tool Results service.",
      "id": "ProjectSettings",
      "properties": {
        "defaultBucket": {
          "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",
          "type": "string"
        },
        "name": {
          "description": "The name of the project's settings.\n\nAlways of the form: projects/{project-id}/settings\n\nIn update request: never set In response: always set",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PublishXunitXmlFilesRequest": {
      "description": "Request message for StepService.PublishXunitXmlFiles.",
      "id": "PublishXunitXmlFilesRequest",
      "properties": {
        "xunitXmlFiles": {
          "description": "URI of the Xunit XML files to publish.\n\nThe maximum size of the file this reference is pointing to is 50MB.\n\nRequired.",
          "items": {
            "$ref": "FileReference"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Screen": {
      "id": "Screen",
      "properties": {
        "fileReference": {
          "description": "File reference of the png file. Required.",
          "type": "string"
        },
        "locale": {
          "description": "Locale of the device that the screenshot was taken on. Required.",
          "type": "string"
        },
        "model": {
          "description": "Model of the device that the screenshot was taken on. Required.",
          "type": "string"
        },
        "version": {
          "description": "OS version of the device that the screenshot was taken on. Required.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ScreenshotCluster": {
      "id": "ScreenshotCluster",
      "properties": {
        "activity": {
          "description": "A string that describes the activity of every screen in the cluster.",
          "type": "string"
        },
        "clusterId": {
          "description": "A unique identifier for the cluster.",
          "type": "string"
        },
        "keyScreen": {
          "$ref": "Screen",
          "description": "A singular screen that represents the cluster as a whole. This screen will act as the \"cover\" of the entire cluster. When users look at the clusters, only the key screen from each cluster will be shown. Which screen is the key screen is determined by the ClusteringAlgorithm"
        },
        "screens": {
          "description": "Full list of screens.",
          "items": {
            "$ref": "Screen"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "SkippedDetail": {
      "description": "Details for an outcome with a SKIPPED outcome summary.",
      "id": "SkippedDetail",
      "properties": {
        "incompatibleAppVersion": {
          "description": "If the App doesn't support the specific API level.",
          "type": "boolean"
        },
        "incompatibleArchitecture": {
          "description": "If the App doesn't run on the specific architecture, for example, x86.",
          "type": "boolean"
        },
        "incompatibleDevice": {
          "description": "If the requested OS version doesn't run on the specific device model.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "Specification": {
      "description": "The details about how to run the execution.",
      "id": "Specification",
      "properties": {
        "androidTest": {
          "$ref": "AndroidTest",
          "description": "An Android mobile test execution specification."
        }
      },
      "type": "object"
    },
    "StackTrace": {
      "description": "A stacktrace.",
      "id": "StackTrace",
      "properties": {
        "exception": {
          "description": "The stack trace message.\n\nRequired",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Status": {
      "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). Each `Status` message contains three pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
      "id": "Status",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of [google.rpc.Code][].",
          "format": "int32",
          "type": "integer"
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "items": {
            "$ref": "Any"
          },
          "type": "array"
        },
        "message": {
          "description": "A developer-facing error message, which should 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.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Step": {
      "description": "A Step represents a single operation performed as part of Execution. A step can be used to represent the execution of a tool ( for example a test runner execution or an execution of a compiler).\n\nSteps can overlap (for instance two steps might have the same start time if some operations are done in parallel).\n\nHere is an example, let's consider that we have a continuous build is executing a test runner for each iteration. The workflow would look 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 id 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: 27",
      "id": "Step",
      "properties": {
        "completionTime": {
          "$ref": "Timestamp",
          "description": "The time when the step status was set 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 create/update request: never set"
        },
        "creationTime": {
          "$ref": "Timestamp",
          "description": "The time when the step was created.\n\n- In response: always set - In create/update request: never set"
        },
        "description": {
          "description": "A description of this tool For example: mvn clean package -D skipTests=true\n\n- In response: present if set by create/update request - In create/update request: optional",
          "type": "string"
        },
        "deviceUsageDuration": {
          "$ref": "Duration",
          "description": "How much the device resource is used to perform the test.\n\nThis is the device usage used for billing purpose, which is different from the run_duration, for example, infrastructure failure won't be charged 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: optional"
        },
        "dimensionValue": {
          "description": "If the execution containing this step has any dimension_definition set, then this field allows the child to specify the values of the dimensions.\n\nThe keys must exactly match the dimension_definition of the execution.\n\nFor example, if the execution has `dimension_definition = ['attempt', 'device']` then a step must define values for those dimensions, eg. `dimension_value = ['attempt': '1', 'device': 'Nexus 6']`\n\nIf a step does not participate 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 does not support retries, the step could have `dimension_value = ['attempt': '', 'device': '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 returned if any of the keys do not exist in the dimension_definition of the execution.\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 returned if dimension_value is set, and there is a dimension_definition in the execution 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",
          "items": {
            "$ref": "StepDimensionValueEntry"
          },
          "type": "array"
        },
        "hasImages": {
          "description": "Whether any of the outputs of this step are images whose thumbnails can be fetched with ListThumbnails.\n\n- In response: always set - In create/update request: never set",
          "type": "boolean"
        },
        "labels": {
          "description": "Arbitrary user-supplied key/value pairs that are associated with the step.\n\nUsers are responsible for managing the key namespace 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 keys or values exceeds 100 characters.\n\n- In response: always set - In create request: optional - In update request: optional; any new key/value pair will be added to the map, and any new value for an existing key will update that key's value",
          "items": {
            "$ref": "StepLabelsEntry"
          },
          "type": "array"
        },
        "multiStep": {
          "$ref": "MultiStep",
          "description": "Details when multiple steps are run with the same configuration as a group. These details can be used identify which group this step is part of. It also identifies the groups 'primary step' which indexes all the group members.\n\n- In response: present if previously set. - In create request: optional, set iff this step was performed more than once. - In update request: optional"
        },
        "name": {
          "description": "A short human-readable name to display in the UI. Maximum of 100 characters. For example: Clean build\n\nA PRECONDITION_FAILED 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 the 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 - In update request: never set",
          "type": "string"
        },
        "outcome": {
          "$ref": "Outcome",
          "description": "Classification of the result, for example into SUCCESS or FAILURE\n\n- In response: present if set by create/update request - In create/update request: optional"
        },
        "runDuration": {
          "$ref": "Duration",
          "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 appropriate 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 already has this field set.\n\n- In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional"
        },
        "state": {
          "description": "The initial state is IN_PROGRESS. The only legal state transitions are * IN_PROGRESS -\u003e COMPLETE\n\nA PRECONDITION_FAILED will be returned if an invalid transition is requested.\n\nIt is valid to create Step 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 times.\n\n- In response: always set - In create/update request: optional",
          "enum": [
            "complete",
            "inProgress",
            "pending",
            "unknownState"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "stepId": {
          "description": "A unique identifier within a Execution for this 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",
          "type": "string"
        },
        "testExecutionStep": {
          "$ref": "TestExecutionStep",
          "description": "An execution of a test runner."
        },
        "toolExecutionStep": {
          "$ref": "ToolExecutionStep",
          "description": "An execution of a tool (used for steps we don't explicitly support)."
        }
      },
      "type": "object"
    },
    "StepDimensionValueEntry": {
      "id": "StepDimensionValueEntry",
      "properties": {
        "key": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "StepLabelsEntry": {
      "id": "StepLabelsEntry",
      "properties": {
        "key": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "SuccessDetail": {
      "description": "Details for an outcome with a SUCCESS outcome summary.",
      "id": "SuccessDetail",
      "properties": {
        "otherNativeCrash": {
          "description": "If a native process other than the app crashed.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "TestCase": {
      "id": "TestCase",
      "properties": {
        "elapsedTime": {
          "$ref": "Duration",
          "description": "The elapsed run time of the test case.\n\nRequired."
        },
        "endTime": {
          "$ref": "Timestamp",
          "description": "The end time of the test case.\n\nOptional."
        },
        "skippedMessage": {
          "description": "Why the test case was skipped.\n\nPresent only for skipped test case",
          "type": "string"
        },
        "stackTraces": {
          "description": "The stack trace details if the test case failed or encountered an error.\n\nThe maximum size of the stack traces is 100KiB, beyond which the stack track will be truncated.\n\nZero if the test case passed.",
          "items": {
            "$ref": "StackTrace"
          },
          "type": "array"
        },
        "startTime": {
          "$ref": "Timestamp",
          "description": "The start time of the test case.\n\nOptional."
        },
        "status": {
          "description": "The status of the test case.\n\nRequired.",
          "enum": [
            "error",
            "failed",
            "flaky",
            "passed",
            "skipped"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "testCaseId": {
          "description": "A unique identifier within a Step for this Test Case.",
          "type": "string"
        },
        "testCaseReference": {
          "$ref": "TestCaseReference",
          "description": "Test case reference, e.g. name, class name and test suite name.\n\nRequired."
        },
        "toolOutputs": {
          "description": "References to opaque files of any format output by the tool execution.",
          "items": {
            "$ref": "ToolOutputReference"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "TestCaseReference": {
      "description": "A reference to a test case.\n\nTest case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.",
      "id": "TestCaseReference",
      "properties": {
        "className": {
          "description": "The name of the class.",
          "type": "string"
        },
        "name": {
          "description": "The name of the test case.\n\nRequired.",
          "type": "string"
        },
        "testSuiteName": {
          "description": "The name of the test suite to which this test case belongs.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TestExecutionStep": {
      "description": "A step that represents running tests.\n\nIt accepts ant-junit xml files which will be parsed into structured test results by the service. 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_result field.",
      "id": "TestExecutionStep",
      "properties": {
        "testIssues": {
          "description": "Issues observed during the test execution.\n\nFor example, if the mobile app under test crashed during the test, the error message and the stack trace content can be recorded here to assist debugging.\n\n- In response: present if set by create or update - In create/update request: optional",
          "items": {
            "$ref": "TestIssue"
          },
          "type": "array"
        },
        "testSuiteOverviews": {
          "description": "List of test suite overview contents. This could 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 (use publishXunitXmlFiles custom method instead)",
          "items": {
            "$ref": "TestSuiteOverview"
          },
          "type": "array"
        },
        "testTiming": {
          "$ref": "TestTiming",
          "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"
        },
        "toolExecution": {
          "$ref": "ToolExecution",
          "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"
        }
      },
      "type": "object"
    },
    "TestIssue": {
      "description": "An issue detected occurring during a test execution.",
      "id": "TestIssue",
      "properties": {
        "category": {
          "description": "Category of issue. Required.",
          "enum": [
            "common",
            "robo",
            "unspecifiedCategory"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "errorMessage": {
          "description": "A brief human-readable message describing the issue. Required.",
          "type": "string"
        },
        "severity": {
          "description": "Severity of issue. Required.",
          "enum": [
            "info",
            "severe",
            "suggestion",
            "unspecifiedSeverity",
            "warning"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "stackTrace": {
          "$ref": "StackTrace",
          "description": "Deprecated in favor of stack trace fields inside specific warnings."
        },
        "type": {
          "description": "Type of issue. Required.",
          "enum": [
            "anr",
            "availableDeepLinks",
            "blankScreen",
            "compatibleWithOrchestrator",
            "completeRoboScriptExecution",
            "crashDialogError",
            "encounteredLoginScreen",
            "encounteredNonAndroidUiWidgetScreen",
            "failedToInstall",
            "fatalException",
            "inAppPurchases",
            "incompleteRoboScriptExecution",
            "insufficientCoverage",
            "iosCrash",
            "iosException",
            "launcherActivityNotFound",
            "nativeCrash",
            "nonSdkApiUsageReport",
            "nonSdkApiUsageViolation",
            "overlappingUiElements",
            "performedGoogleLogin",
            "performedMonkeyActions",
            "startActivityNotFound",
            "uiElementsTooDeep",
            "unspecifiedType",
            "unusedRoboDirective",
            "usedRoboDirective",
            "usedRoboIgnoreDirective"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "warning": {
          "$ref": "Any",
          "description": "Warning message with additional details of the issue. Should always be a message from com.google.devtools.toolresults.v1.warnings"
        }
      },
      "type": "object"
    },
    "TestSuiteOverview": {
      "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 StepService only. This message is also being used in ExecutionService in a read only mode for the corresponding step.",
      "id": "TestSuiteOverview",
      "properties": {
        "elapsedTime": {
          "$ref": "Duration",
          "description": "Elapsed time of test suite."
        },
        "errorCount": {
          "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",
          "format": "int32",
          "type": "integer"
        },
        "failureCount": {
          "description": "Number of failed test cases, typically set by the service by parsing the xml_source. May also be set by the user.\n\n- In create/response: always set - In update request: never",
          "format": "int32",
          "type": "integer"
        },
        "name": {
          "description": "The name of the test suite.\n\n- In create/response: always set - In update request: never",
          "type": "string"
        },
        "skippedCount": {
          "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",
          "format": "int32",
          "type": "integer"
        },
        "totalCount": {
          "description": "Number of test cases, typically set by the service by parsing the xml_source.\n\n- In create/response: always set - In update request: never",
          "format": "int32",
          "type": "integer"
        },
        "xmlSource": {
          "$ref": "FileReference",
          "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"
        }
      },
      "type": "object"
    },
    "TestTiming": {
      "description": "Testing timing break down to know phases.",
      "id": "TestTiming",
      "properties": {
        "testProcessDuration": {
          "$ref": "Duration",
          "description": "How long it took to run the test process.\n\n- In response: present if previously set. - In create/update request: optional"
        }
      },
      "type": "object"
    },
    "Thumbnail": {
      "description": "A single thumbnail, with its size and format.",
      "id": "Thumbnail",
      "properties": {
        "contentType": {
          "description": "The thumbnail's content type, i.e. \"image/png\".\n\nAlways set.",
          "type": "string"
        },
        "data": {
          "description": "The thumbnail file itself.\n\nThat is, the bytes here are precisely the bytes that make up the thumbnail file; they can be served as an image as-is (with the appropriate content type.)\n\nAlways set.",
          "format": "byte",
          "type": "string"
        },
        "heightPx": {
          "description": "The height of the thumbnail, in pixels.\n\nAlways set.",
          "format": "int32",
          "type": "integer"
        },
        "widthPx": {
          "description": "The width of the thumbnail, in pixels.\n\nAlways set.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "Timestamp": {
      "description": "A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.\n\nAll minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap second table is needed for interpretation, using a [24-hour linear smear](https://developers.google.com/time/smear).\n\nThe range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n# Examples\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 from POSIX `gettimeofday()`.\n\nstruct timeval tv; gettimeofday(\u0026tv, NULL);\n\nTimestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);\n\nExample 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\nFILETIME ft; GetSystemTimeAsFileTime(\u0026ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 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) ((ticks / 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 = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n\n\nExample 5: Compute Timestamp from current time in Python.\n\ntimestamp = Timestamp() timestamp.GetCurrentTime()\n\n# JSON Mapping\n\nIn JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by \"Z\") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).\n\nFor example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.\n\nIn JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D ) to obtain a formatter capable of generating timestamps in this format.",
      "id": "Timestamp",
      "properties": {
        "nanos": {
          "description": "Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.",
          "format": "int32",
          "type": "integer"
        },
        "seconds": {
          "description": "Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ToolExecution": {
      "description": "An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code.",
      "id": "ToolExecution",
      "properties": {
        "commandLineArguments": {
          "description": "The full tokenized command line including the 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",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "exitCode": {
          "$ref": "ToolExitCode",
          "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_PRECONDITION error will be returned if an exit_code is already set."
        },
        "toolLogs": {
          "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: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list",
          "items": {
            "$ref": "FileReference"
          },
          "type": "array"
        },
        "toolOutputs": {
          "description": "References to opaque files of any format output by the tool execution.\n\nThe maximum allowed number of tool outputs per step 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 appended to the existing list",
          "items": {
            "$ref": "ToolOutputReference"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ToolExecutionStep": {
      "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.",
      "id": "ToolExecutionStep",
      "properties": {
        "toolExecution": {
          "$ref": "ToolExecution",
          "description": "A Tool execution.\n\n- In response: present if set by create/update request - In create/update request: optional"
        }
      },
      "type": "object"
    },
    "ToolExitCode": {
      "description": "Exit code from a tool execution.",
      "id": "ToolExitCode",
      "properties": {
        "number": {
          "description": "Tool execution exit code. A value of 0 means that the execution was successful.\n\n- In response: always set - In create/update request: always set",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "ToolOutputReference": {
      "description": "A reference to a ToolExecution output file.",
      "id": "ToolOutputReference",
      "properties": {
        "creationTime": {
          "$ref": "Timestamp",
          "description": "The creation time of the file.\n\n- In response: present if set by create/update request - In create/update request: optional"
        },
        "output": {
          "$ref": "FileReference",
          "description": "A FileReference to an output file.\n\n- In response: always set - In create/update request: always set"
        },
        "testCase": {
          "$ref": "TestCaseReference",
          "description": "The test case to which this output file belongs.\n\n- In response: present if set by create/update request - In create/update request: optional"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "toolresults/v1beta3/projects/",
  "title": "Cloud Tool Results API",
  "version": "v1beta3"
}