{
 "kind": "discovery#restDescription",
 "etag": "\"C5oy1hgQsABtYOYIOXWcR3BgYqU/sRYR7w3v53bGSs-0ySeriwTU574\"",
 "discoveryVersion": "v1",
 "id": "toolresults:v1beta3",
 "name": "toolresults",
 "canonicalName": "Tool Results",
 "version": "v1beta3",
 "revision": "20160802",
 "title": "Cloud Tool Results API",
 "description": "Reads and publishes results from Cloud Test Lab.",
 "ownerDomain": "google.com",
 "ownerName": "Google",
 "icons": {
  "x16": "http://www.google.com/images/icons/product/search-16.gif",
  "x32": "http://www.google.com/images/icons/product/search-32.gif"
 },
 "documentationLink": "https://developers.google.com/cloud-test-lab/",
 "protocol": "rest",
 "baseUrl": "https://www.googleapis.com/toolresults/v1beta3/projects/",
 "basePath": "/toolresults/v1beta3/projects/",
 "rootUrl": "https://www.googleapis.com/",
 "servicePath": "toolresults/v1beta3/projects/",
 "batchPath": "batch",
 "parameters": {
  "alt": {
   "type": "string",
   "description": "Data format for the response.",
   "default": "json",
   "enum": [
    "json"
   ],
   "enumDescriptions": [
    "Responses with Content-Type of application/json"
   ],
   "location": "query"
  },
  "fields": {
   "type": "string",
   "description": "Selector specifying which fields to include in a partial response.",
   "location": "query"
  },
  "key": {
   "type": "string",
   "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"
  },
  "oauth_token": {
   "type": "string",
   "description": "OAuth 2.0 token for the current user.",
   "location": "query"
  },
  "prettyPrint": {
   "type": "boolean",
   "description": "Returns response with indentations and line breaks.",
   "default": "true",
   "location": "query"
  },
  "quotaUser": {
   "type": "string",
   "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.",
   "location": "query"
  },
  "userIp": {
   "type": "string",
   "description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
   "location": "query"
  }
 },
 "auth": {
  "oauth2": {
   "scopes": {
    "https://www.googleapis.com/auth/cloud-platform": {
     "description": "View and manage your data across Google Cloud Platform services"
    }
   }
  }
 },
 "schemas": {
  "Any": {
   "id": "Any",
   "type": "object",
   "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(&foo)) { ... }\n\nExample 2: Pack and unpack a message in Java.\n\nFoo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }\n\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\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\" }",
   "properties": {
    "typeUrl": {
     "type": "string",
     "description": "A URL/resource name whose content describes the type of the serialized protocol buffer message.\n\nFor URLs which use the scheme `http`, `https`, or no scheme, the following restrictions and interpretations apply:\n\n* If no scheme is provided, `https` is assumed. * 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). * 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\nSchemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics."
    },
    "value": {
     "type": "string",
     "description": "Must be a valid serialized protocol buffer of the above specified type.",
     "format": "byte"
    }
   }
  },
  "Duration": {
   "id": "Duration",
   "type": "object",
   "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\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 (durations.seconds \u003e 0 && 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)",
   "properties": {
    "nanos": {
     "type": "integer",
     "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"
    },
    "seconds": {
     "type": "string",
     "description": "Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.",
     "format": "int64"
    }
   }
  },
  "Execution": {
   "id": "Execution",
   "type": "object",
   "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.",
   "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": {
     "type": "string",
     "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"
    },
    "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"
    },
    "state": {
     "type": "string",
     "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": [
      "",
      "",
      "",
      ""
     ]
    },
    "testExecutionMatrixId": {
     "type": "string",
     "description": "TestExecution Matrix ID that the Test Service uses.\n\n- In response: present if set by create - In create: optional - In update: never set"
    }
   }
  },
  "FailureDetail": {
   "id": "FailureDetail",
   "type": "object",
   "properties": {
    "crashed": {
     "type": "boolean",
     "description": "If the failure was severe because the system under test crashed."
    },
    "notInstalled": {
     "type": "boolean",
     "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."
    },
    "otherNativeCrash": {
     "type": "boolean",
     "description": "If a native process other than the app crashed."
    },
    "timedOut": {
     "type": "boolean",
     "description": "If the test overran some time limit, and that is why it failed."
    },
    "unableToCrawl": {
     "type": "boolean",
     "description": "If the robo was unable to crawl the app; perhaps because the app did not start."
    }
   }
  },
  "FileReference": {
   "id": "FileReference",
   "type": "object",
   "description": "A reference to a file.",
   "properties": {
    "fileUri": {
     "type": "string",
     "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"
    }
   }
  },
  "History": {
   "id": "History",
   "type": "object",
   "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.",
   "properties": {
    "displayName": {
     "type": "string",
     "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"
    },
    "historyId": {
     "type": "string",
     "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"
    },
    "name": {
     "type": "string",
     "description": "A name to uniquely identify a history within a project. Maximum of 100 characters.\n\n- In response always set - In create request: always set"
    }
   }
  },
  "Image": {
   "id": "Image",
   "type": "object",
   "description": "An image, with a link to the main image and a thumbnail.",
   "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": {
     "type": "string",
     "description": "The step to which the image is attached.\n\nAlways set."
    },
    "thumbnail": {
     "$ref": "Thumbnail",
     "description": "The thumbnail."
    }
   }
  },
  "InconclusiveDetail": {
   "id": "InconclusiveDetail",
   "type": "object",
   "properties": {
    "abortedByUser": {
     "type": "boolean",
     "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."
    },
    "infrastructureFailure": {
     "type": "boolean",
     "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."
    }
   }
  },
  "ListExecutionsResponse": {
   "id": "ListExecutionsResponse",
   "type": "object",
   "properties": {
    "executions": {
     "type": "array",
     "description": "Executions.\n\nAlways set.",
     "items": {
      "$ref": "Execution"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "A continuation token to resume the query at the next item.\n\nWill only be set if there are more Executions to fetch."
    }
   }
  },
  "ListHistoriesResponse": {
   "id": "ListHistoriesResponse",
   "type": "object",
   "description": "Response message for HistoryService.List",
   "properties": {
    "histories": {
     "type": "array",
     "description": "Histories.",
     "items": {
      "$ref": "History"
     }
    },
    "nextPageToken": {
     "type": "string",
     "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."
    }
   }
  },
  "ListStepThumbnailsResponse": {
   "id": "ListStepThumbnailsResponse",
   "type": "object",
   "description": "A response containing the thumbnails in a step.",
   "properties": {
    "nextPageToken": {
     "type": "string",
     "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."
    },
    "thumbnails": {
     "type": "array",
     "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"
     }
    }
   }
  },
  "ListStepsResponse": {
   "id": "ListStepsResponse",
   "type": "object",
   "description": "Response message for StepService.List.",
   "properties": {
    "nextPageToken": {
     "type": "string",
     "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."
    },
    "steps": {
     "type": "array",
     "description": "Steps.",
     "items": {
      "$ref": "Step"
     }
    }
   }
  },
  "Outcome": {
   "id": "Outcome",
   "type": "object",
   "description": "Interprets a result so that humans and machines can act on it.",
   "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": {
     "type": "string",
     "description": "The simplest way to interpret a result.\n\nRequired",
     "enum": [
      "failure",
      "inconclusive",
      "skipped",
      "success",
      "unset"
     ],
     "enumDescriptions": [
      "",
      "",
      "",
      "",
      ""
     ]
    }
   }
  },
  "ProjectSettings": {
   "id": "ProjectSettings",
   "type": "object",
   "description": "Per-project settings for the Tool Results service.",
   "properties": {
    "defaultBucket": {
     "type": "string",
     "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"
    },
    "name": {
     "type": "string",
     "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"
    }
   }
  },
  "PublishXunitXmlFilesRequest": {
   "id": "PublishXunitXmlFilesRequest",
   "type": "object",
   "description": "Request message for StepService.PublishXunitXmlFiles.",
   "properties": {
    "xunitXmlFiles": {
     "type": "array",
     "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"
     }
    }
   }
  },
  "SkippedDetail": {
   "id": "SkippedDetail",
   "type": "object",
   "properties": {
    "incompatibleAppVersion": {
     "type": "boolean",
     "description": "If the App doesn't support the specific API level."
    },
    "incompatibleArchitecture": {
     "type": "boolean",
     "description": "If the App doesn't run on the specific architecture, for example, x86."
    },
    "incompatibleDevice": {
     "type": "boolean",
     "description": "If the requested OS version doesn't run on the specific device model."
    }
   }
  },
  "StackTrace": {
   "id": "StackTrace",
   "type": "object",
   "description": "A stacktrace.",
   "properties": {
    "exception": {
     "type": "string",
     "description": "The stack trace message.\n\nRequired"
    }
   }
  },
  "Status": {
   "id": "Status",
   "type": "object",
   "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users - Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of [google.rpc.Code][], but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose.\n\n- Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons.",
   "properties": {
    "code": {
     "type": "integer",
     "description": "The status code, which should be an enum value of [google.rpc.Code][].",
     "format": "int32"
    },
    "details": {
     "type": "array",
     "description": "A list of messages that carry the error details. There will be a common set of message types for APIs to use.",
     "items": {
      "$ref": "Any"
     }
    },
    "message": {
     "type": "string",
     "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."
    }
   }
  },
  "Step": {
   "id": "Step",
   "type": "object",
   "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.",
   "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": {
     "type": "string",
     "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"
    },
    "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": {
     "type": "array",
     "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"
     }
    },
    "hasImages": {
     "type": "boolean",
     "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"
    },
    "labels": {
     "type": "array",
     "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"
     }
    },
    "name": {
     "type": "string",
     "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"
    },
    "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": {
     "type": "string",
     "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": [
      "",
      "",
      "",
      ""
     ]
    },
    "stepId": {
     "type": "string",
     "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"
    },
    "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)."
    }
   }
  },
  "StepDimensionValueEntry": {
   "id": "StepDimensionValueEntry",
   "type": "object",
   "properties": {
    "key": {
     "type": "string"
    },
    "value": {
     "type": "string"
    }
   }
  },
  "StepLabelsEntry": {
   "id": "StepLabelsEntry",
   "type": "object",
   "properties": {
    "key": {
     "type": "string"
    },
    "value": {
     "type": "string"
    }
   }
  },
  "SuccessDetail": {
   "id": "SuccessDetail",
   "type": "object",
   "properties": {
    "otherNativeCrash": {
     "type": "boolean",
     "description": "If a native process other than the app crashed."
    }
   }
  },
  "TestCaseReference": {
   "id": "TestCaseReference",
   "type": "object",
   "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.",
   "properties": {
    "className": {
     "type": "string",
     "description": "The name of the class."
    },
    "name": {
     "type": "string",
     "description": "The name of the test case.\n\nRequired."
    },
    "testSuiteName": {
     "type": "string",
     "description": "The name of the test suite to which this test case belongs."
    }
   }
  },
  "TestExecutionStep": {
   "id": "TestExecutionStep",
   "type": "object",
   "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.",
   "properties": {
    "testIssues": {
     "type": "array",
     "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"
     }
    },
    "testSuiteOverviews": {
     "type": "array",
     "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"
     }
    },
    "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"
    }
   }
  },
  "TestIssue": {
   "id": "TestIssue",
   "type": "object",
   "description": "An abnormal event observed during the test execution.",
   "properties": {
    "errorMessage": {
     "type": "string",
     "description": "A brief human-readable message describing the abnormal event.\n\nRequired."
    },
    "stackTrace": {
     "$ref": "StackTrace",
     "description": "Optional."
    }
   }
  },
  "TestSuiteOverview": {
   "id": "TestSuiteOverview",
   "type": "object",
   "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.",
   "properties": {
    "errorCount": {
     "type": "integer",
     "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"
    },
    "failureCount": {
     "type": "integer",
     "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"
    },
    "name": {
     "type": "string",
     "description": "The name of the test suite.\n\n- In create/response: always set - In update request: never"
    },
    "skippedCount": {
     "type": "integer",
     "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"
    },
    "totalCount": {
     "type": "integer",
     "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"
    },
    "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"
    }
   }
  },
  "TestTiming": {
   "id": "TestTiming",
   "type": "object",
   "description": "Testing timing break down to know phases.",
   "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"
    }
   }
  },
  "Thumbnail": {
   "id": "Thumbnail",
   "type": "object",
   "description": "A single thumbnail, with its size and format.",
   "properties": {
    "contentType": {
     "type": "string",
     "description": "The thumbnail's content type, i.e. \"image/png\".\n\nAlways set."
    },
    "data": {
     "type": "string",
     "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"
    },
    "heightPx": {
     "type": "integer",
     "description": "The height of the thumbnail, in pixels.\n\nAlways set.",
     "format": "int32"
    },
    "widthPx": {
     "type": "integer",
     "description": "The width of the thumbnail, in pixels.\n\nAlways set.",
     "format": "int32"
    }
   }
  },
  "Timestamp": {
   "id": "Timestamp",
   "type": "object",
   "description": "A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are \"smeared\" so that no leap second table is needed for interpretation. 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 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).\n\nExample 1: Compute Timestamp from POSIX `time()`.\n\nTimestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);\n\nExample 2: Compute Timestamp from POSIX `gettimeofday()`.\n\nstruct timeval tv; gettimeofday(&tv, 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(&ft); 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()",
   "properties": {
    "nanos": {
     "type": "integer",
     "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"
    },
    "seconds": {
     "type": "string",
     "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"
    }
   }
  },
  "ToolExecution": {
   "id": "ToolExecution",
   "type": "object",
   "description": "An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code.",
   "properties": {
    "commandLineArguments": {
     "type": "array",
     "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"
     }
    },
    "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": {
     "type": "array",
     "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"
     }
    },
    "toolOutputs": {
     "type": "array",
     "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"
     }
    }
   }
  },
  "ToolExecutionStep": {
   "id": "ToolExecutionStep",
   "type": "object",
   "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.",
   "properties": {
    "toolExecution": {
     "$ref": "ToolExecution",
     "description": "A Tool execution.\n\n- In response: present if set by create/update request - In create/update request: optional"
    }
   }
  },
  "ToolExitCode": {
   "id": "ToolExitCode",
   "type": "object",
   "description": "Exit code from a tool execution.",
   "properties": {
    "number": {
     "type": "integer",
     "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"
    }
   }
  },
  "ToolOutputReference": {
   "id": "ToolOutputReference",
   "type": "object",
   "description": "A reference to a ToolExecution output file.",
   "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"
    }
   }
  }
 },
 "resources": {
  "projects": {
   "methods": {
    "getSettings": {
     "id": "toolresults.projects.getSettings",
     "path": "{projectId}/settings",
     "httpMethod": "GET",
     "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",
     "parameters": {
      "projectId": {
       "type": "string",
       "description": "A Project id.\n\nRequired.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "projectId"
     ],
     "response": {
      "$ref": "ProjectSettings"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform"
     ]
    },
    "initializeSettings": {
     "id": "toolresults.projects.initializeSettings",
     "path": "{projectId}:initializeSettings",
     "httpMethod": "POST",
     "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 the name of the user calling. Except in rare cases, calling this method in parallel from multiple clients will only create a single bucket. In order to avoid unnecessary storage charges, the bucket is configured to automatically delete objects older than 90 days.\n\nThe bucket is created with the project-private ACL: All project team members are given permissions to the bucket and objects created within it according to their roles. Project owners have owners rights, and so on. The default ACL on objects created in the bucket is project-private as well. See Google Cloud Storage documentation for more details.\n\nIf there is already a default bucket set and the project can access the bucket, this call does nothing. However, if the project doesn't have the permission to access the bucket or the bucket is deteleted, a new bucket will be created.\n\nMay return any canonical error codes, including the following:\n\n- PERMISSION_DENIED - if the user is not authorized to write to project - Any error code raised by Google Cloud Storage",
     "parameters": {
      "projectId": {
       "type": "string",
       "description": "A Project id.\n\nRequired.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "projectId"
     ],
     "response": {
      "$ref": "ProjectSettings"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform"
     ]
    }
   },
   "resources": {
    "histories": {
     "methods": {
      "create": {
       "id": "toolresults.projects.histories.create",
       "path": "{projectId}/histories",
       "httpMethod": "POST",
       "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",
       "parameters": {
        "projectId": {
         "type": "string",
         "description": "A Project id.\n\nRequired.",
         "required": true,
         "location": "path"
        },
        "requestId": {
         "type": "string",
         "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
         "location": "query"
        }
       },
       "parameterOrder": [
        "projectId"
       ],
       "request": {
        "$ref": "History"
       },
       "response": {
        "$ref": "History"
       },
       "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
       ]
      },
      "get": {
       "id": "toolresults.projects.histories.get",
       "path": "{projectId}/histories/{historyId}",
       "httpMethod": "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",
       "parameters": {
        "historyId": {
         "type": "string",
         "description": "A History id.\n\nRequired.",
         "required": true,
         "location": "path"
        },
        "projectId": {
         "type": "string",
         "description": "A Project id.\n\nRequired.",
         "required": true,
         "location": "path"
        }
       },
       "parameterOrder": [
        "projectId",
        "historyId"
       ],
       "response": {
        "$ref": "History"
       },
       "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
       ]
      },
      "list": {
       "id": "toolresults.projects.histories.list",
       "path": "{projectId}/histories",
       "httpMethod": "GET",
       "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",
       "parameters": {
        "filterByName": {
         "type": "string",
         "description": "If set, only return histories with the given name.\n\nOptional.",
         "location": "query"
        },
        "pageSize": {
         "type": "integer",
         "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"
        },
        "pageToken": {
         "type": "string",
         "description": "A continuation token to resume the query at the next item.\n\nOptional.",
         "location": "query"
        },
        "projectId": {
         "type": "string",
         "description": "A Project id.\n\nRequired.",
         "required": true,
         "location": "path"
        }
       },
       "parameterOrder": [
        "projectId"
       ],
       "response": {
        "$ref": "ListHistoriesResponse"
       },
       "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
       ]
      }
     },
     "resources": {
      "executions": {
       "methods": {
        "create": {
         "id": "toolresults.projects.histories.executions.create",
         "path": "{projectId}/histories/{historyId}/executions",
         "httpMethod": "POST",
         "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",
         "parameters": {
          "historyId": {
           "type": "string",
           "description": "A History id.\n\nRequired.",
           "required": true,
           "location": "path"
          },
          "projectId": {
           "type": "string",
           "description": "A Project id.\n\nRequired.",
           "required": true,
           "location": "path"
          },
          "requestId": {
           "type": "string",
           "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
           "location": "query"
          }
         },
         "parameterOrder": [
          "projectId",
          "historyId"
         ],
         "request": {
          "$ref": "Execution"
         },
         "response": {
          "$ref": "Execution"
         },
         "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
         ]
        },
        "get": {
         "id": "toolresults.projects.histories.executions.get",
         "path": "{projectId}/histories/{historyId}/executions/{executionId}",
         "httpMethod": "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",
         "parameters": {
          "executionId": {
           "type": "string",
           "description": "An Execution id.\n\nRequired.",
           "required": true,
           "location": "path"
          },
          "historyId": {
           "type": "string",
           "description": "A History id.\n\nRequired.",
           "required": true,
           "location": "path"
          },
          "projectId": {
           "type": "string",
           "description": "A Project id.\n\nRequired.",
           "required": true,
           "location": "path"
          }
         },
         "parameterOrder": [
          "projectId",
          "historyId",
          "executionId"
         ],
         "response": {
          "$ref": "Execution"
         },
         "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
         ]
        },
        "list": {
         "id": "toolresults.projects.histories.executions.list",
         "path": "{projectId}/histories/{historyId}/executions",
         "httpMethod": "GET",
         "description": "Lists Histories for a given Project.\n\nThe executions are sorted by creation_time in descending order. The execution_id key will be used to order the executions with the same creation_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",
         "parameters": {
          "historyId": {
           "type": "string",
           "description": "A History id.\n\nRequired.",
           "required": true,
           "location": "path"
          },
          "pageSize": {
           "type": "integer",
           "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"
          },
          "pageToken": {
           "type": "string",
           "description": "A continuation token to resume the query at the next item.\n\nOptional.",
           "location": "query"
          },
          "projectId": {
           "type": "string",
           "description": "A Project id.\n\nRequired.",
           "required": true,
           "location": "path"
          }
         },
         "parameterOrder": [
          "projectId",
          "historyId"
         ],
         "response": {
          "$ref": "ListExecutionsResponse"
         },
         "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
         ]
        },
        "patch": {
         "id": "toolresults.projects.histories.executions.patch",
         "path": "{projectId}/histories/{historyId}/executions/{executionId}",
         "httpMethod": "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",
         "parameters": {
          "executionId": {
           "type": "string",
           "description": "Required.",
           "required": true,
           "location": "path"
          },
          "historyId": {
           "type": "string",
           "description": "Required.",
           "required": true,
           "location": "path"
          },
          "projectId": {
           "type": "string",
           "description": "A Project id. Required.",
           "required": true,
           "location": "path"
          },
          "requestId": {
           "type": "string",
           "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
           "location": "query"
          }
         },
         "parameterOrder": [
          "projectId",
          "historyId",
          "executionId"
         ],
         "request": {
          "$ref": "Execution"
         },
         "response": {
          "$ref": "Execution"
         },
         "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
         ]
        }
       },
       "resources": {
        "steps": {
         "methods": {
          "create": {
           "id": "toolresults.projects.histories.executions.steps.create",
           "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps",
           "httpMethod": "POST",
           "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",
           "parameters": {
            "executionId": {
             "type": "string",
             "description": "A Execution id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "historyId": {
             "type": "string",
             "description": "A History id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "projectId": {
             "type": "string",
             "description": "A Project id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "requestId": {
             "type": "string",
             "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
             "location": "query"
            }
           },
           "parameterOrder": [
            "projectId",
            "historyId",
            "executionId"
           ],
           "request": {
            "$ref": "Step"
           },
           "response": {
            "$ref": "Step"
           },
           "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
           ]
          },
          "get": {
           "id": "toolresults.projects.histories.executions.steps.get",
           "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
           "httpMethod": "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",
           "parameters": {
            "executionId": {
             "type": "string",
             "description": "A Execution id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "historyId": {
             "type": "string",
             "description": "A History id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "projectId": {
             "type": "string",
             "description": "A Project id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "stepId": {
             "type": "string",
             "description": "A Step id.\n\nRequired.",
             "required": true,
             "location": "path"
            }
           },
           "parameterOrder": [
            "projectId",
            "historyId",
            "executionId",
            "stepId"
           ],
           "response": {
            "$ref": "Step"
           },
           "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
           ]
          },
          "list": {
           "id": "toolresults.projects.histories.executions.steps.list",
           "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps",
           "httpMethod": "GET",
           "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",
           "parameters": {
            "executionId": {
             "type": "string",
             "description": "A Execution id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "historyId": {
             "type": "string",
             "description": "A History id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "pageSize": {
             "type": "integer",
             "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"
            },
            "pageToken": {
             "type": "string",
             "description": "A continuation token to resume the query at the next item.\n\nOptional.",
             "location": "query"
            },
            "projectId": {
             "type": "string",
             "description": "A Project id.\n\nRequired.",
             "required": true,
             "location": "path"
            }
           },
           "parameterOrder": [
            "projectId",
            "historyId",
            "executionId"
           ],
           "response": {
            "$ref": "ListStepsResponse"
           },
           "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
           ]
          },
          "patch": {
           "id": "toolresults.projects.histories.executions.steps.patch",
           "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
           "httpMethod": "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",
           "parameters": {
            "executionId": {
             "type": "string",
             "description": "A Execution id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "historyId": {
             "type": "string",
             "description": "A History id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "projectId": {
             "type": "string",
             "description": "A Project id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "requestId": {
             "type": "string",
             "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
             "location": "query"
            },
            "stepId": {
             "type": "string",
             "description": "A Step id.\n\nRequired.",
             "required": true,
             "location": "path"
            }
           },
           "parameterOrder": [
            "projectId",
            "historyId",
            "executionId",
            "stepId"
           ],
           "request": {
            "$ref": "Step"
           },
           "response": {
            "$ref": "Step"
           },
           "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
           ]
          },
          "publishXunitXmlFiles": {
           "id": "toolresults.projects.histories.executions.steps.publishXunitXmlFiles",
           "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles",
           "httpMethod": "POST",
           "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",
           "parameters": {
            "executionId": {
             "type": "string",
             "description": "A Execution id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "historyId": {
             "type": "string",
             "description": "A History id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "projectId": {
             "type": "string",
             "description": "A Project id.\n\nRequired.",
             "required": true,
             "location": "path"
            },
            "stepId": {
             "type": "string",
             "description": "A Step id. Note: This step must include a TestExecutionStep.\n\nRequired.",
             "required": true,
             "location": "path"
            }
           },
           "parameterOrder": [
            "projectId",
            "historyId",
            "executionId",
            "stepId"
           ],
           "request": {
            "$ref": "PublishXunitXmlFilesRequest"
           },
           "response": {
            "$ref": "Step"
           },
           "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
           ]
          }
         },
         "resources": {
          "thumbnails": {
           "methods": {
            "list": {
             "id": "toolresults.projects.histories.executions.steps.thumbnails.list",
             "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails",
             "httpMethod": "GET",
             "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",
             "parameters": {
              "executionId": {
               "type": "string",
               "description": "An Execution id.\n\nRequired.",
               "required": true,
               "location": "path"
              },
              "historyId": {
               "type": "string",
               "description": "A History id.\n\nRequired.",
               "required": true,
               "location": "path"
              },
              "pageSize": {
               "type": "integer",
               "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"
              },
              "pageToken": {
               "type": "string",
               "description": "A continuation token to resume the query at the next item.\n\nOptional.",
               "location": "query"
              },
              "projectId": {
               "type": "string",
               "description": "A Project id.\n\nRequired.",
               "required": true,
               "location": "path"
              },
              "stepId": {
               "type": "string",
               "description": "A Step id.\n\nRequired.",
               "required": true,
               "location": "path"
              }
             },
             "parameterOrder": [
              "projectId",
              "historyId",
              "executionId",
              "stepId"
             ],
             "response": {
              "$ref": "ListStepThumbnailsResponse"
             },
             "scopes": [
              "https://www.googleapis.com/auth/cloud-platform"
             ]
            }
           }
          }
         }
        }
       }
      }
     }
    }
   }
  }
 }
}
