blob: bb9a051c9bb88aa8766e7d308ee3a1780b94576b [file] [log] [blame]
Bu Sun Kim65020912020-05-20 12:08:20 -07001<html><body>
2<style>
3
4body, h1, h2, h3, div, span, p, pre, a {
5 margin: 0;
6 padding: 0;
7 border: 0;
8 font-weight: inherit;
9 font-style: inherit;
10 font-size: 100%;
11 font-family: inherit;
12 vertical-align: baseline;
13}
14
15body {
16 font-size: 13px;
17 padding: 1em;
18}
19
20h1 {
21 font-size: 26px;
22 margin-bottom: 1em;
23}
24
25h2 {
26 font-size: 24px;
27 margin-bottom: 1em;
28}
29
30h3 {
31 font-size: 20px;
32 margin-bottom: 1em;
33 margin-top: 1em;
34}
35
36pre, code {
37 line-height: 1.5;
38 font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
39}
40
41pre {
42 margin-top: 0.5em;
43}
44
45h1, h2, h3, p {
46 font-family: Arial, sans serif;
47}
48
49h1, h2, h3 {
50 border-bottom: solid #CCC 1px;
51}
52
53.toc_element {
54 margin-top: 0.5em;
55}
56
57.firstline {
58 margin-left: 2 em;
59}
60
61.method {
62 margin-top: 1em;
63 border: solid 1px #CCC;
64 padding: 1em;
65 background: #EEE;
66}
67
68.details {
69 font-weight: bold;
70 font-size: 14px;
71}
72
73</style>
74
75<h1><a href="toolresults_v1beta3.html">Cloud Tool Results API</a> . <a href="toolresults_v1beta3.steps.html">steps</a></h1>
76<h2>Instance Methods</h2>
77<p class="toc_element">
78 <code><a href="#accessibilityClusters">accessibilityClusters(name, locale=None, x__xgafv=None)</a></code></p>
79<p class="firstline">Lists accessibility clusters for a given Step</p>
80<p class="toc_element">
81 <code><a href="#create">create(projectId, historyId, executionId, body=None, requestId=None, x__xgafv=None)</a></code></p>
82<p class="firstline">Creates a Step.</p>
83<p class="toc_element">
84 <code><a href="#get">get(projectId, historyId, executionId, stepId, x__xgafv=None)</a></code></p>
85<p class="firstline">Gets a Step.</p>
86<p class="toc_element">
87 <code><a href="#getPerfMetricsSummary">getPerfMetricsSummary(projectId, historyId, executionId, stepId, x__xgafv=None)</a></code></p>
88<p class="firstline">Retrieves a PerfMetricsSummary.</p>
89<p class="toc_element">
90 <code><a href="#list">list(projectId, historyId, executionId, pageToken=None, pageSize=None, x__xgafv=None)</a></code></p>
91<p class="firstline">Lists Steps for a given Execution.</p>
92<p class="toc_element">
93 <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
94<p class="firstline">Retrieves the next page of results.</p>
95<p class="toc_element">
96 <code><a href="#patch">patch(projectId, historyId, executionId, stepId, body=None, requestId=None, x__xgafv=None)</a></code></p>
97<p class="firstline">Updates an existing Step with the supplied partial entity.</p>
98<p class="toc_element">
99 <code><a href="#publishXunitXmlFiles">publishXunitXmlFiles(projectId, historyId, executionId, stepId, body=None, x__xgafv=None)</a></code></p>
100<p class="firstline">Publish xml files to an existing Step.</p>
101<h3>Method Details</h3>
102<div class="method">
103 <code class="details" id="accessibilityClusters">accessibilityClusters(name, locale=None, x__xgafv=None)</code>
104 <pre>Lists accessibility clusters for a given Step
105
106May return any of the following canonical error codes:
107
108- PERMISSION_DENIED - if the user is not authorized to read project
109- INVALID_ARGUMENT - if the request is malformed
110- FAILED_PRECONDITION - if an argument in the request happens to be
111 invalid; e.g. if the locale format is incorrect
112- NOT_FOUND - if the containing Step does not exist
113
114Args:
115 name: string, A full resource name of the step.
116For example, projects/my-project/histories/bh.1234567890abcdef/executions/
1171234567890123456789/steps/bs.1234567890abcdef
118
119Required. (required)
120 locale: string, The accepted format is the canonical Unicode format with hyphen as a
121delimiter. Language must be lowercase, Language Script - Capitalized,
122Region - UPPERCASE.
123See http://www.unicode.org/reports/tr35/#Unicode_locale_identifier for
124details.
125
126Required.
127 x__xgafv: string, V1 error format.
128 Allowed values
129 1 - v1 error format
130 2 - v2 error format
131
132Returns:
133 An object of the form:
134
135 { # Response message for AccessibilityService.ListStepAccessibilityClusters.
136 &quot;clusters&quot;: [ # A sequence of accessibility suggestions, grouped into clusters.
137 # Within the sequence, clusters that belong to the same SuggestionCategory
138 # should be adjacent.
139 # Within each category, clusters should be ordered by their
140 # SuggestionPriority (ERRORs first).
141 # The categories should be ordered by their highest priority cluster.
142 { # A set of similar suggestions that we suspect are closely related.
143 #
144 # This proto and most of the nested protos are branched from
145 # foxandcrown.prelaunchreport.service.SuggestionClusterProto, replacing PLR&#x27;s
146 # dependencies with FTL&#x27;s.
147 &quot;suggestions&quot;: [ # A sequence of suggestions. All of the suggestions within a cluster must
148 # have the same SuggestionPriority and belong to the same SuggestionCategory.
149 # Suggestions with the same screenshot URL should be adjacent.
150 {
151 &quot;title&quot;: &quot;A String&quot;, # General title for the suggestion, in the user&#x27;s language, without markup.
152 # Always set.
153 &quot;priority&quot;: &quot;A String&quot;, # Relative importance of a suggestion.
154 # Always set.
155 &quot;resourceName&quot;: &quot;A String&quot;, # Reference to a view element, identified by its resource name, if it has
156 # one.
157 &quot;secondaryPriority&quot;: 3.14, # Relative importance of a suggestion as compared with other suggestions
158 # that have the same priority and category.
159 # This is a meaningless value that can be used to order suggestions that are
160 # in the same category and have the same priority.
161 # The larger values have higher priority (i.e., are more important).
162 # Optional.
163 &quot;region&quot;: { # A rectangular region. # Region within the screenshot that is relevant to this suggestion.
164 # Optional.
165 &quot;leftPx&quot;: 42, # The left side of the rectangle, in pixels.
166 # Always set.
167 &quot;topPx&quot;: 42, # The top of the rectangle, in pixels.
168 # Always set.
169 &quot;heightPx&quot;: 42, # The height, in pixels.
170 # Always set.
171 &quot;widthPx&quot;: 42, # The width, in pixels.
172 # Always set.
173 },
174 &quot;pseudoResourceId&quot;: &quot;A String&quot;, # A somewhat human readable identifier of the source view, if it does not
175 # have a resource_name. This is a path within the accessibility hierarchy,
176 # an element with resource name; similar to an XPath.
177 &quot;helpUrl&quot;: &quot;A String&quot;, # Reference to a help center article concerning this type of suggestion.
178 # Always set.
179 &quot;longMessage&quot;: { # IMPORTANT: It is unsafe to accept this message from an untrusted source, # Message, in the user&#x27;s language, explaining the suggestion, which may
180 # contain markup.
181 # Always set.
182 # since it&#x27;s trivial for an attacker to forge serialized messages that
183 # don&#x27;t fulfill the type&#x27;s safety contract -- for example, it could contain
184 # attacker controlled script. A system which receives a SafeHtmlProto
185 # implicitly trusts the producer of the SafeHtmlProto. So, it&#x27;s generally safe
186 # to return this message in RPC responses, but generally unsafe to accept it
187 # in RPC requests.
188 &quot;privateDoNotAccessOrElseSafeHtmlWrappedValue&quot;: &quot;A String&quot;, # IMPORTANT: Never set or read this field, even from tests, it is private.
189 # See documentation at the top of .proto file for programming language
190 # packages with which to create or read this message.
191 },
192 &quot;shortMessage&quot;: { # IMPORTANT: It is unsafe to accept this message from an untrusted source, # Concise message, in the user&#x27;s language, representing the suggestion,
193 # which may contain markup.
194 # Always set.
195 # since it&#x27;s trivial for an attacker to forge serialized messages that
196 # don&#x27;t fulfill the type&#x27;s safety contract -- for example, it could contain
197 # attacker controlled script. A system which receives a SafeHtmlProto
198 # implicitly trusts the producer of the SafeHtmlProto. So, it&#x27;s generally safe
199 # to return this message in RPC responses, but generally unsafe to accept it
200 # in RPC requests.
201 &quot;privateDoNotAccessOrElseSafeHtmlWrappedValue&quot;: &quot;A String&quot;, # IMPORTANT: Never set or read this field, even from tests, it is private.
202 # See documentation at the top of .proto file for programming language
203 # packages with which to create or read this message.
204 },
205 &quot;screenId&quot;: &quot;A String&quot;, # ID of the screen for the suggestion.
206 # It is used for getting the corresponding screenshot path. For example,
207 # screen_id &quot;1&quot; corresponds to &quot;1.png&quot; file in GCS.
208 # Always set.
209 },
210 ],
211 &quot;category&quot;: &quot;A String&quot;, # Category in which these types of suggestions should appear.
212 # Always set.
213 },
214 ],
215 &quot;name&quot;: &quot;A String&quot;, # A full resource name of the step.
216 # For example, projects/my-project/histories/bh.1234567890abcdef/executions/
217 # 1234567890123456789/steps/bs.1234567890abcdef
218 #
219 # Always presents.
220 }</pre>
221</div>
222
223<div class="method">
224 <code class="details" id="create">create(projectId, historyId, executionId, body=None, requestId=None, x__xgafv=None)</code>
225 <pre>Creates a Step.
226
227The returned Step will have the id set.
228
229May return any of the following canonical error codes:
230
231- PERMISSION_DENIED - if the user is not authorized to write to project
232- INVALID_ARGUMENT - if the request is malformed
233- FAILED_PRECONDITION - if the step is too large (more than 10Mib)
234- NOT_FOUND - if the containing Execution does not exist
235
236Args:
237 projectId: string, Required. A Project id. (required)
238 historyId: string, Required. A History id. (required)
239 executionId: string, Required. An Execution id. (required)
240 body: object, The request body.
241 The object takes the form of:
242
243{ # A Step represents a single operation performed as part of
244 # Execution. A step can be used to represent the execution of a tool (
245 # for example a test runner execution or an execution of a compiler).
246 #
247 # Steps can overlap (for instance two steps might have the same
248 # start time if some operations are done in parallel).
249 #
250 # Here is an example, let&#x27;s consider that we have a continuous build is
251 # executing a test runner for each iteration. The workflow would look like:
252 # - user creates a Execution with id 1
253 # - user creates an TestExecutionStep with id 100 for Execution 1
254 # - user update TestExecutionStep with id 100 to add a raw xml log
255 # + the service parses the xml logs and returns a TestExecutionStep with
256 # updated TestResult(s).
257 # - user update the status of TestExecutionStep with id 100 to COMPLETE
258 #
259 # A Step can be updated until its state is set to COMPLETE at which
260 # points it becomes immutable.
261 #
262 # Next tag: 27
263 &quot;hasImages&quot;: True or False, # Whether any of the outputs of this step are images whose
264 # thumbnails can be fetched with ListThumbnails.
265 #
266 # - In response: always set
267 # - In create/update request: never set
268 &quot;runDuration&quot;: { # # How long it took for this step to run.
269 #
270 # If unset, this is set to the difference between creation_time and
271 # completion_time when the step is set to the COMPLETE state. In some cases,
272 # it is appropriate to set this value separately: For instance, if a step is
273 # created, but the operation it represents is queued for a few minutes before
274 # it executes, it would be appropriate not to include the time spent queued
275 # in its run_duration.
276 #
277 # PRECONDITION_FAILED will be returned if one attempts to set a
278 # run_duration on a step which already has this field set.
279 #
280 # - In response: present if previously set; always present on COMPLETE step
281 # - In create request: optional
282 # - In update request: optional
283 # A Duration represents a signed, fixed-length span of time represented
284 # as a count of seconds and fractions of seconds at nanosecond
285 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
286 # or &quot;month&quot;. It is related to Timestamp in that the difference between
287 # two Timestamp values is a Duration and it can be added or subtracted
288 # from a Timestamp. Range is approximately +-10,000 years.
289 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
290 # of time. Durations less than one second are represented with a 0
291 # `seconds` field and a positive or negative `nanos` field. For durations
292 # of one second or more, a non-zero value for the `nanos` field must be
293 # of the same sign as the `seconds` field. Must be from -999,999,999
294 # to +999,999,999 inclusive.
295 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
296 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
297 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
298 },
299 &quot;description&quot;: &quot;A String&quot;, # A description of this tool
300 # For example: mvn clean package -D skipTests=true
301 #
302 # - In response: present if set by create/update request
303 # - In create/update request: optional
304 &quot;testExecutionStep&quot;: { # A step that represents running tests. # An execution of a test runner.
305 #
306 # It accepts ant-junit xml files which will be parsed into structured test
307 # results by the service. Xml file paths are updated in order to append more
308 # files, however they can&#x27;t be deleted.
309 #
310 # Users can also add test results manually by using the test_result field.
311 &quot;testIssues&quot;: [ # Issues observed during the test execution.
312 #
313 # For example, if the mobile app under test crashed during the test,
314 # the error message and the stack trace content can be recorded here
315 # to assist debugging.
316 #
317 # - In response: present if set by create or update
318 # - In create/update request: optional
319 { # An issue detected occurring during a test execution.
320 &quot;warning&quot;: { # # Warning message with additional details of the issue.
321 # Should always be a message from com.google.devtools.toolresults.v1.warnings
322 # `Any` contains an arbitrary serialized protocol buffer message along with a
323 # URL that describes the type of the serialized message.
324 #
325 # Protobuf library provides support to pack/unpack Any values in the form
326 # of utility functions or additional generated methods of the Any type.
327 #
328 # Example 1: Pack and unpack a message in C++.
329 #
330 # Foo foo = ...;
331 # Any any;
332 # any.PackFrom(foo);
333 # ...
334 # if (any.UnpackTo(&amp;foo)) {
335 # ...
336 # }
337 #
338 # Example 2: Pack and unpack a message in Java.
339 #
340 # Foo foo = ...;
341 # Any any = Any.pack(foo);
342 # ...
343 # if (any.is(Foo.class)) {
344 # foo = any.unpack(Foo.class);
345 # }
346 #
347 # Example 3: Pack and unpack a message in Python.
348 #
349 # foo = Foo(...)
350 # any = Any()
351 # any.Pack(foo)
352 # ...
353 # if any.Is(Foo.DESCRIPTOR):
354 # any.Unpack(foo)
355 # ...
356 #
357 # Example 4: Pack and unpack a message in Go
358 #
359 # foo := &amp;pb.Foo{...}
360 # any, err := ptypes.MarshalAny(foo)
361 # ...
362 # foo := &amp;pb.Foo{}
363 # if err := ptypes.UnmarshalAny(any, foo); err != nil {
364 # ...
365 # }
366 #
367 # The pack methods provided by protobuf library will by default use
368 # &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack
369 # methods only use the fully qualified type name after the last &#x27;/&#x27;
370 # in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type
371 # name &quot;y.z&quot;.
372 #
373 #
374 # # JSON
375 #
376 # The JSON representation of an `Any` value uses the regular
377 # representation of the deserialized, embedded message, with an
378 # additional field `@type` which contains the type URL. Example:
379 #
380 # package google.profile;
381 # message Person {
382 # string first_name = 1;
383 # string last_name = 2;
384 # }
385 #
386 # {
387 # &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;,
388 # &quot;firstName&quot;: &lt;string&gt;,
389 # &quot;lastName&quot;: &lt;string&gt;
390 # }
391 #
392 # If the embedded message type is well-known and has a custom JSON
393 # representation, that representation will be embedded adding a field
394 # `value` which holds the custom JSON in addition to the `@type`
395 # field. Example (for message google.protobuf.Duration):
396 #
397 # {
398 # &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;,
399 # &quot;value&quot;: &quot;1.212s&quot;
400 # }
401 &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized
402 # protocol buffer message. This string must contain at least
403 # one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent
404 # the fully qualified name of the type (as in
405 # `path/google.protobuf.Duration`). The name should be in a canonical form
406 # (e.g., leading &quot;.&quot; is not accepted).
407 #
408 # In practice, teams usually precompile into the binary all types that they
409 # expect it to use in the context of Any. However, for URLs which use the
410 # scheme `http`, `https`, or no scheme, one can optionally set up a type
411 # server that maps type URLs to message definitions as follows:
412 #
413 # * If no scheme is provided, `https` is assumed.
414 # * An HTTP GET on the URL must yield a google.protobuf.Type
415 # value in binary format, or produce an error.
416 # * Applications are allowed to cache lookup results based on the
417 # URL, or have them precompiled into a binary to avoid any
418 # lookup. Therefore, binary compatibility needs to be preserved
419 # on changes to types. (Use versioned type names to manage
420 # breaking changes.)
421 #
422 # Note: this functionality is not currently available in the official
423 # protobuf release, and it is not used for type URLs beginning with
424 # type.googleapis.com.
425 #
426 # Schemes other than `http`, `https` (or the empty scheme) might be
427 # used with implementation specific semantics.
428 &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
429 },
430 &quot;severity&quot;: &quot;A String&quot;, # Severity of issue.
431 # Required.
432 &quot;stackTrace&quot;: { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings.
433 &quot;exception&quot;: &quot;A String&quot;, # The stack trace message.
434 #
435 # Required
436 },
437 &quot;type&quot;: &quot;A String&quot;, # Type of issue.
438 # Required.
439 &quot;errorMessage&quot;: &quot;A String&quot;, # A brief human-readable message describing the issue.
440 # Required.
441 &quot;category&quot;: &quot;A String&quot;, # Category of issue.
442 # Required.
443 },
444 ],
445 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner.
446 #
447 # The exit code of this tool will be used to determine if the test passed.
448 #
449 # - In response: always set
450 # - In create/update request: optional
451 # copying artifacts or deploying code.
452 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
453 # argv in a C program).
454 #
455 # - In response: present if set by create request
456 # - In create request: optional
457 # - In update request: never set
458 &quot;A String&quot;,
459 ],
460 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
461 # exited.
462 #
463 # - In response: present if set by create/update request
464 # - In create request: optional
465 # - In update request: optional, a FAILED_PRECONDITION error will be
466 # returned if an exit_code is already set.
467 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
468 # successful.
469 #
470 # - In response: always set
471 # - In create/update request: always set
472 },
473 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
474 #
475 # This field can be set before the tool has exited in order to be able to
476 # have access to a live view of the logs while the tool is running.
477 #
478 # The maximum allowed number of tool logs per step is 1000.
479 #
480 # - In response: present if set by create/update request
481 # - In create request: optional
482 # - In update request: optional, any value provided will be appended to the
483 # existing list
484 { # A reference to a file.
485 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
486 #
487 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
488 # or in gsutil format: gs://mybucket/path/to/test.xml
489 # with version-specific info,
490 # gs://mybucket/path/to/test.xml#1360383693690000
491 #
492 # An INVALID_ARGUMENT error will be returned if the URI format is not
493 # supported.
494 #
495 # - In response: always set
496 # - In create/update request: always set
497 },
498 ],
499 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
500 #
501 # The maximum allowed number of tool outputs per step is 1000.
502 #
503 # - In response: present if set by create/update request
504 # - In create request: optional
505 # - In update request: optional, any value provided will be appended to the
506 # existing list
507 { # A reference to a ToolExecution output file.
508 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
509 #
510 # - In response: present if set by create/update request
511 # - In create/update request: optional
512 # calendar, encoded as a count of seconds and fractions of seconds at
513 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
514 # January 1, 1970, in the proleptic Gregorian calendar which extends the
515 # Gregorian calendar backwards to year one.
516 #
517 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
518 # second table is needed for interpretation, using a [24-hour linear
519 # smear](https://developers.google.com/time/smear).
520 #
521 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
522 # restricting to that range, we ensure that we can convert to and from [RFC
523 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
524 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
525 # second values with fractions must still have non-negative nanos values
526 # that count forward in time. Must be from 0 to 999,999,999
527 # inclusive.
528 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
529 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
530 # 9999-12-31T23:59:59Z inclusive.
531 },
532 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
533 #
534 # - In response: always set
535 # - In create/update request: always set
536 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
537 #
538 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
539 # or in gsutil format: gs://mybucket/path/to/test.xml
540 # with version-specific info,
541 # gs://mybucket/path/to/test.xml#1360383693690000
542 #
543 # An INVALID_ARGUMENT error will be returned if the URI format is not
544 # supported.
545 #
546 # - In response: always set
547 # - In create/update request: always set
548 },
549 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
550 #
551 # - In response: present if set by create/update request
552 # - In create/update request: optional
553 #
554 # Test case references are canonically ordered lexicographically by these three
555 # factors:
556 # * First, by test_suite_name.
557 # * Second, by class_name.
558 # * Third, by name.
559 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
560 #
561 # Required.
562 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
563 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
564 },
565 },
566 ],
567 },
568 &quot;testSuiteOverviews&quot;: [ # List of test suite overview contents. This could be parsed from xUnit XML
569 # log by server, or uploaded directly by user. This references should only be
570 # called when test suites are fully parsed or uploaded.
571 #
572 # The maximum allowed number of test suite overviews per step is 1000.
573 #
574 # - In response: always set
575 # - In create request: optional
576 # - In update request: never (use publishXunitXmlFiles custom method instead)
577 { # A summary of a test suite result either parsed from XML or uploaded
578 # directly by a user.
579 #
580 # Note: the API related comments are for StepService only. This message is
581 # also being used in ExecutionService in a read only mode for the corresponding
582 # step.
583 &quot;name&quot;: &quot;A String&quot;, # The name of the test suite.
584 #
585 # - In create/response: always set
586 # - In update request: never
587 &quot;elapsedTime&quot;: { # # Elapsed time of test suite.
588 # A Duration represents a signed, fixed-length span of time represented
589 # as a count of seconds and fractions of seconds at nanosecond
590 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
591 # or &quot;month&quot;. It is related to Timestamp in that the difference between
592 # two Timestamp values is a Duration and it can be added or subtracted
593 # from a Timestamp. Range is approximately +-10,000 years.
594 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
595 # of time. Durations less than one second are represented with a 0
596 # `seconds` field and a positive or negative `nanos` field. For durations
597 # of one second or more, a non-zero value for the `nanos` field must be
598 # of the same sign as the `seconds` field. Must be from -999,999,999
599 # to +999,999,999 inclusive.
600 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
601 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
602 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
603 },
604 &quot;flakyCount&quot;: 42, # Number of flaky test cases, set by the service by rolling up flaky test
605 # attempts.
606 #
607 # Present only for rollup test suite overview at environment level. A step
608 # cannot have flaky test cases.
609 &quot;errorCount&quot;: 42, # Number of test cases in error, typically set by the service by parsing the
610 # xml_source.
611 #
612 # - In create/response: always set
613 # - In update request: never
614 &quot;totalCount&quot;: 42, # Number of test cases, typically set by the service by parsing the
615 # xml_source.
616 #
617 # - In create/response: always set
618 # - In update request: never
619 &quot;skippedCount&quot;: 42, # Number of test cases not run, typically set by the service by parsing the
620 # xml_source.
621 #
622 # - In create/response: always set
623 # - In update request: never
624 &quot;xmlSource&quot;: { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original
625 # XML file is stored.
626 #
627 # Note: Multiple test suites can share the same xml_source
628 #
629 # Returns INVALID_ARGUMENT if the uri format is not supported.
630 #
631 # - In create/response: optional
632 # - In update request: never
633 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
634 #
635 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
636 # or in gsutil format: gs://mybucket/path/to/test.xml
637 # with version-specific info,
638 # gs://mybucket/path/to/test.xml#1360383693690000
639 #
640 # An INVALID_ARGUMENT error will be returned if the URI format is not
641 # supported.
642 #
643 # - In response: always set
644 # - In create/update request: always set
645 },
646 &quot;failureCount&quot;: 42, # Number of failed test cases, typically set by the service by parsing the
647 # xml_source. May also be set by the user.
648 #
649 # - In create/response: always set
650 # - In update request: never
651 },
652 ],
653 &quot;testTiming&quot;: { # Testing timing break down to know phases. # The timing break down of the test execution.
654 #
655 # - In response: present if set by create or update
656 # - In create/update request: optional
657 &quot;testProcessDuration&quot;: { # # How long it took to run the test process.
658 #
659 # - In response: present if previously set.
660 # - In create/update request: optional
661 # A Duration represents a signed, fixed-length span of time represented
662 # as a count of seconds and fractions of seconds at nanosecond
663 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
664 # or &quot;month&quot;. It is related to Timestamp in that the difference between
665 # two Timestamp values is a Duration and it can be added or subtracted
666 # from a Timestamp. Range is approximately +-10,000 years.
667 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
668 # of time. Durations less than one second are represented with a 0
669 # `seconds` field and a positive or negative `nanos` field. For durations
670 # of one second or more, a non-zero value for the `nanos` field must be
671 # of the same sign as the `seconds` field. Must be from -999,999,999
672 # to +999,999,999 inclusive.
673 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
674 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
675 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
676 },
677 },
678 },
679 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created.
680 #
681 # - In response: always set
682 # - In create/update request: never set
683 # calendar, encoded as a count of seconds and fractions of seconds at
684 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
685 # January 1, 1970, in the proleptic Gregorian calendar which extends the
686 # Gregorian calendar backwards to year one.
687 #
688 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
689 # second table is needed for interpretation, using a [24-hour linear
690 # smear](https://developers.google.com/time/smear).
691 #
692 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
693 # restricting to that range, we ensure that we can convert to and from [RFC
694 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
695 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
696 # second values with fractions must still have non-negative nanos values
697 # that count forward in time. Must be from 0 to 999,999,999
698 # inclusive.
699 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
700 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
701 # 9999-12-31T23:59:59Z inclusive.
702 },
703 &quot;state&quot;: &quot;A String&quot;, # The initial state is IN_PROGRESS.
704 # The only legal state transitions are
705 # * IN_PROGRESS -&gt; COMPLETE
706 #
707 # A PRECONDITION_FAILED will be returned if an invalid transition is
708 # requested.
709 #
710 # It is valid to create Step with a state set to COMPLETE.
711 # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be
712 # returned if the state is set to COMPLETE multiple times.
713 #
714 # - In response: always set
715 # - In create/update request: optional
716 &quot;name&quot;: &quot;A String&quot;, # A short human-readable name to display in the UI.
717 # Maximum of 100 characters.
718 # For example: Clean build
719 #
720 # A PRECONDITION_FAILED will be returned upon creating a new step if it
721 # shares its name and dimension_value with an existing step. If two steps
722 # represent a similar action, but have different dimension values, they
723 # should share the same name. For instance, if the same set of tests is
724 # run on two different platforms, the two steps should have the same name.
725 #
726 # - In response: always set
727 # - In create request: always set
728 # - In update request: never set
729 &quot;dimensionValue&quot;: [ # If the execution containing this step has any dimension_definition set,
730 # then this field allows the child to specify the values of the dimensions.
731 #
732 # The keys must exactly match the dimension_definition of the execution.
733 #
734 # For example, if the execution has
735 # `dimension_definition = [&#x27;attempt&#x27;, &#x27;device&#x27;]`
736 # then a step must define values for those dimensions, eg.
737 # `dimension_value = [&#x27;attempt&#x27;: &#x27;1&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
738 #
739 # If a step does not participate in one dimension of the matrix,
740 # the value for that dimension should be empty string.
741 # For example, if one of the tests is executed by a runner which
742 # does not support retries, the step could have
743 # `dimension_value = [&#x27;attempt&#x27;: &#x27;&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
744 #
745 # If the step does not participate in any dimensions of the matrix,
746 # it may leave dimension_value unset.
747 #
748 # A PRECONDITION_FAILED will be returned if any of the keys do not exist
749 # in the dimension_definition of the execution.
750 #
751 # A PRECONDITION_FAILED will be returned if another step in this execution
752 # already has the same name and dimension_value, but differs on other data
753 # fields, for example, step field is different.
754 #
755 # A PRECONDITION_FAILED will be returned if dimension_value is set, and
756 # there is a dimension_definition in the execution which is not specified
757 # as one of the keys.
758 #
759 # - In response: present if set by create
760 # - In create request: optional
761 # - In update request: never set
762 {
763 &quot;value&quot;: &quot;A String&quot;,
764 &quot;key&quot;: &quot;A String&quot;,
765 },
766 ],
767 &quot;completionTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete.
768 #
769 # This value will be set automatically when state transitions to
770 # COMPLETE.
771 #
772 # - In response: set if the execution state is COMPLETE.
773 # - In create/update request: never set
774 # calendar, encoded as a count of seconds and fractions of seconds at
775 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
776 # January 1, 1970, in the proleptic Gregorian calendar which extends the
777 # Gregorian calendar backwards to year one.
778 #
779 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
780 # second table is needed for interpretation, using a [24-hour linear
781 # smear](https://developers.google.com/time/smear).
782 #
783 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
784 # restricting to that range, we ensure that we can convert to and from [RFC
785 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
786 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
787 # second values with fractions must still have non-negative nanos values
788 # that count forward in time. Must be from 0 to 999,999,999
789 # inclusive.
790 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
791 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
792 # 9999-12-31T23:59:59Z inclusive.
793 },
794 &quot;multiStep&quot;: { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group.
795 # These details can be used identify which group this step is part of.
796 # It also identifies the groups &#x27;primary step&#x27; which indexes all the group
797 # members.
798 #
799 # - In response: present if previously set.
800 # - In create request: optional, set iff this step was performed more than
801 # once.
802 # - In update request: optional
803 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
804 # Ranges from 0(inclusive) to total number of steps(exclusive).
805 # The primary step is 0.
806 &quot;primaryStepId&quot;: &quot;A String&quot;, # Step Id of the primary (original) step, which might be this step.
807 &quot;primaryStep&quot;: { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step.
808 # outcome of each individual step.
809 &quot;rollUp&quot;: &quot;A String&quot;, # Rollup test status of multiple steps that were run with the same
810 # configuration as a group.
811 &quot;individualOutcome&quot;: [ # Step Id and outcome of each individual step.
812 { # Step Id and outcome of each individual step that was run as a group with
813 # other steps with the same configuration.
814 &quot;runDuration&quot;: { # # How long it took for this step to run.
815 # A Duration represents a signed, fixed-length span of time represented
816 # as a count of seconds and fractions of seconds at nanosecond
817 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
818 # or &quot;month&quot;. It is related to Timestamp in that the difference between
819 # two Timestamp values is a Duration and it can be added or subtracted
820 # from a Timestamp. Range is approximately +-10,000 years.
821 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
822 # of time. Durations less than one second are represented with a 0
823 # `seconds` field and a positive or negative `nanos` field. For durations
824 # of one second or more, a non-zero value for the `nanos` field must be
825 # of the same sign as the `seconds` field. Must be from -999,999,999
826 # to +999,999,999 inclusive.
827 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
828 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
829 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
830 },
831 &quot;stepId&quot;: &quot;A String&quot;,
832 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
833 # Ranges from 0(inclusive) to total number of steps(exclusive).
834 # The primary step is 0.
835 &quot;outcomeSummary&quot;: &quot;A String&quot;,
836 },
837 ],
838 },
839 },
840 &quot;stepId&quot;: &quot;A String&quot;, # A unique identifier within a Execution for this Step.
841 #
842 # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
843 #
844 # - In response: always set
845 # - In create/update request: never set
846 &quot;outcome&quot;: { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
847 #
848 # - In response: present if set by create/update request
849 # - In create/update request: optional
850 &quot;summary&quot;: &quot;A String&quot;, # The simplest way to interpret a result.
851 #
852 # Required
853 &quot;failureDetail&quot;: { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
854 #
855 # Returns INVALID_ARGUMENT if this field is set
856 # but the summary is not FAILURE.
857 #
858 # Optional
859 &quot;unableToCrawl&quot;: True or False, # If the robo was unable to crawl the app; perhaps because the app did not
860 # start.
861 &quot;notInstalled&quot;: True or False, # If an app is not installed and thus no test can be run with the app.
862 # This might be caused by trying to run a test on an unsupported platform.
863 &quot;timedOut&quot;: True or False, # If the test overran some time limit, and that is why it failed.
864 &quot;otherNativeCrash&quot;: True or False, # If a native process (including any other than the app) crashed.
865 &quot;crashed&quot;: True or False, # If the failure was severe because the system (app) under test crashed.
866 },
867 &quot;inconclusiveDetail&quot;: { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome.
868 #
869 # Returns INVALID_ARGUMENT if this field is set
870 # but the summary is not INCONCLUSIVE.
871 #
872 # Optional
873 &quot;hasErrorLogs&quot;: True or False, # If results are being provided to the user in certain cases of
874 # infrastructure failures
875 &quot;infrastructureFailure&quot;: True or False, # If the test runner could not determine success or failure because the test
876 # depends on a component other than the system under test which failed.
877 #
878 # For example, a mobile test requires provisioning a device where the test
879 # executes, and that provisioning can fail.
880 &quot;abortedByUser&quot;: True or False, # If the end user aborted the test execution before a pass or fail could be
881 # determined.
882 # For example, the user pressed ctrl-c which sent a kill signal to the test
883 # runner while the test was running.
884 },
885 &quot;successDetail&quot;: { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome.
886 #
887 # Returns INVALID_ARGUMENT if this field is set
888 # but the summary is not SUCCESS.
889 #
890 # Optional
891 # LINT.IfChange
892 &quot;otherNativeCrash&quot;: True or False, # If a native process other than the app crashed.
893 },
894 &quot;skippedDetail&quot;: { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
895 #
896 # Returns INVALID_ARGUMENT if this field is set
897 # but the summary is not SKIPPED.
898 #
899 # Optional
900 &quot;incompatibleAppVersion&quot;: True or False, # If the App doesn&#x27;t support the specific API level.
901 &quot;incompatibleDevice&quot;: True or False, # If the requested OS version doesn&#x27;t run on the specific device model.
902 &quot;incompatibleArchitecture&quot;: True or False, # If the App doesn&#x27;t run on the specific architecture, for example, x86.
903 },
904 },
905 &quot;toolExecutionStep&quot;: { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don&#x27;t explicitly support).
906 # For example: running cp to copy artifacts from one location to another.
907 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution.
908 #
909 # - In response: present if set by create/update request
910 # - In create/update request: optional
911 # copying artifacts or deploying code.
912 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
913 # argv in a C program).
914 #
915 # - In response: present if set by create request
916 # - In create request: optional
917 # - In update request: never set
918 &quot;A String&quot;,
919 ],
920 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
921 # exited.
922 #
923 # - In response: present if set by create/update request
924 # - In create request: optional
925 # - In update request: optional, a FAILED_PRECONDITION error will be
926 # returned if an exit_code is already set.
927 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
928 # successful.
929 #
930 # - In response: always set
931 # - In create/update request: always set
932 },
933 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
934 #
935 # This field can be set before the tool has exited in order to be able to
936 # have access to a live view of the logs while the tool is running.
937 #
938 # The maximum allowed number of tool logs per step is 1000.
939 #
940 # - In response: present if set by create/update request
941 # - In create request: optional
942 # - In update request: optional, any value provided will be appended to the
943 # existing list
944 { # A reference to a file.
945 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
946 #
947 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
948 # or in gsutil format: gs://mybucket/path/to/test.xml
949 # with version-specific info,
950 # gs://mybucket/path/to/test.xml#1360383693690000
951 #
952 # An INVALID_ARGUMENT error will be returned if the URI format is not
953 # supported.
954 #
955 # - In response: always set
956 # - In create/update request: always set
957 },
958 ],
959 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
960 #
961 # The maximum allowed number of tool outputs per step is 1000.
962 #
963 # - In response: present if set by create/update request
964 # - In create request: optional
965 # - In update request: optional, any value provided will be appended to the
966 # existing list
967 { # A reference to a ToolExecution output file.
968 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
969 #
970 # - In response: present if set by create/update request
971 # - In create/update request: optional
972 # calendar, encoded as a count of seconds and fractions of seconds at
973 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
974 # January 1, 1970, in the proleptic Gregorian calendar which extends the
975 # Gregorian calendar backwards to year one.
976 #
977 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
978 # second table is needed for interpretation, using a [24-hour linear
979 # smear](https://developers.google.com/time/smear).
980 #
981 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
982 # restricting to that range, we ensure that we can convert to and from [RFC
983 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
984 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
985 # second values with fractions must still have non-negative nanos values
986 # that count forward in time. Must be from 0 to 999,999,999
987 # inclusive.
988 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
989 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
990 # 9999-12-31T23:59:59Z inclusive.
991 },
992 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
993 #
994 # - In response: always set
995 # - In create/update request: always set
996 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
997 #
998 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
999 # or in gsutil format: gs://mybucket/path/to/test.xml
1000 # with version-specific info,
1001 # gs://mybucket/path/to/test.xml#1360383693690000
1002 #
1003 # An INVALID_ARGUMENT error will be returned if the URI format is not
1004 # supported.
1005 #
1006 # - In response: always set
1007 # - In create/update request: always set
1008 },
1009 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
1010 #
1011 # - In response: present if set by create/update request
1012 # - In create/update request: optional
1013 #
1014 # Test case references are canonically ordered lexicographically by these three
1015 # factors:
1016 # * First, by test_suite_name.
1017 # * Second, by class_name.
1018 # * Third, by name.
1019 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
1020 #
1021 # Required.
1022 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
1023 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
1024 },
1025 },
1026 ],
1027 },
1028 },
1029 &quot;deviceUsageDuration&quot;: { # # How much the device resource is used to perform the test.
1030 #
1031 # This is the device usage used for billing purpose, which is different from
1032 # the run_duration, for example, infrastructure failure won&#x27;t be charged for
1033 # device usage.
1034 #
1035 # PRECONDITION_FAILED will be returned if one attempts to set a
1036 # device_usage on a step which already has this field set.
1037 #
1038 # - In response: present if previously set.
1039 # - In create request: optional
1040 # - In update request: optional
1041 # A Duration represents a signed, fixed-length span of time represented
1042 # as a count of seconds and fractions of seconds at nanosecond
1043 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
1044 # or &quot;month&quot;. It is related to Timestamp in that the difference between
1045 # two Timestamp values is a Duration and it can be added or subtracted
1046 # from a Timestamp. Range is approximately +-10,000 years.
1047 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
1048 # of time. Durations less than one second are represented with a 0
1049 # `seconds` field and a positive or negative `nanos` field. For durations
1050 # of one second or more, a non-zero value for the `nanos` field must be
1051 # of the same sign as the `seconds` field. Must be from -999,999,999
1052 # to +999,999,999 inclusive.
1053 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
1054 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
1055 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
1056 },
1057 &quot;labels&quot;: [ # Arbitrary user-supplied key/value pairs that are associated with the
1058 # step.
1059 #
1060 # Users are responsible for managing the key namespace such that keys
1061 # don&#x27;t accidentally collide.
1062 #
1063 # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or
1064 # if the length of any of the keys or values exceeds 100 characters.
1065 #
1066 # - In response: always set
1067 # - In create request: optional
1068 # - In update request: optional; any new key/value pair will be added to the
1069 # map, and any new value for an existing key will update that key&#x27;s value
1070 {
1071 &quot;value&quot;: &quot;A String&quot;,
1072 &quot;key&quot;: &quot;A String&quot;,
1073 },
1074 ],
1075 }
1076
1077 requestId: string, A unique request ID for server to detect duplicated requests.
1078For example, a UUID.
1079
1080Optional, but strongly recommended.
1081 x__xgafv: string, V1 error format.
1082 Allowed values
1083 1 - v1 error format
1084 2 - v2 error format
1085
1086Returns:
1087 An object of the form:
1088
1089 { # A Step represents a single operation performed as part of
1090 # Execution. A step can be used to represent the execution of a tool (
1091 # for example a test runner execution or an execution of a compiler).
1092 #
1093 # Steps can overlap (for instance two steps might have the same
1094 # start time if some operations are done in parallel).
1095 #
1096 # Here is an example, let&#x27;s consider that we have a continuous build is
1097 # executing a test runner for each iteration. The workflow would look like:
1098 # - user creates a Execution with id 1
1099 # - user creates an TestExecutionStep with id 100 for Execution 1
1100 # - user update TestExecutionStep with id 100 to add a raw xml log
1101 # + the service parses the xml logs and returns a TestExecutionStep with
1102 # updated TestResult(s).
1103 # - user update the status of TestExecutionStep with id 100 to COMPLETE
1104 #
1105 # A Step can be updated until its state is set to COMPLETE at which
1106 # points it becomes immutable.
1107 #
1108 # Next tag: 27
1109 &quot;hasImages&quot;: True or False, # Whether any of the outputs of this step are images whose
1110 # thumbnails can be fetched with ListThumbnails.
1111 #
1112 # - In response: always set
1113 # - In create/update request: never set
1114 &quot;runDuration&quot;: { # # How long it took for this step to run.
1115 #
1116 # If unset, this is set to the difference between creation_time and
1117 # completion_time when the step is set to the COMPLETE state. In some cases,
1118 # it is appropriate to set this value separately: For instance, if a step is
1119 # created, but the operation it represents is queued for a few minutes before
1120 # it executes, it would be appropriate not to include the time spent queued
1121 # in its run_duration.
1122 #
1123 # PRECONDITION_FAILED will be returned if one attempts to set a
1124 # run_duration on a step which already has this field set.
1125 #
1126 # - In response: present if previously set; always present on COMPLETE step
1127 # - In create request: optional
1128 # - In update request: optional
1129 # A Duration represents a signed, fixed-length span of time represented
1130 # as a count of seconds and fractions of seconds at nanosecond
1131 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
1132 # or &quot;month&quot;. It is related to Timestamp in that the difference between
1133 # two Timestamp values is a Duration and it can be added or subtracted
1134 # from a Timestamp. Range is approximately +-10,000 years.
1135 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
1136 # of time. Durations less than one second are represented with a 0
1137 # `seconds` field and a positive or negative `nanos` field. For durations
1138 # of one second or more, a non-zero value for the `nanos` field must be
1139 # of the same sign as the `seconds` field. Must be from -999,999,999
1140 # to +999,999,999 inclusive.
1141 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
1142 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
1143 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
1144 },
1145 &quot;description&quot;: &quot;A String&quot;, # A description of this tool
1146 # For example: mvn clean package -D skipTests=true
1147 #
1148 # - In response: present if set by create/update request
1149 # - In create/update request: optional
1150 &quot;testExecutionStep&quot;: { # A step that represents running tests. # An execution of a test runner.
1151 #
1152 # It accepts ant-junit xml files which will be parsed into structured test
1153 # results by the service. Xml file paths are updated in order to append more
1154 # files, however they can&#x27;t be deleted.
1155 #
1156 # Users can also add test results manually by using the test_result field.
1157 &quot;testIssues&quot;: [ # Issues observed during the test execution.
1158 #
1159 # For example, if the mobile app under test crashed during the test,
1160 # the error message and the stack trace content can be recorded here
1161 # to assist debugging.
1162 #
1163 # - In response: present if set by create or update
1164 # - In create/update request: optional
1165 { # An issue detected occurring during a test execution.
1166 &quot;warning&quot;: { # # Warning message with additional details of the issue.
1167 # Should always be a message from com.google.devtools.toolresults.v1.warnings
1168 # `Any` contains an arbitrary serialized protocol buffer message along with a
1169 # URL that describes the type of the serialized message.
1170 #
1171 # Protobuf library provides support to pack/unpack Any values in the form
1172 # of utility functions or additional generated methods of the Any type.
1173 #
1174 # Example 1: Pack and unpack a message in C++.
1175 #
1176 # Foo foo = ...;
1177 # Any any;
1178 # any.PackFrom(foo);
1179 # ...
1180 # if (any.UnpackTo(&amp;foo)) {
1181 # ...
1182 # }
1183 #
1184 # Example 2: Pack and unpack a message in Java.
1185 #
1186 # Foo foo = ...;
1187 # Any any = Any.pack(foo);
1188 # ...
1189 # if (any.is(Foo.class)) {
1190 # foo = any.unpack(Foo.class);
1191 # }
1192 #
1193 # Example 3: Pack and unpack a message in Python.
1194 #
1195 # foo = Foo(...)
1196 # any = Any()
1197 # any.Pack(foo)
1198 # ...
1199 # if any.Is(Foo.DESCRIPTOR):
1200 # any.Unpack(foo)
1201 # ...
1202 #
1203 # Example 4: Pack and unpack a message in Go
1204 #
1205 # foo := &amp;pb.Foo{...}
1206 # any, err := ptypes.MarshalAny(foo)
1207 # ...
1208 # foo := &amp;pb.Foo{}
1209 # if err := ptypes.UnmarshalAny(any, foo); err != nil {
1210 # ...
1211 # }
1212 #
1213 # The pack methods provided by protobuf library will by default use
1214 # &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack
1215 # methods only use the fully qualified type name after the last &#x27;/&#x27;
1216 # in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type
1217 # name &quot;y.z&quot;.
1218 #
1219 #
1220 # # JSON
1221 #
1222 # The JSON representation of an `Any` value uses the regular
1223 # representation of the deserialized, embedded message, with an
1224 # additional field `@type` which contains the type URL. Example:
1225 #
1226 # package google.profile;
1227 # message Person {
1228 # string first_name = 1;
1229 # string last_name = 2;
1230 # }
1231 #
1232 # {
1233 # &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;,
1234 # &quot;firstName&quot;: &lt;string&gt;,
1235 # &quot;lastName&quot;: &lt;string&gt;
1236 # }
1237 #
1238 # If the embedded message type is well-known and has a custom JSON
1239 # representation, that representation will be embedded adding a field
1240 # `value` which holds the custom JSON in addition to the `@type`
1241 # field. Example (for message google.protobuf.Duration):
1242 #
1243 # {
1244 # &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;,
1245 # &quot;value&quot;: &quot;1.212s&quot;
1246 # }
1247 &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized
1248 # protocol buffer message. This string must contain at least
1249 # one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent
1250 # the fully qualified name of the type (as in
1251 # `path/google.protobuf.Duration`). The name should be in a canonical form
1252 # (e.g., leading &quot;.&quot; is not accepted).
1253 #
1254 # In practice, teams usually precompile into the binary all types that they
1255 # expect it to use in the context of Any. However, for URLs which use the
1256 # scheme `http`, `https`, or no scheme, one can optionally set up a type
1257 # server that maps type URLs to message definitions as follows:
1258 #
1259 # * If no scheme is provided, `https` is assumed.
1260 # * An HTTP GET on the URL must yield a google.protobuf.Type
1261 # value in binary format, or produce an error.
1262 # * Applications are allowed to cache lookup results based on the
1263 # URL, or have them precompiled into a binary to avoid any
1264 # lookup. Therefore, binary compatibility needs to be preserved
1265 # on changes to types. (Use versioned type names to manage
1266 # breaking changes.)
1267 #
1268 # Note: this functionality is not currently available in the official
1269 # protobuf release, and it is not used for type URLs beginning with
1270 # type.googleapis.com.
1271 #
1272 # Schemes other than `http`, `https` (or the empty scheme) might be
1273 # used with implementation specific semantics.
1274 &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
1275 },
1276 &quot;severity&quot;: &quot;A String&quot;, # Severity of issue.
1277 # Required.
1278 &quot;stackTrace&quot;: { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings.
1279 &quot;exception&quot;: &quot;A String&quot;, # The stack trace message.
1280 #
1281 # Required
1282 },
1283 &quot;type&quot;: &quot;A String&quot;, # Type of issue.
1284 # Required.
1285 &quot;errorMessage&quot;: &quot;A String&quot;, # A brief human-readable message describing the issue.
1286 # Required.
1287 &quot;category&quot;: &quot;A String&quot;, # Category of issue.
1288 # Required.
1289 },
1290 ],
1291 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner.
1292 #
1293 # The exit code of this tool will be used to determine if the test passed.
1294 #
1295 # - In response: always set
1296 # - In create/update request: optional
1297 # copying artifacts or deploying code.
1298 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
1299 # argv in a C program).
1300 #
1301 # - In response: present if set by create request
1302 # - In create request: optional
1303 # - In update request: never set
1304 &quot;A String&quot;,
1305 ],
1306 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
1307 # exited.
1308 #
1309 # - In response: present if set by create/update request
1310 # - In create request: optional
1311 # - In update request: optional, a FAILED_PRECONDITION error will be
1312 # returned if an exit_code is already set.
1313 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
1314 # successful.
1315 #
1316 # - In response: always set
1317 # - In create/update request: always set
1318 },
1319 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
1320 #
1321 # This field can be set before the tool has exited in order to be able to
1322 # have access to a live view of the logs while the tool is running.
1323 #
1324 # The maximum allowed number of tool logs per step is 1000.
1325 #
1326 # - In response: present if set by create/update request
1327 # - In create request: optional
1328 # - In update request: optional, any value provided will be appended to the
1329 # existing list
1330 { # A reference to a file.
1331 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
1332 #
1333 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
1334 # or in gsutil format: gs://mybucket/path/to/test.xml
1335 # with version-specific info,
1336 # gs://mybucket/path/to/test.xml#1360383693690000
1337 #
1338 # An INVALID_ARGUMENT error will be returned if the URI format is not
1339 # supported.
1340 #
1341 # - In response: always set
1342 # - In create/update request: always set
1343 },
1344 ],
1345 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
1346 #
1347 # The maximum allowed number of tool outputs per step is 1000.
1348 #
1349 # - In response: present if set by create/update request
1350 # - In create request: optional
1351 # - In update request: optional, any value provided will be appended to the
1352 # existing list
1353 { # A reference to a ToolExecution output file.
1354 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
1355 #
1356 # - In response: present if set by create/update request
1357 # - In create/update request: optional
1358 # calendar, encoded as a count of seconds and fractions of seconds at
1359 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
1360 # January 1, 1970, in the proleptic Gregorian calendar which extends the
1361 # Gregorian calendar backwards to year one.
1362 #
1363 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
1364 # second table is needed for interpretation, using a [24-hour linear
1365 # smear](https://developers.google.com/time/smear).
1366 #
1367 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
1368 # restricting to that range, we ensure that we can convert to and from [RFC
1369 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
1370 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
1371 # second values with fractions must still have non-negative nanos values
1372 # that count forward in time. Must be from 0 to 999,999,999
1373 # inclusive.
1374 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
1375 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
1376 # 9999-12-31T23:59:59Z inclusive.
1377 },
1378 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
1379 #
1380 # - In response: always set
1381 # - In create/update request: always set
1382 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
1383 #
1384 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
1385 # or in gsutil format: gs://mybucket/path/to/test.xml
1386 # with version-specific info,
1387 # gs://mybucket/path/to/test.xml#1360383693690000
1388 #
1389 # An INVALID_ARGUMENT error will be returned if the URI format is not
1390 # supported.
1391 #
1392 # - In response: always set
1393 # - In create/update request: always set
1394 },
1395 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
1396 #
1397 # - In response: present if set by create/update request
1398 # - In create/update request: optional
1399 #
1400 # Test case references are canonically ordered lexicographically by these three
1401 # factors:
1402 # * First, by test_suite_name.
1403 # * Second, by class_name.
1404 # * Third, by name.
1405 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
1406 #
1407 # Required.
1408 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
1409 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
1410 },
1411 },
1412 ],
1413 },
1414 &quot;testSuiteOverviews&quot;: [ # List of test suite overview contents. This could be parsed from xUnit XML
1415 # log by server, or uploaded directly by user. This references should only be
1416 # called when test suites are fully parsed or uploaded.
1417 #
1418 # The maximum allowed number of test suite overviews per step is 1000.
1419 #
1420 # - In response: always set
1421 # - In create request: optional
1422 # - In update request: never (use publishXunitXmlFiles custom method instead)
1423 { # A summary of a test suite result either parsed from XML or uploaded
1424 # directly by a user.
1425 #
1426 # Note: the API related comments are for StepService only. This message is
1427 # also being used in ExecutionService in a read only mode for the corresponding
1428 # step.
1429 &quot;name&quot;: &quot;A String&quot;, # The name of the test suite.
1430 #
1431 # - In create/response: always set
1432 # - In update request: never
1433 &quot;elapsedTime&quot;: { # # Elapsed time of test suite.
1434 # A Duration represents a signed, fixed-length span of time represented
1435 # as a count of seconds and fractions of seconds at nanosecond
1436 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
1437 # or &quot;month&quot;. It is related to Timestamp in that the difference between
1438 # two Timestamp values is a Duration and it can be added or subtracted
1439 # from a Timestamp. Range is approximately +-10,000 years.
1440 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
1441 # of time. Durations less than one second are represented with a 0
1442 # `seconds` field and a positive or negative `nanos` field. For durations
1443 # of one second or more, a non-zero value for the `nanos` field must be
1444 # of the same sign as the `seconds` field. Must be from -999,999,999
1445 # to +999,999,999 inclusive.
1446 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
1447 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
1448 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
1449 },
1450 &quot;flakyCount&quot;: 42, # Number of flaky test cases, set by the service by rolling up flaky test
1451 # attempts.
1452 #
1453 # Present only for rollup test suite overview at environment level. A step
1454 # cannot have flaky test cases.
1455 &quot;errorCount&quot;: 42, # Number of test cases in error, typically set by the service by parsing the
1456 # xml_source.
1457 #
1458 # - In create/response: always set
1459 # - In update request: never
1460 &quot;totalCount&quot;: 42, # Number of test cases, typically set by the service by parsing the
1461 # xml_source.
1462 #
1463 # - In create/response: always set
1464 # - In update request: never
1465 &quot;skippedCount&quot;: 42, # Number of test cases not run, typically set by the service by parsing the
1466 # xml_source.
1467 #
1468 # - In create/response: always set
1469 # - In update request: never
1470 &quot;xmlSource&quot;: { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original
1471 # XML file is stored.
1472 #
1473 # Note: Multiple test suites can share the same xml_source
1474 #
1475 # Returns INVALID_ARGUMENT if the uri format is not supported.
1476 #
1477 # - In create/response: optional
1478 # - In update request: never
1479 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
1480 #
1481 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
1482 # or in gsutil format: gs://mybucket/path/to/test.xml
1483 # with version-specific info,
1484 # gs://mybucket/path/to/test.xml#1360383693690000
1485 #
1486 # An INVALID_ARGUMENT error will be returned if the URI format is not
1487 # supported.
1488 #
1489 # - In response: always set
1490 # - In create/update request: always set
1491 },
1492 &quot;failureCount&quot;: 42, # Number of failed test cases, typically set by the service by parsing the
1493 # xml_source. May also be set by the user.
1494 #
1495 # - In create/response: always set
1496 # - In update request: never
1497 },
1498 ],
1499 &quot;testTiming&quot;: { # Testing timing break down to know phases. # The timing break down of the test execution.
1500 #
1501 # - In response: present if set by create or update
1502 # - In create/update request: optional
1503 &quot;testProcessDuration&quot;: { # # How long it took to run the test process.
1504 #
1505 # - In response: present if previously set.
1506 # - In create/update request: optional
1507 # A Duration represents a signed, fixed-length span of time represented
1508 # as a count of seconds and fractions of seconds at nanosecond
1509 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
1510 # or &quot;month&quot;. It is related to Timestamp in that the difference between
1511 # two Timestamp values is a Duration and it can be added or subtracted
1512 # from a Timestamp. Range is approximately +-10,000 years.
1513 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
1514 # of time. Durations less than one second are represented with a 0
1515 # `seconds` field and a positive or negative `nanos` field. For durations
1516 # of one second or more, a non-zero value for the `nanos` field must be
1517 # of the same sign as the `seconds` field. Must be from -999,999,999
1518 # to +999,999,999 inclusive.
1519 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
1520 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
1521 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
1522 },
1523 },
1524 },
1525 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created.
1526 #
1527 # - In response: always set
1528 # - In create/update request: never set
1529 # calendar, encoded as a count of seconds and fractions of seconds at
1530 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
1531 # January 1, 1970, in the proleptic Gregorian calendar which extends the
1532 # Gregorian calendar backwards to year one.
1533 #
1534 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
1535 # second table is needed for interpretation, using a [24-hour linear
1536 # smear](https://developers.google.com/time/smear).
1537 #
1538 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
1539 # restricting to that range, we ensure that we can convert to and from [RFC
1540 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
1541 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
1542 # second values with fractions must still have non-negative nanos values
1543 # that count forward in time. Must be from 0 to 999,999,999
1544 # inclusive.
1545 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
1546 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
1547 # 9999-12-31T23:59:59Z inclusive.
1548 },
1549 &quot;state&quot;: &quot;A String&quot;, # The initial state is IN_PROGRESS.
1550 # The only legal state transitions are
1551 # * IN_PROGRESS -&gt; COMPLETE
1552 #
1553 # A PRECONDITION_FAILED will be returned if an invalid transition is
1554 # requested.
1555 #
1556 # It is valid to create Step with a state set to COMPLETE.
1557 # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be
1558 # returned if the state is set to COMPLETE multiple times.
1559 #
1560 # - In response: always set
1561 # - In create/update request: optional
1562 &quot;name&quot;: &quot;A String&quot;, # A short human-readable name to display in the UI.
1563 # Maximum of 100 characters.
1564 # For example: Clean build
1565 #
1566 # A PRECONDITION_FAILED will be returned upon creating a new step if it
1567 # shares its name and dimension_value with an existing step. If two steps
1568 # represent a similar action, but have different dimension values, they
1569 # should share the same name. For instance, if the same set of tests is
1570 # run on two different platforms, the two steps should have the same name.
1571 #
1572 # - In response: always set
1573 # - In create request: always set
1574 # - In update request: never set
1575 &quot;dimensionValue&quot;: [ # If the execution containing this step has any dimension_definition set,
1576 # then this field allows the child to specify the values of the dimensions.
1577 #
1578 # The keys must exactly match the dimension_definition of the execution.
1579 #
1580 # For example, if the execution has
1581 # `dimension_definition = [&#x27;attempt&#x27;, &#x27;device&#x27;]`
1582 # then a step must define values for those dimensions, eg.
1583 # `dimension_value = [&#x27;attempt&#x27;: &#x27;1&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
1584 #
1585 # If a step does not participate in one dimension of the matrix,
1586 # the value for that dimension should be empty string.
1587 # For example, if one of the tests is executed by a runner which
1588 # does not support retries, the step could have
1589 # `dimension_value = [&#x27;attempt&#x27;: &#x27;&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
1590 #
1591 # If the step does not participate in any dimensions of the matrix,
1592 # it may leave dimension_value unset.
1593 #
1594 # A PRECONDITION_FAILED will be returned if any of the keys do not exist
1595 # in the dimension_definition of the execution.
1596 #
1597 # A PRECONDITION_FAILED will be returned if another step in this execution
1598 # already has the same name and dimension_value, but differs on other data
1599 # fields, for example, step field is different.
1600 #
1601 # A PRECONDITION_FAILED will be returned if dimension_value is set, and
1602 # there is a dimension_definition in the execution which is not specified
1603 # as one of the keys.
1604 #
1605 # - In response: present if set by create
1606 # - In create request: optional
1607 # - In update request: never set
1608 {
1609 &quot;value&quot;: &quot;A String&quot;,
1610 &quot;key&quot;: &quot;A String&quot;,
1611 },
1612 ],
1613 &quot;completionTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete.
1614 #
1615 # This value will be set automatically when state transitions to
1616 # COMPLETE.
1617 #
1618 # - In response: set if the execution state is COMPLETE.
1619 # - In create/update request: never set
1620 # calendar, encoded as a count of seconds and fractions of seconds at
1621 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
1622 # January 1, 1970, in the proleptic Gregorian calendar which extends the
1623 # Gregorian calendar backwards to year one.
1624 #
1625 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
1626 # second table is needed for interpretation, using a [24-hour linear
1627 # smear](https://developers.google.com/time/smear).
1628 #
1629 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
1630 # restricting to that range, we ensure that we can convert to and from [RFC
1631 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
1632 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
1633 # second values with fractions must still have non-negative nanos values
1634 # that count forward in time. Must be from 0 to 999,999,999
1635 # inclusive.
1636 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
1637 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
1638 # 9999-12-31T23:59:59Z inclusive.
1639 },
1640 &quot;multiStep&quot;: { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group.
1641 # These details can be used identify which group this step is part of.
1642 # It also identifies the groups &#x27;primary step&#x27; which indexes all the group
1643 # members.
1644 #
1645 # - In response: present if previously set.
1646 # - In create request: optional, set iff this step was performed more than
1647 # once.
1648 # - In update request: optional
1649 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
1650 # Ranges from 0(inclusive) to total number of steps(exclusive).
1651 # The primary step is 0.
1652 &quot;primaryStepId&quot;: &quot;A String&quot;, # Step Id of the primary (original) step, which might be this step.
1653 &quot;primaryStep&quot;: { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step.
1654 # outcome of each individual step.
1655 &quot;rollUp&quot;: &quot;A String&quot;, # Rollup test status of multiple steps that were run with the same
1656 # configuration as a group.
1657 &quot;individualOutcome&quot;: [ # Step Id and outcome of each individual step.
1658 { # Step Id and outcome of each individual step that was run as a group with
1659 # other steps with the same configuration.
1660 &quot;runDuration&quot;: { # # How long it took for this step to run.
1661 # A Duration represents a signed, fixed-length span of time represented
1662 # as a count of seconds and fractions of seconds at nanosecond
1663 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
1664 # or &quot;month&quot;. It is related to Timestamp in that the difference between
1665 # two Timestamp values is a Duration and it can be added or subtracted
1666 # from a Timestamp. Range is approximately +-10,000 years.
1667 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
1668 # of time. Durations less than one second are represented with a 0
1669 # `seconds` field and a positive or negative `nanos` field. For durations
1670 # of one second or more, a non-zero value for the `nanos` field must be
1671 # of the same sign as the `seconds` field. Must be from -999,999,999
1672 # to +999,999,999 inclusive.
1673 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
1674 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
1675 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
1676 },
1677 &quot;stepId&quot;: &quot;A String&quot;,
1678 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
1679 # Ranges from 0(inclusive) to total number of steps(exclusive).
1680 # The primary step is 0.
1681 &quot;outcomeSummary&quot;: &quot;A String&quot;,
1682 },
1683 ],
1684 },
1685 },
1686 &quot;stepId&quot;: &quot;A String&quot;, # A unique identifier within a Execution for this Step.
1687 #
1688 # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
1689 #
1690 # - In response: always set
1691 # - In create/update request: never set
1692 &quot;outcome&quot;: { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
1693 #
1694 # - In response: present if set by create/update request
1695 # - In create/update request: optional
1696 &quot;summary&quot;: &quot;A String&quot;, # The simplest way to interpret a result.
1697 #
1698 # Required
1699 &quot;failureDetail&quot;: { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
1700 #
1701 # Returns INVALID_ARGUMENT if this field is set
1702 # but the summary is not FAILURE.
1703 #
1704 # Optional
1705 &quot;unableToCrawl&quot;: True or False, # If the robo was unable to crawl the app; perhaps because the app did not
1706 # start.
1707 &quot;notInstalled&quot;: True or False, # If an app is not installed and thus no test can be run with the app.
1708 # This might be caused by trying to run a test on an unsupported platform.
1709 &quot;timedOut&quot;: True or False, # If the test overran some time limit, and that is why it failed.
1710 &quot;otherNativeCrash&quot;: True or False, # If a native process (including any other than the app) crashed.
1711 &quot;crashed&quot;: True or False, # If the failure was severe because the system (app) under test crashed.
1712 },
1713 &quot;inconclusiveDetail&quot;: { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome.
1714 #
1715 # Returns INVALID_ARGUMENT if this field is set
1716 # but the summary is not INCONCLUSIVE.
1717 #
1718 # Optional
1719 &quot;hasErrorLogs&quot;: True or False, # If results are being provided to the user in certain cases of
1720 # infrastructure failures
1721 &quot;infrastructureFailure&quot;: True or False, # If the test runner could not determine success or failure because the test
1722 # depends on a component other than the system under test which failed.
1723 #
1724 # For example, a mobile test requires provisioning a device where the test
1725 # executes, and that provisioning can fail.
1726 &quot;abortedByUser&quot;: True or False, # If the end user aborted the test execution before a pass or fail could be
1727 # determined.
1728 # For example, the user pressed ctrl-c which sent a kill signal to the test
1729 # runner while the test was running.
1730 },
1731 &quot;successDetail&quot;: { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome.
1732 #
1733 # Returns INVALID_ARGUMENT if this field is set
1734 # but the summary is not SUCCESS.
1735 #
1736 # Optional
1737 # LINT.IfChange
1738 &quot;otherNativeCrash&quot;: True or False, # If a native process other than the app crashed.
1739 },
1740 &quot;skippedDetail&quot;: { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
1741 #
1742 # Returns INVALID_ARGUMENT if this field is set
1743 # but the summary is not SKIPPED.
1744 #
1745 # Optional
1746 &quot;incompatibleAppVersion&quot;: True or False, # If the App doesn&#x27;t support the specific API level.
1747 &quot;incompatibleDevice&quot;: True or False, # If the requested OS version doesn&#x27;t run on the specific device model.
1748 &quot;incompatibleArchitecture&quot;: True or False, # If the App doesn&#x27;t run on the specific architecture, for example, x86.
1749 },
1750 },
1751 &quot;toolExecutionStep&quot;: { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don&#x27;t explicitly support).
1752 # For example: running cp to copy artifacts from one location to another.
1753 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution.
1754 #
1755 # - In response: present if set by create/update request
1756 # - In create/update request: optional
1757 # copying artifacts or deploying code.
1758 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
1759 # argv in a C program).
1760 #
1761 # - In response: present if set by create request
1762 # - In create request: optional
1763 # - In update request: never set
1764 &quot;A String&quot;,
1765 ],
1766 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
1767 # exited.
1768 #
1769 # - In response: present if set by create/update request
1770 # - In create request: optional
1771 # - In update request: optional, a FAILED_PRECONDITION error will be
1772 # returned if an exit_code is already set.
1773 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
1774 # successful.
1775 #
1776 # - In response: always set
1777 # - In create/update request: always set
1778 },
1779 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
1780 #
1781 # This field can be set before the tool has exited in order to be able to
1782 # have access to a live view of the logs while the tool is running.
1783 #
1784 # The maximum allowed number of tool logs per step is 1000.
1785 #
1786 # - In response: present if set by create/update request
1787 # - In create request: optional
1788 # - In update request: optional, any value provided will be appended to the
1789 # existing list
1790 { # A reference to a file.
1791 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
1792 #
1793 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
1794 # or in gsutil format: gs://mybucket/path/to/test.xml
1795 # with version-specific info,
1796 # gs://mybucket/path/to/test.xml#1360383693690000
1797 #
1798 # An INVALID_ARGUMENT error will be returned if the URI format is not
1799 # supported.
1800 #
1801 # - In response: always set
1802 # - In create/update request: always set
1803 },
1804 ],
1805 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
1806 #
1807 # The maximum allowed number of tool outputs per step is 1000.
1808 #
1809 # - In response: present if set by create/update request
1810 # - In create request: optional
1811 # - In update request: optional, any value provided will be appended to the
1812 # existing list
1813 { # A reference to a ToolExecution output file.
1814 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
1815 #
1816 # - In response: present if set by create/update request
1817 # - In create/update request: optional
1818 # calendar, encoded as a count of seconds and fractions of seconds at
1819 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
1820 # January 1, 1970, in the proleptic Gregorian calendar which extends the
1821 # Gregorian calendar backwards to year one.
1822 #
1823 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
1824 # second table is needed for interpretation, using a [24-hour linear
1825 # smear](https://developers.google.com/time/smear).
1826 #
1827 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
1828 # restricting to that range, we ensure that we can convert to and from [RFC
1829 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
1830 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
1831 # second values with fractions must still have non-negative nanos values
1832 # that count forward in time. Must be from 0 to 999,999,999
1833 # inclusive.
1834 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
1835 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
1836 # 9999-12-31T23:59:59Z inclusive.
1837 },
1838 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
1839 #
1840 # - In response: always set
1841 # - In create/update request: always set
1842 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
1843 #
1844 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
1845 # or in gsutil format: gs://mybucket/path/to/test.xml
1846 # with version-specific info,
1847 # gs://mybucket/path/to/test.xml#1360383693690000
1848 #
1849 # An INVALID_ARGUMENT error will be returned if the URI format is not
1850 # supported.
1851 #
1852 # - In response: always set
1853 # - In create/update request: always set
1854 },
1855 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
1856 #
1857 # - In response: present if set by create/update request
1858 # - In create/update request: optional
1859 #
1860 # Test case references are canonically ordered lexicographically by these three
1861 # factors:
1862 # * First, by test_suite_name.
1863 # * Second, by class_name.
1864 # * Third, by name.
1865 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
1866 #
1867 # Required.
1868 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
1869 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
1870 },
1871 },
1872 ],
1873 },
1874 },
1875 &quot;deviceUsageDuration&quot;: { # # How much the device resource is used to perform the test.
1876 #
1877 # This is the device usage used for billing purpose, which is different from
1878 # the run_duration, for example, infrastructure failure won&#x27;t be charged for
1879 # device usage.
1880 #
1881 # PRECONDITION_FAILED will be returned if one attempts to set a
1882 # device_usage on a step which already has this field set.
1883 #
1884 # - In response: present if previously set.
1885 # - In create request: optional
1886 # - In update request: optional
1887 # A Duration represents a signed, fixed-length span of time represented
1888 # as a count of seconds and fractions of seconds at nanosecond
1889 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
1890 # or &quot;month&quot;. It is related to Timestamp in that the difference between
1891 # two Timestamp values is a Duration and it can be added or subtracted
1892 # from a Timestamp. Range is approximately +-10,000 years.
1893 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
1894 # of time. Durations less than one second are represented with a 0
1895 # `seconds` field and a positive or negative `nanos` field. For durations
1896 # of one second or more, a non-zero value for the `nanos` field must be
1897 # of the same sign as the `seconds` field. Must be from -999,999,999
1898 # to +999,999,999 inclusive.
1899 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
1900 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
1901 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
1902 },
1903 &quot;labels&quot;: [ # Arbitrary user-supplied key/value pairs that are associated with the
1904 # step.
1905 #
1906 # Users are responsible for managing the key namespace such that keys
1907 # don&#x27;t accidentally collide.
1908 #
1909 # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or
1910 # if the length of any of the keys or values exceeds 100 characters.
1911 #
1912 # - In response: always set
1913 # - In create request: optional
1914 # - In update request: optional; any new key/value pair will be added to the
1915 # map, and any new value for an existing key will update that key&#x27;s value
1916 {
1917 &quot;value&quot;: &quot;A String&quot;,
1918 &quot;key&quot;: &quot;A String&quot;,
1919 },
1920 ],
1921 }</pre>
1922</div>
1923
1924<div class="method">
1925 <code class="details" id="get">get(projectId, historyId, executionId, stepId, x__xgafv=None)</code>
1926 <pre>Gets a Step.
1927
1928May return any of the following canonical error codes:
1929
1930- PERMISSION_DENIED - if the user is not authorized to read project
1931- INVALID_ARGUMENT - if the request is malformed
1932- NOT_FOUND - if the Step does not exist
1933
1934Args:
1935 projectId: string, A Project id.
1936
1937Required. (required)
1938 historyId: string, A History id.
1939
1940Required. (required)
1941 executionId: string, A Execution id.
1942
1943Required. (required)
1944 stepId: string, A Step id.
1945
1946Required. (required)
1947 x__xgafv: string, V1 error format.
1948 Allowed values
1949 1 - v1 error format
1950 2 - v2 error format
1951
1952Returns:
1953 An object of the form:
1954
1955 { # A Step represents a single operation performed as part of
1956 # Execution. A step can be used to represent the execution of a tool (
1957 # for example a test runner execution or an execution of a compiler).
1958 #
1959 # Steps can overlap (for instance two steps might have the same
1960 # start time if some operations are done in parallel).
1961 #
1962 # Here is an example, let&#x27;s consider that we have a continuous build is
1963 # executing a test runner for each iteration. The workflow would look like:
1964 # - user creates a Execution with id 1
1965 # - user creates an TestExecutionStep with id 100 for Execution 1
1966 # - user update TestExecutionStep with id 100 to add a raw xml log
1967 # + the service parses the xml logs and returns a TestExecutionStep with
1968 # updated TestResult(s).
1969 # - user update the status of TestExecutionStep with id 100 to COMPLETE
1970 #
1971 # A Step can be updated until its state is set to COMPLETE at which
1972 # points it becomes immutable.
1973 #
1974 # Next tag: 27
1975 &quot;hasImages&quot;: True or False, # Whether any of the outputs of this step are images whose
1976 # thumbnails can be fetched with ListThumbnails.
1977 #
1978 # - In response: always set
1979 # - In create/update request: never set
1980 &quot;runDuration&quot;: { # # How long it took for this step to run.
1981 #
1982 # If unset, this is set to the difference between creation_time and
1983 # completion_time when the step is set to the COMPLETE state. In some cases,
1984 # it is appropriate to set this value separately: For instance, if a step is
1985 # created, but the operation it represents is queued for a few minutes before
1986 # it executes, it would be appropriate not to include the time spent queued
1987 # in its run_duration.
1988 #
1989 # PRECONDITION_FAILED will be returned if one attempts to set a
1990 # run_duration on a step which already has this field set.
1991 #
1992 # - In response: present if previously set; always present on COMPLETE step
1993 # - In create request: optional
1994 # - In update request: optional
1995 # A Duration represents a signed, fixed-length span of time represented
1996 # as a count of seconds and fractions of seconds at nanosecond
1997 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
1998 # or &quot;month&quot;. It is related to Timestamp in that the difference between
1999 # two Timestamp values is a Duration and it can be added or subtracted
2000 # from a Timestamp. Range is approximately +-10,000 years.
2001 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
2002 # of time. Durations less than one second are represented with a 0
2003 # `seconds` field and a positive or negative `nanos` field. For durations
2004 # of one second or more, a non-zero value for the `nanos` field must be
2005 # of the same sign as the `seconds` field. Must be from -999,999,999
2006 # to +999,999,999 inclusive.
2007 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
2008 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
2009 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
2010 },
2011 &quot;description&quot;: &quot;A String&quot;, # A description of this tool
2012 # For example: mvn clean package -D skipTests=true
2013 #
2014 # - In response: present if set by create/update request
2015 # - In create/update request: optional
2016 &quot;testExecutionStep&quot;: { # A step that represents running tests. # An execution of a test runner.
2017 #
2018 # It accepts ant-junit xml files which will be parsed into structured test
2019 # results by the service. Xml file paths are updated in order to append more
2020 # files, however they can&#x27;t be deleted.
2021 #
2022 # Users can also add test results manually by using the test_result field.
2023 &quot;testIssues&quot;: [ # Issues observed during the test execution.
2024 #
2025 # For example, if the mobile app under test crashed during the test,
2026 # the error message and the stack trace content can be recorded here
2027 # to assist debugging.
2028 #
2029 # - In response: present if set by create or update
2030 # - In create/update request: optional
2031 { # An issue detected occurring during a test execution.
2032 &quot;warning&quot;: { # # Warning message with additional details of the issue.
2033 # Should always be a message from com.google.devtools.toolresults.v1.warnings
2034 # `Any` contains an arbitrary serialized protocol buffer message along with a
2035 # URL that describes the type of the serialized message.
2036 #
2037 # Protobuf library provides support to pack/unpack Any values in the form
2038 # of utility functions or additional generated methods of the Any type.
2039 #
2040 # Example 1: Pack and unpack a message in C++.
2041 #
2042 # Foo foo = ...;
2043 # Any any;
2044 # any.PackFrom(foo);
2045 # ...
2046 # if (any.UnpackTo(&amp;foo)) {
2047 # ...
2048 # }
2049 #
2050 # Example 2: Pack and unpack a message in Java.
2051 #
2052 # Foo foo = ...;
2053 # Any any = Any.pack(foo);
2054 # ...
2055 # if (any.is(Foo.class)) {
2056 # foo = any.unpack(Foo.class);
2057 # }
2058 #
2059 # Example 3: Pack and unpack a message in Python.
2060 #
2061 # foo = Foo(...)
2062 # any = Any()
2063 # any.Pack(foo)
2064 # ...
2065 # if any.Is(Foo.DESCRIPTOR):
2066 # any.Unpack(foo)
2067 # ...
2068 #
2069 # Example 4: Pack and unpack a message in Go
2070 #
2071 # foo := &amp;pb.Foo{...}
2072 # any, err := ptypes.MarshalAny(foo)
2073 # ...
2074 # foo := &amp;pb.Foo{}
2075 # if err := ptypes.UnmarshalAny(any, foo); err != nil {
2076 # ...
2077 # }
2078 #
2079 # The pack methods provided by protobuf library will by default use
2080 # &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack
2081 # methods only use the fully qualified type name after the last &#x27;/&#x27;
2082 # in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type
2083 # name &quot;y.z&quot;.
2084 #
2085 #
2086 # # JSON
2087 #
2088 # The JSON representation of an `Any` value uses the regular
2089 # representation of the deserialized, embedded message, with an
2090 # additional field `@type` which contains the type URL. Example:
2091 #
2092 # package google.profile;
2093 # message Person {
2094 # string first_name = 1;
2095 # string last_name = 2;
2096 # }
2097 #
2098 # {
2099 # &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;,
2100 # &quot;firstName&quot;: &lt;string&gt;,
2101 # &quot;lastName&quot;: &lt;string&gt;
2102 # }
2103 #
2104 # If the embedded message type is well-known and has a custom JSON
2105 # representation, that representation will be embedded adding a field
2106 # `value` which holds the custom JSON in addition to the `@type`
2107 # field. Example (for message google.protobuf.Duration):
2108 #
2109 # {
2110 # &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;,
2111 # &quot;value&quot;: &quot;1.212s&quot;
2112 # }
2113 &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized
2114 # protocol buffer message. This string must contain at least
2115 # one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent
2116 # the fully qualified name of the type (as in
2117 # `path/google.protobuf.Duration`). The name should be in a canonical form
2118 # (e.g., leading &quot;.&quot; is not accepted).
2119 #
2120 # In practice, teams usually precompile into the binary all types that they
2121 # expect it to use in the context of Any. However, for URLs which use the
2122 # scheme `http`, `https`, or no scheme, one can optionally set up a type
2123 # server that maps type URLs to message definitions as follows:
2124 #
2125 # * If no scheme is provided, `https` is assumed.
2126 # * An HTTP GET on the URL must yield a google.protobuf.Type
2127 # value in binary format, or produce an error.
2128 # * Applications are allowed to cache lookup results based on the
2129 # URL, or have them precompiled into a binary to avoid any
2130 # lookup. Therefore, binary compatibility needs to be preserved
2131 # on changes to types. (Use versioned type names to manage
2132 # breaking changes.)
2133 #
2134 # Note: this functionality is not currently available in the official
2135 # protobuf release, and it is not used for type URLs beginning with
2136 # type.googleapis.com.
2137 #
2138 # Schemes other than `http`, `https` (or the empty scheme) might be
2139 # used with implementation specific semantics.
2140 &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
2141 },
2142 &quot;severity&quot;: &quot;A String&quot;, # Severity of issue.
2143 # Required.
2144 &quot;stackTrace&quot;: { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings.
2145 &quot;exception&quot;: &quot;A String&quot;, # The stack trace message.
2146 #
2147 # Required
2148 },
2149 &quot;type&quot;: &quot;A String&quot;, # Type of issue.
2150 # Required.
2151 &quot;errorMessage&quot;: &quot;A String&quot;, # A brief human-readable message describing the issue.
2152 # Required.
2153 &quot;category&quot;: &quot;A String&quot;, # Category of issue.
2154 # Required.
2155 },
2156 ],
2157 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner.
2158 #
2159 # The exit code of this tool will be used to determine if the test passed.
2160 #
2161 # - In response: always set
2162 # - In create/update request: optional
2163 # copying artifacts or deploying code.
2164 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
2165 # argv in a C program).
2166 #
2167 # - In response: present if set by create request
2168 # - In create request: optional
2169 # - In update request: never set
2170 &quot;A String&quot;,
2171 ],
2172 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
2173 # exited.
2174 #
2175 # - In response: present if set by create/update request
2176 # - In create request: optional
2177 # - In update request: optional, a FAILED_PRECONDITION error will be
2178 # returned if an exit_code is already set.
2179 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
2180 # successful.
2181 #
2182 # - In response: always set
2183 # - In create/update request: always set
2184 },
2185 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
2186 #
2187 # This field can be set before the tool has exited in order to be able to
2188 # have access to a live view of the logs while the tool is running.
2189 #
2190 # The maximum allowed number of tool logs per step is 1000.
2191 #
2192 # - In response: present if set by create/update request
2193 # - In create request: optional
2194 # - In update request: optional, any value provided will be appended to the
2195 # existing list
2196 { # A reference to a file.
2197 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
2198 #
2199 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
2200 # or in gsutil format: gs://mybucket/path/to/test.xml
2201 # with version-specific info,
2202 # gs://mybucket/path/to/test.xml#1360383693690000
2203 #
2204 # An INVALID_ARGUMENT error will be returned if the URI format is not
2205 # supported.
2206 #
2207 # - In response: always set
2208 # - In create/update request: always set
2209 },
2210 ],
2211 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
2212 #
2213 # The maximum allowed number of tool outputs per step is 1000.
2214 #
2215 # - In response: present if set by create/update request
2216 # - In create request: optional
2217 # - In update request: optional, any value provided will be appended to the
2218 # existing list
2219 { # A reference to a ToolExecution output file.
2220 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
2221 #
2222 # - In response: present if set by create/update request
2223 # - In create/update request: optional
2224 # calendar, encoded as a count of seconds and fractions of seconds at
2225 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
2226 # January 1, 1970, in the proleptic Gregorian calendar which extends the
2227 # Gregorian calendar backwards to year one.
2228 #
2229 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
2230 # second table is needed for interpretation, using a [24-hour linear
2231 # smear](https://developers.google.com/time/smear).
2232 #
2233 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
2234 # restricting to that range, we ensure that we can convert to and from [RFC
2235 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
2236 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
2237 # second values with fractions must still have non-negative nanos values
2238 # that count forward in time. Must be from 0 to 999,999,999
2239 # inclusive.
2240 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
2241 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
2242 # 9999-12-31T23:59:59Z inclusive.
2243 },
2244 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
2245 #
2246 # - In response: always set
2247 # - In create/update request: always set
2248 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
2249 #
2250 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
2251 # or in gsutil format: gs://mybucket/path/to/test.xml
2252 # with version-specific info,
2253 # gs://mybucket/path/to/test.xml#1360383693690000
2254 #
2255 # An INVALID_ARGUMENT error will be returned if the URI format is not
2256 # supported.
2257 #
2258 # - In response: always set
2259 # - In create/update request: always set
2260 },
2261 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
2262 #
2263 # - In response: present if set by create/update request
2264 # - In create/update request: optional
2265 #
2266 # Test case references are canonically ordered lexicographically by these three
2267 # factors:
2268 # * First, by test_suite_name.
2269 # * Second, by class_name.
2270 # * Third, by name.
2271 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
2272 #
2273 # Required.
2274 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
2275 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
2276 },
2277 },
2278 ],
2279 },
2280 &quot;testSuiteOverviews&quot;: [ # List of test suite overview contents. This could be parsed from xUnit XML
2281 # log by server, or uploaded directly by user. This references should only be
2282 # called when test suites are fully parsed or uploaded.
2283 #
2284 # The maximum allowed number of test suite overviews per step is 1000.
2285 #
2286 # - In response: always set
2287 # - In create request: optional
2288 # - In update request: never (use publishXunitXmlFiles custom method instead)
2289 { # A summary of a test suite result either parsed from XML or uploaded
2290 # directly by a user.
2291 #
2292 # Note: the API related comments are for StepService only. This message is
2293 # also being used in ExecutionService in a read only mode for the corresponding
2294 # step.
2295 &quot;name&quot;: &quot;A String&quot;, # The name of the test suite.
2296 #
2297 # - In create/response: always set
2298 # - In update request: never
2299 &quot;elapsedTime&quot;: { # # Elapsed time of test suite.
2300 # A Duration represents a signed, fixed-length span of time represented
2301 # as a count of seconds and fractions of seconds at nanosecond
2302 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
2303 # or &quot;month&quot;. It is related to Timestamp in that the difference between
2304 # two Timestamp values is a Duration and it can be added or subtracted
2305 # from a Timestamp. Range is approximately +-10,000 years.
2306 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
2307 # of time. Durations less than one second are represented with a 0
2308 # `seconds` field and a positive or negative `nanos` field. For durations
2309 # of one second or more, a non-zero value for the `nanos` field must be
2310 # of the same sign as the `seconds` field. Must be from -999,999,999
2311 # to +999,999,999 inclusive.
2312 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
2313 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
2314 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
2315 },
2316 &quot;flakyCount&quot;: 42, # Number of flaky test cases, set by the service by rolling up flaky test
2317 # attempts.
2318 #
2319 # Present only for rollup test suite overview at environment level. A step
2320 # cannot have flaky test cases.
2321 &quot;errorCount&quot;: 42, # Number of test cases in error, typically set by the service by parsing the
2322 # xml_source.
2323 #
2324 # - In create/response: always set
2325 # - In update request: never
2326 &quot;totalCount&quot;: 42, # Number of test cases, typically set by the service by parsing the
2327 # xml_source.
2328 #
2329 # - In create/response: always set
2330 # - In update request: never
2331 &quot;skippedCount&quot;: 42, # Number of test cases not run, typically set by the service by parsing the
2332 # xml_source.
2333 #
2334 # - In create/response: always set
2335 # - In update request: never
2336 &quot;xmlSource&quot;: { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original
2337 # XML file is stored.
2338 #
2339 # Note: Multiple test suites can share the same xml_source
2340 #
2341 # Returns INVALID_ARGUMENT if the uri format is not supported.
2342 #
2343 # - In create/response: optional
2344 # - In update request: never
2345 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
2346 #
2347 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
2348 # or in gsutil format: gs://mybucket/path/to/test.xml
2349 # with version-specific info,
2350 # gs://mybucket/path/to/test.xml#1360383693690000
2351 #
2352 # An INVALID_ARGUMENT error will be returned if the URI format is not
2353 # supported.
2354 #
2355 # - In response: always set
2356 # - In create/update request: always set
2357 },
2358 &quot;failureCount&quot;: 42, # Number of failed test cases, typically set by the service by parsing the
2359 # xml_source. May also be set by the user.
2360 #
2361 # - In create/response: always set
2362 # - In update request: never
2363 },
2364 ],
2365 &quot;testTiming&quot;: { # Testing timing break down to know phases. # The timing break down of the test execution.
2366 #
2367 # - In response: present if set by create or update
2368 # - In create/update request: optional
2369 &quot;testProcessDuration&quot;: { # # How long it took to run the test process.
2370 #
2371 # - In response: present if previously set.
2372 # - In create/update request: optional
2373 # A Duration represents a signed, fixed-length span of time represented
2374 # as a count of seconds and fractions of seconds at nanosecond
2375 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
2376 # or &quot;month&quot;. It is related to Timestamp in that the difference between
2377 # two Timestamp values is a Duration and it can be added or subtracted
2378 # from a Timestamp. Range is approximately +-10,000 years.
2379 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
2380 # of time. Durations less than one second are represented with a 0
2381 # `seconds` field and a positive or negative `nanos` field. For durations
2382 # of one second or more, a non-zero value for the `nanos` field must be
2383 # of the same sign as the `seconds` field. Must be from -999,999,999
2384 # to +999,999,999 inclusive.
2385 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
2386 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
2387 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
2388 },
2389 },
2390 },
2391 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created.
2392 #
2393 # - In response: always set
2394 # - In create/update request: never set
2395 # calendar, encoded as a count of seconds and fractions of seconds at
2396 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
2397 # January 1, 1970, in the proleptic Gregorian calendar which extends the
2398 # Gregorian calendar backwards to year one.
2399 #
2400 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
2401 # second table is needed for interpretation, using a [24-hour linear
2402 # smear](https://developers.google.com/time/smear).
2403 #
2404 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
2405 # restricting to that range, we ensure that we can convert to and from [RFC
2406 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
2407 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
2408 # second values with fractions must still have non-negative nanos values
2409 # that count forward in time. Must be from 0 to 999,999,999
2410 # inclusive.
2411 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
2412 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
2413 # 9999-12-31T23:59:59Z inclusive.
2414 },
2415 &quot;state&quot;: &quot;A String&quot;, # The initial state is IN_PROGRESS.
2416 # The only legal state transitions are
2417 # * IN_PROGRESS -&gt; COMPLETE
2418 #
2419 # A PRECONDITION_FAILED will be returned if an invalid transition is
2420 # requested.
2421 #
2422 # It is valid to create Step with a state set to COMPLETE.
2423 # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be
2424 # returned if the state is set to COMPLETE multiple times.
2425 #
2426 # - In response: always set
2427 # - In create/update request: optional
2428 &quot;name&quot;: &quot;A String&quot;, # A short human-readable name to display in the UI.
2429 # Maximum of 100 characters.
2430 # For example: Clean build
2431 #
2432 # A PRECONDITION_FAILED will be returned upon creating a new step if it
2433 # shares its name and dimension_value with an existing step. If two steps
2434 # represent a similar action, but have different dimension values, they
2435 # should share the same name. For instance, if the same set of tests is
2436 # run on two different platforms, the two steps should have the same name.
2437 #
2438 # - In response: always set
2439 # - In create request: always set
2440 # - In update request: never set
2441 &quot;dimensionValue&quot;: [ # If the execution containing this step has any dimension_definition set,
2442 # then this field allows the child to specify the values of the dimensions.
2443 #
2444 # The keys must exactly match the dimension_definition of the execution.
2445 #
2446 # For example, if the execution has
2447 # `dimension_definition = [&#x27;attempt&#x27;, &#x27;device&#x27;]`
2448 # then a step must define values for those dimensions, eg.
2449 # `dimension_value = [&#x27;attempt&#x27;: &#x27;1&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
2450 #
2451 # If a step does not participate in one dimension of the matrix,
2452 # the value for that dimension should be empty string.
2453 # For example, if one of the tests is executed by a runner which
2454 # does not support retries, the step could have
2455 # `dimension_value = [&#x27;attempt&#x27;: &#x27;&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
2456 #
2457 # If the step does not participate in any dimensions of the matrix,
2458 # it may leave dimension_value unset.
2459 #
2460 # A PRECONDITION_FAILED will be returned if any of the keys do not exist
2461 # in the dimension_definition of the execution.
2462 #
2463 # A PRECONDITION_FAILED will be returned if another step in this execution
2464 # already has the same name and dimension_value, but differs on other data
2465 # fields, for example, step field is different.
2466 #
2467 # A PRECONDITION_FAILED will be returned if dimension_value is set, and
2468 # there is a dimension_definition in the execution which is not specified
2469 # as one of the keys.
2470 #
2471 # - In response: present if set by create
2472 # - In create request: optional
2473 # - In update request: never set
2474 {
2475 &quot;value&quot;: &quot;A String&quot;,
2476 &quot;key&quot;: &quot;A String&quot;,
2477 },
2478 ],
2479 &quot;completionTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete.
2480 #
2481 # This value will be set automatically when state transitions to
2482 # COMPLETE.
2483 #
2484 # - In response: set if the execution state is COMPLETE.
2485 # - In create/update request: never set
2486 # calendar, encoded as a count of seconds and fractions of seconds at
2487 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
2488 # January 1, 1970, in the proleptic Gregorian calendar which extends the
2489 # Gregorian calendar backwards to year one.
2490 #
2491 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
2492 # second table is needed for interpretation, using a [24-hour linear
2493 # smear](https://developers.google.com/time/smear).
2494 #
2495 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
2496 # restricting to that range, we ensure that we can convert to and from [RFC
2497 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
2498 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
2499 # second values with fractions must still have non-negative nanos values
2500 # that count forward in time. Must be from 0 to 999,999,999
2501 # inclusive.
2502 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
2503 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
2504 # 9999-12-31T23:59:59Z inclusive.
2505 },
2506 &quot;multiStep&quot;: { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group.
2507 # These details can be used identify which group this step is part of.
2508 # It also identifies the groups &#x27;primary step&#x27; which indexes all the group
2509 # members.
2510 #
2511 # - In response: present if previously set.
2512 # - In create request: optional, set iff this step was performed more than
2513 # once.
2514 # - In update request: optional
2515 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
2516 # Ranges from 0(inclusive) to total number of steps(exclusive).
2517 # The primary step is 0.
2518 &quot;primaryStepId&quot;: &quot;A String&quot;, # Step Id of the primary (original) step, which might be this step.
2519 &quot;primaryStep&quot;: { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step.
2520 # outcome of each individual step.
2521 &quot;rollUp&quot;: &quot;A String&quot;, # Rollup test status of multiple steps that were run with the same
2522 # configuration as a group.
2523 &quot;individualOutcome&quot;: [ # Step Id and outcome of each individual step.
2524 { # Step Id and outcome of each individual step that was run as a group with
2525 # other steps with the same configuration.
2526 &quot;runDuration&quot;: { # # How long it took for this step to run.
2527 # A Duration represents a signed, fixed-length span of time represented
2528 # as a count of seconds and fractions of seconds at nanosecond
2529 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
2530 # or &quot;month&quot;. It is related to Timestamp in that the difference between
2531 # two Timestamp values is a Duration and it can be added or subtracted
2532 # from a Timestamp. Range is approximately +-10,000 years.
2533 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
2534 # of time. Durations less than one second are represented with a 0
2535 # `seconds` field and a positive or negative `nanos` field. For durations
2536 # of one second or more, a non-zero value for the `nanos` field must be
2537 # of the same sign as the `seconds` field. Must be from -999,999,999
2538 # to +999,999,999 inclusive.
2539 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
2540 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
2541 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
2542 },
2543 &quot;stepId&quot;: &quot;A String&quot;,
2544 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
2545 # Ranges from 0(inclusive) to total number of steps(exclusive).
2546 # The primary step is 0.
2547 &quot;outcomeSummary&quot;: &quot;A String&quot;,
2548 },
2549 ],
2550 },
2551 },
2552 &quot;stepId&quot;: &quot;A String&quot;, # A unique identifier within a Execution for this Step.
2553 #
2554 # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
2555 #
2556 # - In response: always set
2557 # - In create/update request: never set
2558 &quot;outcome&quot;: { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
2559 #
2560 # - In response: present if set by create/update request
2561 # - In create/update request: optional
2562 &quot;summary&quot;: &quot;A String&quot;, # The simplest way to interpret a result.
2563 #
2564 # Required
2565 &quot;failureDetail&quot;: { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
2566 #
2567 # Returns INVALID_ARGUMENT if this field is set
2568 # but the summary is not FAILURE.
2569 #
2570 # Optional
2571 &quot;unableToCrawl&quot;: True or False, # If the robo was unable to crawl the app; perhaps because the app did not
2572 # start.
2573 &quot;notInstalled&quot;: True or False, # If an app is not installed and thus no test can be run with the app.
2574 # This might be caused by trying to run a test on an unsupported platform.
2575 &quot;timedOut&quot;: True or False, # If the test overran some time limit, and that is why it failed.
2576 &quot;otherNativeCrash&quot;: True or False, # If a native process (including any other than the app) crashed.
2577 &quot;crashed&quot;: True or False, # If the failure was severe because the system (app) under test crashed.
2578 },
2579 &quot;inconclusiveDetail&quot;: { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome.
2580 #
2581 # Returns INVALID_ARGUMENT if this field is set
2582 # but the summary is not INCONCLUSIVE.
2583 #
2584 # Optional
2585 &quot;hasErrorLogs&quot;: True or False, # If results are being provided to the user in certain cases of
2586 # infrastructure failures
2587 &quot;infrastructureFailure&quot;: True or False, # If the test runner could not determine success or failure because the test
2588 # depends on a component other than the system under test which failed.
2589 #
2590 # For example, a mobile test requires provisioning a device where the test
2591 # executes, and that provisioning can fail.
2592 &quot;abortedByUser&quot;: True or False, # If the end user aborted the test execution before a pass or fail could be
2593 # determined.
2594 # For example, the user pressed ctrl-c which sent a kill signal to the test
2595 # runner while the test was running.
2596 },
2597 &quot;successDetail&quot;: { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome.
2598 #
2599 # Returns INVALID_ARGUMENT if this field is set
2600 # but the summary is not SUCCESS.
2601 #
2602 # Optional
2603 # LINT.IfChange
2604 &quot;otherNativeCrash&quot;: True or False, # If a native process other than the app crashed.
2605 },
2606 &quot;skippedDetail&quot;: { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
2607 #
2608 # Returns INVALID_ARGUMENT if this field is set
2609 # but the summary is not SKIPPED.
2610 #
2611 # Optional
2612 &quot;incompatibleAppVersion&quot;: True or False, # If the App doesn&#x27;t support the specific API level.
2613 &quot;incompatibleDevice&quot;: True or False, # If the requested OS version doesn&#x27;t run on the specific device model.
2614 &quot;incompatibleArchitecture&quot;: True or False, # If the App doesn&#x27;t run on the specific architecture, for example, x86.
2615 },
2616 },
2617 &quot;toolExecutionStep&quot;: { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don&#x27;t explicitly support).
2618 # For example: running cp to copy artifacts from one location to another.
2619 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution.
2620 #
2621 # - In response: present if set by create/update request
2622 # - In create/update request: optional
2623 # copying artifacts or deploying code.
2624 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
2625 # argv in a C program).
2626 #
2627 # - In response: present if set by create request
2628 # - In create request: optional
2629 # - In update request: never set
2630 &quot;A String&quot;,
2631 ],
2632 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
2633 # exited.
2634 #
2635 # - In response: present if set by create/update request
2636 # - In create request: optional
2637 # - In update request: optional, a FAILED_PRECONDITION error will be
2638 # returned if an exit_code is already set.
2639 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
2640 # successful.
2641 #
2642 # - In response: always set
2643 # - In create/update request: always set
2644 },
2645 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
2646 #
2647 # This field can be set before the tool has exited in order to be able to
2648 # have access to a live view of the logs while the tool is running.
2649 #
2650 # The maximum allowed number of tool logs per step is 1000.
2651 #
2652 # - In response: present if set by create/update request
2653 # - In create request: optional
2654 # - In update request: optional, any value provided will be appended to the
2655 # existing list
2656 { # A reference to a file.
2657 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
2658 #
2659 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
2660 # or in gsutil format: gs://mybucket/path/to/test.xml
2661 # with version-specific info,
2662 # gs://mybucket/path/to/test.xml#1360383693690000
2663 #
2664 # An INVALID_ARGUMENT error will be returned if the URI format is not
2665 # supported.
2666 #
2667 # - In response: always set
2668 # - In create/update request: always set
2669 },
2670 ],
2671 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
2672 #
2673 # The maximum allowed number of tool outputs per step is 1000.
2674 #
2675 # - In response: present if set by create/update request
2676 # - In create request: optional
2677 # - In update request: optional, any value provided will be appended to the
2678 # existing list
2679 { # A reference to a ToolExecution output file.
2680 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
2681 #
2682 # - In response: present if set by create/update request
2683 # - In create/update request: optional
2684 # calendar, encoded as a count of seconds and fractions of seconds at
2685 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
2686 # January 1, 1970, in the proleptic Gregorian calendar which extends the
2687 # Gregorian calendar backwards to year one.
2688 #
2689 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
2690 # second table is needed for interpretation, using a [24-hour linear
2691 # smear](https://developers.google.com/time/smear).
2692 #
2693 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
2694 # restricting to that range, we ensure that we can convert to and from [RFC
2695 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
2696 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
2697 # second values with fractions must still have non-negative nanos values
2698 # that count forward in time. Must be from 0 to 999,999,999
2699 # inclusive.
2700 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
2701 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
2702 # 9999-12-31T23:59:59Z inclusive.
2703 },
2704 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
2705 #
2706 # - In response: always set
2707 # - In create/update request: always set
2708 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
2709 #
2710 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
2711 # or in gsutil format: gs://mybucket/path/to/test.xml
2712 # with version-specific info,
2713 # gs://mybucket/path/to/test.xml#1360383693690000
2714 #
2715 # An INVALID_ARGUMENT error will be returned if the URI format is not
2716 # supported.
2717 #
2718 # - In response: always set
2719 # - In create/update request: always set
2720 },
2721 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
2722 #
2723 # - In response: present if set by create/update request
2724 # - In create/update request: optional
2725 #
2726 # Test case references are canonically ordered lexicographically by these three
2727 # factors:
2728 # * First, by test_suite_name.
2729 # * Second, by class_name.
2730 # * Third, by name.
2731 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
2732 #
2733 # Required.
2734 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
2735 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
2736 },
2737 },
2738 ],
2739 },
2740 },
2741 &quot;deviceUsageDuration&quot;: { # # How much the device resource is used to perform the test.
2742 #
2743 # This is the device usage used for billing purpose, which is different from
2744 # the run_duration, for example, infrastructure failure won&#x27;t be charged for
2745 # device usage.
2746 #
2747 # PRECONDITION_FAILED will be returned if one attempts to set a
2748 # device_usage on a step which already has this field set.
2749 #
2750 # - In response: present if previously set.
2751 # - In create request: optional
2752 # - In update request: optional
2753 # A Duration represents a signed, fixed-length span of time represented
2754 # as a count of seconds and fractions of seconds at nanosecond
2755 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
2756 # or &quot;month&quot;. It is related to Timestamp in that the difference between
2757 # two Timestamp values is a Duration and it can be added or subtracted
2758 # from a Timestamp. Range is approximately +-10,000 years.
2759 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
2760 # of time. Durations less than one second are represented with a 0
2761 # `seconds` field and a positive or negative `nanos` field. For durations
2762 # of one second or more, a non-zero value for the `nanos` field must be
2763 # of the same sign as the `seconds` field. Must be from -999,999,999
2764 # to +999,999,999 inclusive.
2765 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
2766 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
2767 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
2768 },
2769 &quot;labels&quot;: [ # Arbitrary user-supplied key/value pairs that are associated with the
2770 # step.
2771 #
2772 # Users are responsible for managing the key namespace such that keys
2773 # don&#x27;t accidentally collide.
2774 #
2775 # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or
2776 # if the length of any of the keys or values exceeds 100 characters.
2777 #
2778 # - In response: always set
2779 # - In create request: optional
2780 # - In update request: optional; any new key/value pair will be added to the
2781 # map, and any new value for an existing key will update that key&#x27;s value
2782 {
2783 &quot;value&quot;: &quot;A String&quot;,
2784 &quot;key&quot;: &quot;A String&quot;,
2785 },
2786 ],
2787 }</pre>
2788</div>
2789
2790<div class="method">
2791 <code class="details" id="getPerfMetricsSummary">getPerfMetricsSummary(projectId, historyId, executionId, stepId, x__xgafv=None)</code>
2792 <pre>Retrieves a PerfMetricsSummary.
2793
2794May return any of the following error code(s):
2795- NOT_FOUND - The specified PerfMetricsSummary does not exist
2796
2797Args:
2798 projectId: string, The cloud project (required)
2799 historyId: string, A tool results history ID. (required)
2800 executionId: string, A tool results execution ID. (required)
2801 stepId: string, A tool results step ID. (required)
2802 x__xgafv: string, V1 error format.
2803 Allowed values
2804 1 - v1 error format
2805 2 - v2 error format
2806
2807Returns:
2808 An object of the form:
2809
2810 { # A summary of perf metrics collected and performance environment info
2811 &quot;historyId&quot;: &quot;A String&quot;, # A tool results history ID.
2812 # @OutputOnly
2813 &quot;perfEnvironment&quot;: { # Encapsulates performance environment info # Describes the environment in which the performance metrics were collected
2814 &quot;cpuInfo&quot;: { # CPU related environment info
2815 &quot;numberOfCores&quot;: 42, # the number of CPU cores
2816 &quot;cpuProcessor&quot;: &quot;A String&quot;, # description of the device processor ie &#x27;1.8 GHz hexa core 64-bit ARMv8-A&#x27;
2817 &quot;cpuSpeedInGhz&quot;: 3.14, # the CPU clock speed in GHz
2818 },
2819 &quot;memoryInfo&quot;: { # Memory related environment info
2820 &quot;memoryTotalInKibibyte&quot;: &quot;A String&quot;, # Total memory available on the device in KiB
2821 &quot;memoryCapInKibibyte&quot;: &quot;A String&quot;, # Maximum memory that can be allocated to the process in KiB
2822 },
2823 },
2824 &quot;graphicsStats&quot;: { # Graphics statistics for the App. # Graphics statistics for the entire run. Statistics are reset at the
2825 # beginning of the run and collected at the end of the run.
2826 # The information is collected from &#x27;adb shell dumpsys graphicsstats&#x27;.
2827 # For more info see:
2828 # https://developer.android.com/training/testing/performance.html
2829 # Statistics will only be present for API 23+.
2830 &quot;p95Millis&quot;: &quot;A String&quot;, # 95th percentile frame render time in milliseconds.
2831 &quot;missedVsyncCount&quot;: &quot;A String&quot;, # Total &quot;missed vsync&quot; events.
2832 &quot;p90Millis&quot;: &quot;A String&quot;, # 90th percentile frame render time in milliseconds.
2833 &quot;jankyFrames&quot;: &quot;A String&quot;, # Total frames with slow render time. Should be &lt;= total_frames.
2834 &quot;slowBitmapUploadCount&quot;: &quot;A String&quot;, # Total &quot;slow bitmap upload&quot; events.
2835 &quot;buckets&quot;: [ # Histogram of frame render times. There should be 154 buckets ranging from
2836 # [5ms, 6ms) to [4950ms, infinity)
2837 {
2838 &quot;frameCount&quot;: &quot;A String&quot;, # Number of frames in the bucket.
2839 &quot;renderMillis&quot;: &quot;A String&quot;, # Lower bound of render time in milliseconds.
2840 },
2841 ],
2842 &quot;totalFrames&quot;: &quot;A String&quot;, # Total frames rendered by package.
2843 &quot;p50Millis&quot;: &quot;A String&quot;, # 50th percentile frame render time in milliseconds.
2844 &quot;slowUiThreadCount&quot;: &quot;A String&quot;, # Total &quot;slow UI thread&quot; events.
2845 &quot;p99Millis&quot;: &quot;A String&quot;, # 99th percentile frame render time in milliseconds.
2846 &quot;slowDrawCount&quot;: &quot;A String&quot;, # Total &quot;slow draw&quot; events.
2847 &quot;highInputLatencyCount&quot;: &quot;A String&quot;, # Total &quot;high input latency&quot; events.
2848 },
2849 &quot;projectId&quot;: &quot;A String&quot;, # The cloud project
2850 # @OutputOnly
2851 &quot;perfMetrics&quot;: [ # Set of resource collected
2852 &quot;A String&quot;,
2853 ],
2854 &quot;appStartTime&quot;: {
2855 &quot;initialDisplayTime&quot;: { # # The time from app start to the first displayed activity being drawn,
2856 # as reported in Logcat. See
2857 # https://developer.android.com/topic/performance/launch-time.html#time-initial
2858 # A Duration represents a signed, fixed-length span of time represented
2859 # as a count of seconds and fractions of seconds at nanosecond
2860 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
2861 # or &quot;month&quot;. It is related to Timestamp in that the difference between
2862 # two Timestamp values is a Duration and it can be added or subtracted
2863 # from a Timestamp. Range is approximately +-10,000 years.
2864 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
2865 # of time. Durations less than one second are represented with a 0
2866 # `seconds` field and a positive or negative `nanos` field. For durations
2867 # of one second or more, a non-zero value for the `nanos` field must be
2868 # of the same sign as the `seconds` field. Must be from -999,999,999
2869 # to +999,999,999 inclusive.
2870 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
2871 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
2872 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
2873 },
2874 &quot;fullyDrawnTime&quot;: { # # Optional. The time from app start to reaching the developer-reported
2875 # &quot;fully drawn&quot; time. This is only stored if the app includes a call to
2876 # Activity.reportFullyDrawn(). See
2877 # https://developer.android.com/topic/performance/launch-time.html#time-full
2878 # A Duration represents a signed, fixed-length span of time represented
2879 # as a count of seconds and fractions of seconds at nanosecond
2880 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
2881 # or &quot;month&quot;. It is related to Timestamp in that the difference between
2882 # two Timestamp values is a Duration and it can be added or subtracted
2883 # from a Timestamp. Range is approximately +-10,000 years.
2884 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
2885 # of time. Durations less than one second are represented with a 0
2886 # `seconds` field and a positive or negative `nanos` field. For durations
2887 # of one second or more, a non-zero value for the `nanos` field must be
2888 # of the same sign as the `seconds` field. Must be from -999,999,999
2889 # to +999,999,999 inclusive.
2890 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
2891 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
2892 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
2893 },
2894 },
2895 &quot;executionId&quot;: &quot;A String&quot;, # A tool results execution ID.
2896 # @OutputOnly
2897 &quot;stepId&quot;: &quot;A String&quot;, # A tool results step ID.
2898 # @OutputOnly
2899 }</pre>
2900</div>
2901
2902<div class="method">
2903 <code class="details" id="list">list(projectId, historyId, executionId, pageToken=None, pageSize=None, x__xgafv=None)</code>
2904 <pre>Lists Steps for a given Execution.
2905
2906The steps are sorted by creation_time in descending order. The
2907step_id key will be used to order the steps with the same
2908creation_time.
2909
2910May return any of the following canonical error codes:
2911
2912- PERMISSION_DENIED - if the user is not authorized to read project
2913- INVALID_ARGUMENT - if the request is malformed
2914- FAILED_PRECONDITION - if an argument in the request happens to be
2915 invalid; e.g. if an attempt is made to list the
2916 children of a nonexistent Step
2917- NOT_FOUND - if the containing Execution does not exist
2918
2919Args:
2920 projectId: string, A Project id.
2921
2922Required. (required)
2923 historyId: string, A History id.
2924
2925Required. (required)
2926 executionId: string, A Execution id.
2927
2928Required. (required)
2929 pageToken: string, A continuation token to resume the query at the next item.
2930
2931Optional.
2932 pageSize: integer, The maximum number of Steps to fetch.
2933
2934Default value: 25. The server will use this default if the field is not set
2935or has a value of 0.
2936
2937Optional.
2938 x__xgafv: string, V1 error format.
2939 Allowed values
2940 1 - v1 error format
2941 2 - v2 error format
2942
2943Returns:
2944 An object of the form:
2945
2946 { # Response message for StepService.List.
2947 &quot;nextPageToken&quot;: &quot;A String&quot;, # A continuation token to resume the query at the next item.
2948 #
2949 # If set, indicates that there are more steps to read, by calling list again
2950 # with this value in the page_token field.
2951 &quot;steps&quot;: [ # Steps.
2952 { # A Step represents a single operation performed as part of
2953 # Execution. A step can be used to represent the execution of a tool (
2954 # for example a test runner execution or an execution of a compiler).
2955 #
2956 # Steps can overlap (for instance two steps might have the same
2957 # start time if some operations are done in parallel).
2958 #
2959 # Here is an example, let&#x27;s consider that we have a continuous build is
2960 # executing a test runner for each iteration. The workflow would look like:
2961 # - user creates a Execution with id 1
2962 # - user creates an TestExecutionStep with id 100 for Execution 1
2963 # - user update TestExecutionStep with id 100 to add a raw xml log
2964 # + the service parses the xml logs and returns a TestExecutionStep with
2965 # updated TestResult(s).
2966 # - user update the status of TestExecutionStep with id 100 to COMPLETE
2967 #
2968 # A Step can be updated until its state is set to COMPLETE at which
2969 # points it becomes immutable.
2970 #
2971 # Next tag: 27
2972 &quot;hasImages&quot;: True or False, # Whether any of the outputs of this step are images whose
2973 # thumbnails can be fetched with ListThumbnails.
2974 #
2975 # - In response: always set
2976 # - In create/update request: never set
2977 &quot;runDuration&quot;: { # # How long it took for this step to run.
2978 #
2979 # If unset, this is set to the difference between creation_time and
2980 # completion_time when the step is set to the COMPLETE state. In some cases,
2981 # it is appropriate to set this value separately: For instance, if a step is
2982 # created, but the operation it represents is queued for a few minutes before
2983 # it executes, it would be appropriate not to include the time spent queued
2984 # in its run_duration.
2985 #
2986 # PRECONDITION_FAILED will be returned if one attempts to set a
2987 # run_duration on a step which already has this field set.
2988 #
2989 # - In response: present if previously set; always present on COMPLETE step
2990 # - In create request: optional
2991 # - In update request: optional
2992 # A Duration represents a signed, fixed-length span of time represented
2993 # as a count of seconds and fractions of seconds at nanosecond
2994 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
2995 # or &quot;month&quot;. It is related to Timestamp in that the difference between
2996 # two Timestamp values is a Duration and it can be added or subtracted
2997 # from a Timestamp. Range is approximately +-10,000 years.
2998 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
2999 # of time. Durations less than one second are represented with a 0
3000 # `seconds` field and a positive or negative `nanos` field. For durations
3001 # of one second or more, a non-zero value for the `nanos` field must be
3002 # of the same sign as the `seconds` field. Must be from -999,999,999
3003 # to +999,999,999 inclusive.
3004 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
3005 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
3006 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
3007 },
3008 &quot;description&quot;: &quot;A String&quot;, # A description of this tool
3009 # For example: mvn clean package -D skipTests=true
3010 #
3011 # - In response: present if set by create/update request
3012 # - In create/update request: optional
3013 &quot;testExecutionStep&quot;: { # A step that represents running tests. # An execution of a test runner.
3014 #
3015 # It accepts ant-junit xml files which will be parsed into structured test
3016 # results by the service. Xml file paths are updated in order to append more
3017 # files, however they can&#x27;t be deleted.
3018 #
3019 # Users can also add test results manually by using the test_result field.
3020 &quot;testIssues&quot;: [ # Issues observed during the test execution.
3021 #
3022 # For example, if the mobile app under test crashed during the test,
3023 # the error message and the stack trace content can be recorded here
3024 # to assist debugging.
3025 #
3026 # - In response: present if set by create or update
3027 # - In create/update request: optional
3028 { # An issue detected occurring during a test execution.
3029 &quot;warning&quot;: { # # Warning message with additional details of the issue.
3030 # Should always be a message from com.google.devtools.toolresults.v1.warnings
3031 # `Any` contains an arbitrary serialized protocol buffer message along with a
3032 # URL that describes the type of the serialized message.
3033 #
3034 # Protobuf library provides support to pack/unpack Any values in the form
3035 # of utility functions or additional generated methods of the Any type.
3036 #
3037 # Example 1: Pack and unpack a message in C++.
3038 #
3039 # Foo foo = ...;
3040 # Any any;
3041 # any.PackFrom(foo);
3042 # ...
3043 # if (any.UnpackTo(&amp;foo)) {
3044 # ...
3045 # }
3046 #
3047 # Example 2: Pack and unpack a message in Java.
3048 #
3049 # Foo foo = ...;
3050 # Any any = Any.pack(foo);
3051 # ...
3052 # if (any.is(Foo.class)) {
3053 # foo = any.unpack(Foo.class);
3054 # }
3055 #
3056 # Example 3: Pack and unpack a message in Python.
3057 #
3058 # foo = Foo(...)
3059 # any = Any()
3060 # any.Pack(foo)
3061 # ...
3062 # if any.Is(Foo.DESCRIPTOR):
3063 # any.Unpack(foo)
3064 # ...
3065 #
3066 # Example 4: Pack and unpack a message in Go
3067 #
3068 # foo := &amp;pb.Foo{...}
3069 # any, err := ptypes.MarshalAny(foo)
3070 # ...
3071 # foo := &amp;pb.Foo{}
3072 # if err := ptypes.UnmarshalAny(any, foo); err != nil {
3073 # ...
3074 # }
3075 #
3076 # The pack methods provided by protobuf library will by default use
3077 # &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack
3078 # methods only use the fully qualified type name after the last &#x27;/&#x27;
3079 # in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type
3080 # name &quot;y.z&quot;.
3081 #
3082 #
3083 # # JSON
3084 #
3085 # The JSON representation of an `Any` value uses the regular
3086 # representation of the deserialized, embedded message, with an
3087 # additional field `@type` which contains the type URL. Example:
3088 #
3089 # package google.profile;
3090 # message Person {
3091 # string first_name = 1;
3092 # string last_name = 2;
3093 # }
3094 #
3095 # {
3096 # &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;,
3097 # &quot;firstName&quot;: &lt;string&gt;,
3098 # &quot;lastName&quot;: &lt;string&gt;
3099 # }
3100 #
3101 # If the embedded message type is well-known and has a custom JSON
3102 # representation, that representation will be embedded adding a field
3103 # `value` which holds the custom JSON in addition to the `@type`
3104 # field. Example (for message google.protobuf.Duration):
3105 #
3106 # {
3107 # &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;,
3108 # &quot;value&quot;: &quot;1.212s&quot;
3109 # }
3110 &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized
3111 # protocol buffer message. This string must contain at least
3112 # one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent
3113 # the fully qualified name of the type (as in
3114 # `path/google.protobuf.Duration`). The name should be in a canonical form
3115 # (e.g., leading &quot;.&quot; is not accepted).
3116 #
3117 # In practice, teams usually precompile into the binary all types that they
3118 # expect it to use in the context of Any. However, for URLs which use the
3119 # scheme `http`, `https`, or no scheme, one can optionally set up a type
3120 # server that maps type URLs to message definitions as follows:
3121 #
3122 # * If no scheme is provided, `https` is assumed.
3123 # * An HTTP GET on the URL must yield a google.protobuf.Type
3124 # value in binary format, or produce an error.
3125 # * Applications are allowed to cache lookup results based on the
3126 # URL, or have them precompiled into a binary to avoid any
3127 # lookup. Therefore, binary compatibility needs to be preserved
3128 # on changes to types. (Use versioned type names to manage
3129 # breaking changes.)
3130 #
3131 # Note: this functionality is not currently available in the official
3132 # protobuf release, and it is not used for type URLs beginning with
3133 # type.googleapis.com.
3134 #
3135 # Schemes other than `http`, `https` (or the empty scheme) might be
3136 # used with implementation specific semantics.
3137 &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
3138 },
3139 &quot;severity&quot;: &quot;A String&quot;, # Severity of issue.
3140 # Required.
3141 &quot;stackTrace&quot;: { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings.
3142 &quot;exception&quot;: &quot;A String&quot;, # The stack trace message.
3143 #
3144 # Required
3145 },
3146 &quot;type&quot;: &quot;A String&quot;, # Type of issue.
3147 # Required.
3148 &quot;errorMessage&quot;: &quot;A String&quot;, # A brief human-readable message describing the issue.
3149 # Required.
3150 &quot;category&quot;: &quot;A String&quot;, # Category of issue.
3151 # Required.
3152 },
3153 ],
3154 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner.
3155 #
3156 # The exit code of this tool will be used to determine if the test passed.
3157 #
3158 # - In response: always set
3159 # - In create/update request: optional
3160 # copying artifacts or deploying code.
3161 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
3162 # argv in a C program).
3163 #
3164 # - In response: present if set by create request
3165 # - In create request: optional
3166 # - In update request: never set
3167 &quot;A String&quot;,
3168 ],
3169 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
3170 # exited.
3171 #
3172 # - In response: present if set by create/update request
3173 # - In create request: optional
3174 # - In update request: optional, a FAILED_PRECONDITION error will be
3175 # returned if an exit_code is already set.
3176 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
3177 # successful.
3178 #
3179 # - In response: always set
3180 # - In create/update request: always set
3181 },
3182 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
3183 #
3184 # This field can be set before the tool has exited in order to be able to
3185 # have access to a live view of the logs while the tool is running.
3186 #
3187 # The maximum allowed number of tool logs per step is 1000.
3188 #
3189 # - In response: present if set by create/update request
3190 # - In create request: optional
3191 # - In update request: optional, any value provided will be appended to the
3192 # existing list
3193 { # A reference to a file.
3194 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
3195 #
3196 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
3197 # or in gsutil format: gs://mybucket/path/to/test.xml
3198 # with version-specific info,
3199 # gs://mybucket/path/to/test.xml#1360383693690000
3200 #
3201 # An INVALID_ARGUMENT error will be returned if the URI format is not
3202 # supported.
3203 #
3204 # - In response: always set
3205 # - In create/update request: always set
3206 },
3207 ],
3208 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
3209 #
3210 # The maximum allowed number of tool outputs per step is 1000.
3211 #
3212 # - In response: present if set by create/update request
3213 # - In create request: optional
3214 # - In update request: optional, any value provided will be appended to the
3215 # existing list
3216 { # A reference to a ToolExecution output file.
3217 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
3218 #
3219 # - In response: present if set by create/update request
3220 # - In create/update request: optional
3221 # calendar, encoded as a count of seconds and fractions of seconds at
3222 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
3223 # January 1, 1970, in the proleptic Gregorian calendar which extends the
3224 # Gregorian calendar backwards to year one.
3225 #
3226 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
3227 # second table is needed for interpretation, using a [24-hour linear
3228 # smear](https://developers.google.com/time/smear).
3229 #
3230 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
3231 # restricting to that range, we ensure that we can convert to and from [RFC
3232 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
3233 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
3234 # second values with fractions must still have non-negative nanos values
3235 # that count forward in time. Must be from 0 to 999,999,999
3236 # inclusive.
3237 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
3238 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
3239 # 9999-12-31T23:59:59Z inclusive.
3240 },
3241 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
3242 #
3243 # - In response: always set
3244 # - In create/update request: always set
3245 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
3246 #
3247 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
3248 # or in gsutil format: gs://mybucket/path/to/test.xml
3249 # with version-specific info,
3250 # gs://mybucket/path/to/test.xml#1360383693690000
3251 #
3252 # An INVALID_ARGUMENT error will be returned if the URI format is not
3253 # supported.
3254 #
3255 # - In response: always set
3256 # - In create/update request: always set
3257 },
3258 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
3259 #
3260 # - In response: present if set by create/update request
3261 # - In create/update request: optional
3262 #
3263 # Test case references are canonically ordered lexicographically by these three
3264 # factors:
3265 # * First, by test_suite_name.
3266 # * Second, by class_name.
3267 # * Third, by name.
3268 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
3269 #
3270 # Required.
3271 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
3272 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
3273 },
3274 },
3275 ],
3276 },
3277 &quot;testSuiteOverviews&quot;: [ # List of test suite overview contents. This could be parsed from xUnit XML
3278 # log by server, or uploaded directly by user. This references should only be
3279 # called when test suites are fully parsed or uploaded.
3280 #
3281 # The maximum allowed number of test suite overviews per step is 1000.
3282 #
3283 # - In response: always set
3284 # - In create request: optional
3285 # - In update request: never (use publishXunitXmlFiles custom method instead)
3286 { # A summary of a test suite result either parsed from XML or uploaded
3287 # directly by a user.
3288 #
3289 # Note: the API related comments are for StepService only. This message is
3290 # also being used in ExecutionService in a read only mode for the corresponding
3291 # step.
3292 &quot;name&quot;: &quot;A String&quot;, # The name of the test suite.
3293 #
3294 # - In create/response: always set
3295 # - In update request: never
3296 &quot;elapsedTime&quot;: { # # Elapsed time of test suite.
3297 # A Duration represents a signed, fixed-length span of time represented
3298 # as a count of seconds and fractions of seconds at nanosecond
3299 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
3300 # or &quot;month&quot;. It is related to Timestamp in that the difference between
3301 # two Timestamp values is a Duration and it can be added or subtracted
3302 # from a Timestamp. Range is approximately +-10,000 years.
3303 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
3304 # of time. Durations less than one second are represented with a 0
3305 # `seconds` field and a positive or negative `nanos` field. For durations
3306 # of one second or more, a non-zero value for the `nanos` field must be
3307 # of the same sign as the `seconds` field. Must be from -999,999,999
3308 # to +999,999,999 inclusive.
3309 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
3310 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
3311 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
3312 },
3313 &quot;flakyCount&quot;: 42, # Number of flaky test cases, set by the service by rolling up flaky test
3314 # attempts.
3315 #
3316 # Present only for rollup test suite overview at environment level. A step
3317 # cannot have flaky test cases.
3318 &quot;errorCount&quot;: 42, # Number of test cases in error, typically set by the service by parsing the
3319 # xml_source.
3320 #
3321 # - In create/response: always set
3322 # - In update request: never
3323 &quot;totalCount&quot;: 42, # Number of test cases, typically set by the service by parsing the
3324 # xml_source.
3325 #
3326 # - In create/response: always set
3327 # - In update request: never
3328 &quot;skippedCount&quot;: 42, # Number of test cases not run, typically set by the service by parsing the
3329 # xml_source.
3330 #
3331 # - In create/response: always set
3332 # - In update request: never
3333 &quot;xmlSource&quot;: { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original
3334 # XML file is stored.
3335 #
3336 # Note: Multiple test suites can share the same xml_source
3337 #
3338 # Returns INVALID_ARGUMENT if the uri format is not supported.
3339 #
3340 # - In create/response: optional
3341 # - In update request: never
3342 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
3343 #
3344 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
3345 # or in gsutil format: gs://mybucket/path/to/test.xml
3346 # with version-specific info,
3347 # gs://mybucket/path/to/test.xml#1360383693690000
3348 #
3349 # An INVALID_ARGUMENT error will be returned if the URI format is not
3350 # supported.
3351 #
3352 # - In response: always set
3353 # - In create/update request: always set
3354 },
3355 &quot;failureCount&quot;: 42, # Number of failed test cases, typically set by the service by parsing the
3356 # xml_source. May also be set by the user.
3357 #
3358 # - In create/response: always set
3359 # - In update request: never
3360 },
3361 ],
3362 &quot;testTiming&quot;: { # Testing timing break down to know phases. # The timing break down of the test execution.
3363 #
3364 # - In response: present if set by create or update
3365 # - In create/update request: optional
3366 &quot;testProcessDuration&quot;: { # # How long it took to run the test process.
3367 #
3368 # - In response: present if previously set.
3369 # - In create/update request: optional
3370 # A Duration represents a signed, fixed-length span of time represented
3371 # as a count of seconds and fractions of seconds at nanosecond
3372 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
3373 # or &quot;month&quot;. It is related to Timestamp in that the difference between
3374 # two Timestamp values is a Duration and it can be added or subtracted
3375 # from a Timestamp. Range is approximately +-10,000 years.
3376 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
3377 # of time. Durations less than one second are represented with a 0
3378 # `seconds` field and a positive or negative `nanos` field. For durations
3379 # of one second or more, a non-zero value for the `nanos` field must be
3380 # of the same sign as the `seconds` field. Must be from -999,999,999
3381 # to +999,999,999 inclusive.
3382 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
3383 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
3384 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
3385 },
3386 },
3387 },
3388 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created.
3389 #
3390 # - In response: always set
3391 # - In create/update request: never set
3392 # calendar, encoded as a count of seconds and fractions of seconds at
3393 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
3394 # January 1, 1970, in the proleptic Gregorian calendar which extends the
3395 # Gregorian calendar backwards to year one.
3396 #
3397 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
3398 # second table is needed for interpretation, using a [24-hour linear
3399 # smear](https://developers.google.com/time/smear).
3400 #
3401 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
3402 # restricting to that range, we ensure that we can convert to and from [RFC
3403 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
3404 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
3405 # second values with fractions must still have non-negative nanos values
3406 # that count forward in time. Must be from 0 to 999,999,999
3407 # inclusive.
3408 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
3409 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
3410 # 9999-12-31T23:59:59Z inclusive.
3411 },
3412 &quot;state&quot;: &quot;A String&quot;, # The initial state is IN_PROGRESS.
3413 # The only legal state transitions are
3414 # * IN_PROGRESS -&gt; COMPLETE
3415 #
3416 # A PRECONDITION_FAILED will be returned if an invalid transition is
3417 # requested.
3418 #
3419 # It is valid to create Step with a state set to COMPLETE.
3420 # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be
3421 # returned if the state is set to COMPLETE multiple times.
3422 #
3423 # - In response: always set
3424 # - In create/update request: optional
3425 &quot;name&quot;: &quot;A String&quot;, # A short human-readable name to display in the UI.
3426 # Maximum of 100 characters.
3427 # For example: Clean build
3428 #
3429 # A PRECONDITION_FAILED will be returned upon creating a new step if it
3430 # shares its name and dimension_value with an existing step. If two steps
3431 # represent a similar action, but have different dimension values, they
3432 # should share the same name. For instance, if the same set of tests is
3433 # run on two different platforms, the two steps should have the same name.
3434 #
3435 # - In response: always set
3436 # - In create request: always set
3437 # - In update request: never set
3438 &quot;dimensionValue&quot;: [ # If the execution containing this step has any dimension_definition set,
3439 # then this field allows the child to specify the values of the dimensions.
3440 #
3441 # The keys must exactly match the dimension_definition of the execution.
3442 #
3443 # For example, if the execution has
3444 # `dimension_definition = [&#x27;attempt&#x27;, &#x27;device&#x27;]`
3445 # then a step must define values for those dimensions, eg.
3446 # `dimension_value = [&#x27;attempt&#x27;: &#x27;1&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
3447 #
3448 # If a step does not participate in one dimension of the matrix,
3449 # the value for that dimension should be empty string.
3450 # For example, if one of the tests is executed by a runner which
3451 # does not support retries, the step could have
3452 # `dimension_value = [&#x27;attempt&#x27;: &#x27;&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
3453 #
3454 # If the step does not participate in any dimensions of the matrix,
3455 # it may leave dimension_value unset.
3456 #
3457 # A PRECONDITION_FAILED will be returned if any of the keys do not exist
3458 # in the dimension_definition of the execution.
3459 #
3460 # A PRECONDITION_FAILED will be returned if another step in this execution
3461 # already has the same name and dimension_value, but differs on other data
3462 # fields, for example, step field is different.
3463 #
3464 # A PRECONDITION_FAILED will be returned if dimension_value is set, and
3465 # there is a dimension_definition in the execution which is not specified
3466 # as one of the keys.
3467 #
3468 # - In response: present if set by create
3469 # - In create request: optional
3470 # - In update request: never set
3471 {
3472 &quot;value&quot;: &quot;A String&quot;,
3473 &quot;key&quot;: &quot;A String&quot;,
3474 },
3475 ],
3476 &quot;completionTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete.
3477 #
3478 # This value will be set automatically when state transitions to
3479 # COMPLETE.
3480 #
3481 # - In response: set if the execution state is COMPLETE.
3482 # - In create/update request: never set
3483 # calendar, encoded as a count of seconds and fractions of seconds at
3484 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
3485 # January 1, 1970, in the proleptic Gregorian calendar which extends the
3486 # Gregorian calendar backwards to year one.
3487 #
3488 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
3489 # second table is needed for interpretation, using a [24-hour linear
3490 # smear](https://developers.google.com/time/smear).
3491 #
3492 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
3493 # restricting to that range, we ensure that we can convert to and from [RFC
3494 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
3495 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
3496 # second values with fractions must still have non-negative nanos values
3497 # that count forward in time. Must be from 0 to 999,999,999
3498 # inclusive.
3499 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
3500 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
3501 # 9999-12-31T23:59:59Z inclusive.
3502 },
3503 &quot;multiStep&quot;: { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group.
3504 # These details can be used identify which group this step is part of.
3505 # It also identifies the groups &#x27;primary step&#x27; which indexes all the group
3506 # members.
3507 #
3508 # - In response: present if previously set.
3509 # - In create request: optional, set iff this step was performed more than
3510 # once.
3511 # - In update request: optional
3512 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
3513 # Ranges from 0(inclusive) to total number of steps(exclusive).
3514 # The primary step is 0.
3515 &quot;primaryStepId&quot;: &quot;A String&quot;, # Step Id of the primary (original) step, which might be this step.
3516 &quot;primaryStep&quot;: { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step.
3517 # outcome of each individual step.
3518 &quot;rollUp&quot;: &quot;A String&quot;, # Rollup test status of multiple steps that were run with the same
3519 # configuration as a group.
3520 &quot;individualOutcome&quot;: [ # Step Id and outcome of each individual step.
3521 { # Step Id and outcome of each individual step that was run as a group with
3522 # other steps with the same configuration.
3523 &quot;runDuration&quot;: { # # How long it took for this step to run.
3524 # A Duration represents a signed, fixed-length span of time represented
3525 # as a count of seconds and fractions of seconds at nanosecond
3526 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
3527 # or &quot;month&quot;. It is related to Timestamp in that the difference between
3528 # two Timestamp values is a Duration and it can be added or subtracted
3529 # from a Timestamp. Range is approximately +-10,000 years.
3530 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
3531 # of time. Durations less than one second are represented with a 0
3532 # `seconds` field and a positive or negative `nanos` field. For durations
3533 # of one second or more, a non-zero value for the `nanos` field must be
3534 # of the same sign as the `seconds` field. Must be from -999,999,999
3535 # to +999,999,999 inclusive.
3536 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
3537 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
3538 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
3539 },
3540 &quot;stepId&quot;: &quot;A String&quot;,
3541 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
3542 # Ranges from 0(inclusive) to total number of steps(exclusive).
3543 # The primary step is 0.
3544 &quot;outcomeSummary&quot;: &quot;A String&quot;,
3545 },
3546 ],
3547 },
3548 },
3549 &quot;stepId&quot;: &quot;A String&quot;, # A unique identifier within a Execution for this Step.
3550 #
3551 # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
3552 #
3553 # - In response: always set
3554 # - In create/update request: never set
3555 &quot;outcome&quot;: { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
3556 #
3557 # - In response: present if set by create/update request
3558 # - In create/update request: optional
3559 &quot;summary&quot;: &quot;A String&quot;, # The simplest way to interpret a result.
3560 #
3561 # Required
3562 &quot;failureDetail&quot;: { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
3563 #
3564 # Returns INVALID_ARGUMENT if this field is set
3565 # but the summary is not FAILURE.
3566 #
3567 # Optional
3568 &quot;unableToCrawl&quot;: True or False, # If the robo was unable to crawl the app; perhaps because the app did not
3569 # start.
3570 &quot;notInstalled&quot;: True or False, # If an app is not installed and thus no test can be run with the app.
3571 # This might be caused by trying to run a test on an unsupported platform.
3572 &quot;timedOut&quot;: True or False, # If the test overran some time limit, and that is why it failed.
3573 &quot;otherNativeCrash&quot;: True or False, # If a native process (including any other than the app) crashed.
3574 &quot;crashed&quot;: True or False, # If the failure was severe because the system (app) under test crashed.
3575 },
3576 &quot;inconclusiveDetail&quot;: { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome.
3577 #
3578 # Returns INVALID_ARGUMENT if this field is set
3579 # but the summary is not INCONCLUSIVE.
3580 #
3581 # Optional
3582 &quot;hasErrorLogs&quot;: True or False, # If results are being provided to the user in certain cases of
3583 # infrastructure failures
3584 &quot;infrastructureFailure&quot;: True or False, # If the test runner could not determine success or failure because the test
3585 # depends on a component other than the system under test which failed.
3586 #
3587 # For example, a mobile test requires provisioning a device where the test
3588 # executes, and that provisioning can fail.
3589 &quot;abortedByUser&quot;: True or False, # If the end user aborted the test execution before a pass or fail could be
3590 # determined.
3591 # For example, the user pressed ctrl-c which sent a kill signal to the test
3592 # runner while the test was running.
3593 },
3594 &quot;successDetail&quot;: { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome.
3595 #
3596 # Returns INVALID_ARGUMENT if this field is set
3597 # but the summary is not SUCCESS.
3598 #
3599 # Optional
3600 # LINT.IfChange
3601 &quot;otherNativeCrash&quot;: True or False, # If a native process other than the app crashed.
3602 },
3603 &quot;skippedDetail&quot;: { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
3604 #
3605 # Returns INVALID_ARGUMENT if this field is set
3606 # but the summary is not SKIPPED.
3607 #
3608 # Optional
3609 &quot;incompatibleAppVersion&quot;: True or False, # If the App doesn&#x27;t support the specific API level.
3610 &quot;incompatibleDevice&quot;: True or False, # If the requested OS version doesn&#x27;t run on the specific device model.
3611 &quot;incompatibleArchitecture&quot;: True or False, # If the App doesn&#x27;t run on the specific architecture, for example, x86.
3612 },
3613 },
3614 &quot;toolExecutionStep&quot;: { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don&#x27;t explicitly support).
3615 # For example: running cp to copy artifacts from one location to another.
3616 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution.
3617 #
3618 # - In response: present if set by create/update request
3619 # - In create/update request: optional
3620 # copying artifacts or deploying code.
3621 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
3622 # argv in a C program).
3623 #
3624 # - In response: present if set by create request
3625 # - In create request: optional
3626 # - In update request: never set
3627 &quot;A String&quot;,
3628 ],
3629 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
3630 # exited.
3631 #
3632 # - In response: present if set by create/update request
3633 # - In create request: optional
3634 # - In update request: optional, a FAILED_PRECONDITION error will be
3635 # returned if an exit_code is already set.
3636 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
3637 # successful.
3638 #
3639 # - In response: always set
3640 # - In create/update request: always set
3641 },
3642 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
3643 #
3644 # This field can be set before the tool has exited in order to be able to
3645 # have access to a live view of the logs while the tool is running.
3646 #
3647 # The maximum allowed number of tool logs per step is 1000.
3648 #
3649 # - In response: present if set by create/update request
3650 # - In create request: optional
3651 # - In update request: optional, any value provided will be appended to the
3652 # existing list
3653 { # A reference to a file.
3654 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
3655 #
3656 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
3657 # or in gsutil format: gs://mybucket/path/to/test.xml
3658 # with version-specific info,
3659 # gs://mybucket/path/to/test.xml#1360383693690000
3660 #
3661 # An INVALID_ARGUMENT error will be returned if the URI format is not
3662 # supported.
3663 #
3664 # - In response: always set
3665 # - In create/update request: always set
3666 },
3667 ],
3668 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
3669 #
3670 # The maximum allowed number of tool outputs per step is 1000.
3671 #
3672 # - In response: present if set by create/update request
3673 # - In create request: optional
3674 # - In update request: optional, any value provided will be appended to the
3675 # existing list
3676 { # A reference to a ToolExecution output file.
3677 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
3678 #
3679 # - In response: present if set by create/update request
3680 # - In create/update request: optional
3681 # calendar, encoded as a count of seconds and fractions of seconds at
3682 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
3683 # January 1, 1970, in the proleptic Gregorian calendar which extends the
3684 # Gregorian calendar backwards to year one.
3685 #
3686 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
3687 # second table is needed for interpretation, using a [24-hour linear
3688 # smear](https://developers.google.com/time/smear).
3689 #
3690 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
3691 # restricting to that range, we ensure that we can convert to and from [RFC
3692 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
3693 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
3694 # second values with fractions must still have non-negative nanos values
3695 # that count forward in time. Must be from 0 to 999,999,999
3696 # inclusive.
3697 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
3698 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
3699 # 9999-12-31T23:59:59Z inclusive.
3700 },
3701 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
3702 #
3703 # - In response: always set
3704 # - In create/update request: always set
3705 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
3706 #
3707 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
3708 # or in gsutil format: gs://mybucket/path/to/test.xml
3709 # with version-specific info,
3710 # gs://mybucket/path/to/test.xml#1360383693690000
3711 #
3712 # An INVALID_ARGUMENT error will be returned if the URI format is not
3713 # supported.
3714 #
3715 # - In response: always set
3716 # - In create/update request: always set
3717 },
3718 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
3719 #
3720 # - In response: present if set by create/update request
3721 # - In create/update request: optional
3722 #
3723 # Test case references are canonically ordered lexicographically by these three
3724 # factors:
3725 # * First, by test_suite_name.
3726 # * Second, by class_name.
3727 # * Third, by name.
3728 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
3729 #
3730 # Required.
3731 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
3732 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
3733 },
3734 },
3735 ],
3736 },
3737 },
3738 &quot;deviceUsageDuration&quot;: { # # How much the device resource is used to perform the test.
3739 #
3740 # This is the device usage used for billing purpose, which is different from
3741 # the run_duration, for example, infrastructure failure won&#x27;t be charged for
3742 # device usage.
3743 #
3744 # PRECONDITION_FAILED will be returned if one attempts to set a
3745 # device_usage on a step which already has this field set.
3746 #
3747 # - In response: present if previously set.
3748 # - In create request: optional
3749 # - In update request: optional
3750 # A Duration represents a signed, fixed-length span of time represented
3751 # as a count of seconds and fractions of seconds at nanosecond
3752 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
3753 # or &quot;month&quot;. It is related to Timestamp in that the difference between
3754 # two Timestamp values is a Duration and it can be added or subtracted
3755 # from a Timestamp. Range is approximately +-10,000 years.
3756 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
3757 # of time. Durations less than one second are represented with a 0
3758 # `seconds` field and a positive or negative `nanos` field. For durations
3759 # of one second or more, a non-zero value for the `nanos` field must be
3760 # of the same sign as the `seconds` field. Must be from -999,999,999
3761 # to +999,999,999 inclusive.
3762 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
3763 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
3764 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
3765 },
3766 &quot;labels&quot;: [ # Arbitrary user-supplied key/value pairs that are associated with the
3767 # step.
3768 #
3769 # Users are responsible for managing the key namespace such that keys
3770 # don&#x27;t accidentally collide.
3771 #
3772 # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or
3773 # if the length of any of the keys or values exceeds 100 characters.
3774 #
3775 # - In response: always set
3776 # - In create request: optional
3777 # - In update request: optional; any new key/value pair will be added to the
3778 # map, and any new value for an existing key will update that key&#x27;s value
3779 {
3780 &quot;value&quot;: &quot;A String&quot;,
3781 &quot;key&quot;: &quot;A String&quot;,
3782 },
3783 ],
3784 },
3785 ],
3786 }</pre>
3787</div>
3788
3789<div class="method">
3790 <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
3791 <pre>Retrieves the next page of results.
3792
3793Args:
3794 previous_request: The request for the previous page. (required)
3795 previous_response: The response from the request for the previous page. (required)
3796
3797Returns:
3798 A request object that you can call &#x27;execute()&#x27; on to request the next
3799 page. Returns None if there are no more items in the collection.
3800 </pre>
3801</div>
3802
3803<div class="method">
3804 <code class="details" id="patch">patch(projectId, historyId, executionId, stepId, body=None, requestId=None, x__xgafv=None)</code>
3805 <pre>Updates an existing Step with the supplied partial entity.
3806
3807May return any of the following canonical error codes:
3808
3809- PERMISSION_DENIED - if the user is not authorized to write project
3810- INVALID_ARGUMENT - if the request is malformed
3811- FAILED_PRECONDITION - if the requested state transition is illegal
3812 (e.g try to upload a duplicate xml file), if the
3813 updated step is too large (more than 10Mib)
3814- NOT_FOUND - if the containing Execution does not exist
3815
3816Args:
3817 projectId: string, A Project id.
3818
3819Required. (required)
3820 historyId: string, A History id.
3821
3822Required. (required)
3823 executionId: string, A Execution id.
3824
3825Required. (required)
3826 stepId: string, A Step id.
3827
3828Required. (required)
3829 body: object, The request body.
3830 The object takes the form of:
3831
3832{ # A Step represents a single operation performed as part of
3833 # Execution. A step can be used to represent the execution of a tool (
3834 # for example a test runner execution or an execution of a compiler).
3835 #
3836 # Steps can overlap (for instance two steps might have the same
3837 # start time if some operations are done in parallel).
3838 #
3839 # Here is an example, let&#x27;s consider that we have a continuous build is
3840 # executing a test runner for each iteration. The workflow would look like:
3841 # - user creates a Execution with id 1
3842 # - user creates an TestExecutionStep with id 100 for Execution 1
3843 # - user update TestExecutionStep with id 100 to add a raw xml log
3844 # + the service parses the xml logs and returns a TestExecutionStep with
3845 # updated TestResult(s).
3846 # - user update the status of TestExecutionStep with id 100 to COMPLETE
3847 #
3848 # A Step can be updated until its state is set to COMPLETE at which
3849 # points it becomes immutable.
3850 #
3851 # Next tag: 27
3852 &quot;hasImages&quot;: True or False, # Whether any of the outputs of this step are images whose
3853 # thumbnails can be fetched with ListThumbnails.
3854 #
3855 # - In response: always set
3856 # - In create/update request: never set
3857 &quot;runDuration&quot;: { # # How long it took for this step to run.
3858 #
3859 # If unset, this is set to the difference between creation_time and
3860 # completion_time when the step is set to the COMPLETE state. In some cases,
3861 # it is appropriate to set this value separately: For instance, if a step is
3862 # created, but the operation it represents is queued for a few minutes before
3863 # it executes, it would be appropriate not to include the time spent queued
3864 # in its run_duration.
3865 #
3866 # PRECONDITION_FAILED will be returned if one attempts to set a
3867 # run_duration on a step which already has this field set.
3868 #
3869 # - In response: present if previously set; always present on COMPLETE step
3870 # - In create request: optional
3871 # - In update request: optional
3872 # A Duration represents a signed, fixed-length span of time represented
3873 # as a count of seconds and fractions of seconds at nanosecond
3874 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
3875 # or &quot;month&quot;. It is related to Timestamp in that the difference between
3876 # two Timestamp values is a Duration and it can be added or subtracted
3877 # from a Timestamp. Range is approximately +-10,000 years.
3878 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
3879 # of time. Durations less than one second are represented with a 0
3880 # `seconds` field and a positive or negative `nanos` field. For durations
3881 # of one second or more, a non-zero value for the `nanos` field must be
3882 # of the same sign as the `seconds` field. Must be from -999,999,999
3883 # to +999,999,999 inclusive.
3884 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
3885 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
3886 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
3887 },
3888 &quot;description&quot;: &quot;A String&quot;, # A description of this tool
3889 # For example: mvn clean package -D skipTests=true
3890 #
3891 # - In response: present if set by create/update request
3892 # - In create/update request: optional
3893 &quot;testExecutionStep&quot;: { # A step that represents running tests. # An execution of a test runner.
3894 #
3895 # It accepts ant-junit xml files which will be parsed into structured test
3896 # results by the service. Xml file paths are updated in order to append more
3897 # files, however they can&#x27;t be deleted.
3898 #
3899 # Users can also add test results manually by using the test_result field.
3900 &quot;testIssues&quot;: [ # Issues observed during the test execution.
3901 #
3902 # For example, if the mobile app under test crashed during the test,
3903 # the error message and the stack trace content can be recorded here
3904 # to assist debugging.
3905 #
3906 # - In response: present if set by create or update
3907 # - In create/update request: optional
3908 { # An issue detected occurring during a test execution.
3909 &quot;warning&quot;: { # # Warning message with additional details of the issue.
3910 # Should always be a message from com.google.devtools.toolresults.v1.warnings
3911 # `Any` contains an arbitrary serialized protocol buffer message along with a
3912 # URL that describes the type of the serialized message.
3913 #
3914 # Protobuf library provides support to pack/unpack Any values in the form
3915 # of utility functions or additional generated methods of the Any type.
3916 #
3917 # Example 1: Pack and unpack a message in C++.
3918 #
3919 # Foo foo = ...;
3920 # Any any;
3921 # any.PackFrom(foo);
3922 # ...
3923 # if (any.UnpackTo(&amp;foo)) {
3924 # ...
3925 # }
3926 #
3927 # Example 2: Pack and unpack a message in Java.
3928 #
3929 # Foo foo = ...;
3930 # Any any = Any.pack(foo);
3931 # ...
3932 # if (any.is(Foo.class)) {
3933 # foo = any.unpack(Foo.class);
3934 # }
3935 #
3936 # Example 3: Pack and unpack a message in Python.
3937 #
3938 # foo = Foo(...)
3939 # any = Any()
3940 # any.Pack(foo)
3941 # ...
3942 # if any.Is(Foo.DESCRIPTOR):
3943 # any.Unpack(foo)
3944 # ...
3945 #
3946 # Example 4: Pack and unpack a message in Go
3947 #
3948 # foo := &amp;pb.Foo{...}
3949 # any, err := ptypes.MarshalAny(foo)
3950 # ...
3951 # foo := &amp;pb.Foo{}
3952 # if err := ptypes.UnmarshalAny(any, foo); err != nil {
3953 # ...
3954 # }
3955 #
3956 # The pack methods provided by protobuf library will by default use
3957 # &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack
3958 # methods only use the fully qualified type name after the last &#x27;/&#x27;
3959 # in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type
3960 # name &quot;y.z&quot;.
3961 #
3962 #
3963 # # JSON
3964 #
3965 # The JSON representation of an `Any` value uses the regular
3966 # representation of the deserialized, embedded message, with an
3967 # additional field `@type` which contains the type URL. Example:
3968 #
3969 # package google.profile;
3970 # message Person {
3971 # string first_name = 1;
3972 # string last_name = 2;
3973 # }
3974 #
3975 # {
3976 # &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;,
3977 # &quot;firstName&quot;: &lt;string&gt;,
3978 # &quot;lastName&quot;: &lt;string&gt;
3979 # }
3980 #
3981 # If the embedded message type is well-known and has a custom JSON
3982 # representation, that representation will be embedded adding a field
3983 # `value` which holds the custom JSON in addition to the `@type`
3984 # field. Example (for message google.protobuf.Duration):
3985 #
3986 # {
3987 # &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;,
3988 # &quot;value&quot;: &quot;1.212s&quot;
3989 # }
3990 &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized
3991 # protocol buffer message. This string must contain at least
3992 # one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent
3993 # the fully qualified name of the type (as in
3994 # `path/google.protobuf.Duration`). The name should be in a canonical form
3995 # (e.g., leading &quot;.&quot; is not accepted).
3996 #
3997 # In practice, teams usually precompile into the binary all types that they
3998 # expect it to use in the context of Any. However, for URLs which use the
3999 # scheme `http`, `https`, or no scheme, one can optionally set up a type
4000 # server that maps type URLs to message definitions as follows:
4001 #
4002 # * If no scheme is provided, `https` is assumed.
4003 # * An HTTP GET on the URL must yield a google.protobuf.Type
4004 # value in binary format, or produce an error.
4005 # * Applications are allowed to cache lookup results based on the
4006 # URL, or have them precompiled into a binary to avoid any
4007 # lookup. Therefore, binary compatibility needs to be preserved
4008 # on changes to types. (Use versioned type names to manage
4009 # breaking changes.)
4010 #
4011 # Note: this functionality is not currently available in the official
4012 # protobuf release, and it is not used for type URLs beginning with
4013 # type.googleapis.com.
4014 #
4015 # Schemes other than `http`, `https` (or the empty scheme) might be
4016 # used with implementation specific semantics.
4017 &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
4018 },
4019 &quot;severity&quot;: &quot;A String&quot;, # Severity of issue.
4020 # Required.
4021 &quot;stackTrace&quot;: { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings.
4022 &quot;exception&quot;: &quot;A String&quot;, # The stack trace message.
4023 #
4024 # Required
4025 },
4026 &quot;type&quot;: &quot;A String&quot;, # Type of issue.
4027 # Required.
4028 &quot;errorMessage&quot;: &quot;A String&quot;, # A brief human-readable message describing the issue.
4029 # Required.
4030 &quot;category&quot;: &quot;A String&quot;, # Category of issue.
4031 # Required.
4032 },
4033 ],
4034 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner.
4035 #
4036 # The exit code of this tool will be used to determine if the test passed.
4037 #
4038 # - In response: always set
4039 # - In create/update request: optional
4040 # copying artifacts or deploying code.
4041 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
4042 # argv in a C program).
4043 #
4044 # - In response: present if set by create request
4045 # - In create request: optional
4046 # - In update request: never set
4047 &quot;A String&quot;,
4048 ],
4049 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
4050 # exited.
4051 #
4052 # - In response: present if set by create/update request
4053 # - In create request: optional
4054 # - In update request: optional, a FAILED_PRECONDITION error will be
4055 # returned if an exit_code is already set.
4056 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
4057 # successful.
4058 #
4059 # - In response: always set
4060 # - In create/update request: always set
4061 },
4062 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
4063 #
4064 # This field can be set before the tool has exited in order to be able to
4065 # have access to a live view of the logs while the tool is running.
4066 #
4067 # The maximum allowed number of tool logs per step is 1000.
4068 #
4069 # - In response: present if set by create/update request
4070 # - In create request: optional
4071 # - In update request: optional, any value provided will be appended to the
4072 # existing list
4073 { # A reference to a file.
4074 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
4075 #
4076 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
4077 # or in gsutil format: gs://mybucket/path/to/test.xml
4078 # with version-specific info,
4079 # gs://mybucket/path/to/test.xml#1360383693690000
4080 #
4081 # An INVALID_ARGUMENT error will be returned if the URI format is not
4082 # supported.
4083 #
4084 # - In response: always set
4085 # - In create/update request: always set
4086 },
4087 ],
4088 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
4089 #
4090 # The maximum allowed number of tool outputs per step is 1000.
4091 #
4092 # - In response: present if set by create/update request
4093 # - In create request: optional
4094 # - In update request: optional, any value provided will be appended to the
4095 # existing list
4096 { # A reference to a ToolExecution output file.
4097 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
4098 #
4099 # - In response: present if set by create/update request
4100 # - In create/update request: optional
4101 # calendar, encoded as a count of seconds and fractions of seconds at
4102 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
4103 # January 1, 1970, in the proleptic Gregorian calendar which extends the
4104 # Gregorian calendar backwards to year one.
4105 #
4106 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
4107 # second table is needed for interpretation, using a [24-hour linear
4108 # smear](https://developers.google.com/time/smear).
4109 #
4110 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
4111 # restricting to that range, we ensure that we can convert to and from [RFC
4112 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
4113 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
4114 # second values with fractions must still have non-negative nanos values
4115 # that count forward in time. Must be from 0 to 999,999,999
4116 # inclusive.
4117 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
4118 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
4119 # 9999-12-31T23:59:59Z inclusive.
4120 },
4121 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
4122 #
4123 # - In response: always set
4124 # - In create/update request: always set
4125 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
4126 #
4127 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
4128 # or in gsutil format: gs://mybucket/path/to/test.xml
4129 # with version-specific info,
4130 # gs://mybucket/path/to/test.xml#1360383693690000
4131 #
4132 # An INVALID_ARGUMENT error will be returned if the URI format is not
4133 # supported.
4134 #
4135 # - In response: always set
4136 # - In create/update request: always set
4137 },
4138 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
4139 #
4140 # - In response: present if set by create/update request
4141 # - In create/update request: optional
4142 #
4143 # Test case references are canonically ordered lexicographically by these three
4144 # factors:
4145 # * First, by test_suite_name.
4146 # * Second, by class_name.
4147 # * Third, by name.
4148 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
4149 #
4150 # Required.
4151 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
4152 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
4153 },
4154 },
4155 ],
4156 },
4157 &quot;testSuiteOverviews&quot;: [ # List of test suite overview contents. This could be parsed from xUnit XML
4158 # log by server, or uploaded directly by user. This references should only be
4159 # called when test suites are fully parsed or uploaded.
4160 #
4161 # The maximum allowed number of test suite overviews per step is 1000.
4162 #
4163 # - In response: always set
4164 # - In create request: optional
4165 # - In update request: never (use publishXunitXmlFiles custom method instead)
4166 { # A summary of a test suite result either parsed from XML or uploaded
4167 # directly by a user.
4168 #
4169 # Note: the API related comments are for StepService only. This message is
4170 # also being used in ExecutionService in a read only mode for the corresponding
4171 # step.
4172 &quot;name&quot;: &quot;A String&quot;, # The name of the test suite.
4173 #
4174 # - In create/response: always set
4175 # - In update request: never
4176 &quot;elapsedTime&quot;: { # # Elapsed time of test suite.
4177 # A Duration represents a signed, fixed-length span of time represented
4178 # as a count of seconds and fractions of seconds at nanosecond
4179 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
4180 # or &quot;month&quot;. It is related to Timestamp in that the difference between
4181 # two Timestamp values is a Duration and it can be added or subtracted
4182 # from a Timestamp. Range is approximately +-10,000 years.
4183 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
4184 # of time. Durations less than one second are represented with a 0
4185 # `seconds` field and a positive or negative `nanos` field. For durations
4186 # of one second or more, a non-zero value for the `nanos` field must be
4187 # of the same sign as the `seconds` field. Must be from -999,999,999
4188 # to +999,999,999 inclusive.
4189 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
4190 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
4191 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
4192 },
4193 &quot;flakyCount&quot;: 42, # Number of flaky test cases, set by the service by rolling up flaky test
4194 # attempts.
4195 #
4196 # Present only for rollup test suite overview at environment level. A step
4197 # cannot have flaky test cases.
4198 &quot;errorCount&quot;: 42, # Number of test cases in error, typically set by the service by parsing the
4199 # xml_source.
4200 #
4201 # - In create/response: always set
4202 # - In update request: never
4203 &quot;totalCount&quot;: 42, # Number of test cases, typically set by the service by parsing the
4204 # xml_source.
4205 #
4206 # - In create/response: always set
4207 # - In update request: never
4208 &quot;skippedCount&quot;: 42, # Number of test cases not run, typically set by the service by parsing the
4209 # xml_source.
4210 #
4211 # - In create/response: always set
4212 # - In update request: never
4213 &quot;xmlSource&quot;: { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original
4214 # XML file is stored.
4215 #
4216 # Note: Multiple test suites can share the same xml_source
4217 #
4218 # Returns INVALID_ARGUMENT if the uri format is not supported.
4219 #
4220 # - In create/response: optional
4221 # - In update request: never
4222 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
4223 #
4224 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
4225 # or in gsutil format: gs://mybucket/path/to/test.xml
4226 # with version-specific info,
4227 # gs://mybucket/path/to/test.xml#1360383693690000
4228 #
4229 # An INVALID_ARGUMENT error will be returned if the URI format is not
4230 # supported.
4231 #
4232 # - In response: always set
4233 # - In create/update request: always set
4234 },
4235 &quot;failureCount&quot;: 42, # Number of failed test cases, typically set by the service by parsing the
4236 # xml_source. May also be set by the user.
4237 #
4238 # - In create/response: always set
4239 # - In update request: never
4240 },
4241 ],
4242 &quot;testTiming&quot;: { # Testing timing break down to know phases. # The timing break down of the test execution.
4243 #
4244 # - In response: present if set by create or update
4245 # - In create/update request: optional
4246 &quot;testProcessDuration&quot;: { # # How long it took to run the test process.
4247 #
4248 # - In response: present if previously set.
4249 # - In create/update request: optional
4250 # A Duration represents a signed, fixed-length span of time represented
4251 # as a count of seconds and fractions of seconds at nanosecond
4252 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
4253 # or &quot;month&quot;. It is related to Timestamp in that the difference between
4254 # two Timestamp values is a Duration and it can be added or subtracted
4255 # from a Timestamp. Range is approximately +-10,000 years.
4256 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
4257 # of time. Durations less than one second are represented with a 0
4258 # `seconds` field and a positive or negative `nanos` field. For durations
4259 # of one second or more, a non-zero value for the `nanos` field must be
4260 # of the same sign as the `seconds` field. Must be from -999,999,999
4261 # to +999,999,999 inclusive.
4262 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
4263 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
4264 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
4265 },
4266 },
4267 },
4268 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created.
4269 #
4270 # - In response: always set
4271 # - In create/update request: never set
4272 # calendar, encoded as a count of seconds and fractions of seconds at
4273 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
4274 # January 1, 1970, in the proleptic Gregorian calendar which extends the
4275 # Gregorian calendar backwards to year one.
4276 #
4277 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
4278 # second table is needed for interpretation, using a [24-hour linear
4279 # smear](https://developers.google.com/time/smear).
4280 #
4281 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
4282 # restricting to that range, we ensure that we can convert to and from [RFC
4283 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
4284 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
4285 # second values with fractions must still have non-negative nanos values
4286 # that count forward in time. Must be from 0 to 999,999,999
4287 # inclusive.
4288 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
4289 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
4290 # 9999-12-31T23:59:59Z inclusive.
4291 },
4292 &quot;state&quot;: &quot;A String&quot;, # The initial state is IN_PROGRESS.
4293 # The only legal state transitions are
4294 # * IN_PROGRESS -&gt; COMPLETE
4295 #
4296 # A PRECONDITION_FAILED will be returned if an invalid transition is
4297 # requested.
4298 #
4299 # It is valid to create Step with a state set to COMPLETE.
4300 # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be
4301 # returned if the state is set to COMPLETE multiple times.
4302 #
4303 # - In response: always set
4304 # - In create/update request: optional
4305 &quot;name&quot;: &quot;A String&quot;, # A short human-readable name to display in the UI.
4306 # Maximum of 100 characters.
4307 # For example: Clean build
4308 #
4309 # A PRECONDITION_FAILED will be returned upon creating a new step if it
4310 # shares its name and dimension_value with an existing step. If two steps
4311 # represent a similar action, but have different dimension values, they
4312 # should share the same name. For instance, if the same set of tests is
4313 # run on two different platforms, the two steps should have the same name.
4314 #
4315 # - In response: always set
4316 # - In create request: always set
4317 # - In update request: never set
4318 &quot;dimensionValue&quot;: [ # If the execution containing this step has any dimension_definition set,
4319 # then this field allows the child to specify the values of the dimensions.
4320 #
4321 # The keys must exactly match the dimension_definition of the execution.
4322 #
4323 # For example, if the execution has
4324 # `dimension_definition = [&#x27;attempt&#x27;, &#x27;device&#x27;]`
4325 # then a step must define values for those dimensions, eg.
4326 # `dimension_value = [&#x27;attempt&#x27;: &#x27;1&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
4327 #
4328 # If a step does not participate in one dimension of the matrix,
4329 # the value for that dimension should be empty string.
4330 # For example, if one of the tests is executed by a runner which
4331 # does not support retries, the step could have
4332 # `dimension_value = [&#x27;attempt&#x27;: &#x27;&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
4333 #
4334 # If the step does not participate in any dimensions of the matrix,
4335 # it may leave dimension_value unset.
4336 #
4337 # A PRECONDITION_FAILED will be returned if any of the keys do not exist
4338 # in the dimension_definition of the execution.
4339 #
4340 # A PRECONDITION_FAILED will be returned if another step in this execution
4341 # already has the same name and dimension_value, but differs on other data
4342 # fields, for example, step field is different.
4343 #
4344 # A PRECONDITION_FAILED will be returned if dimension_value is set, and
4345 # there is a dimension_definition in the execution which is not specified
4346 # as one of the keys.
4347 #
4348 # - In response: present if set by create
4349 # - In create request: optional
4350 # - In update request: never set
4351 {
4352 &quot;value&quot;: &quot;A String&quot;,
4353 &quot;key&quot;: &quot;A String&quot;,
4354 },
4355 ],
4356 &quot;completionTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete.
4357 #
4358 # This value will be set automatically when state transitions to
4359 # COMPLETE.
4360 #
4361 # - In response: set if the execution state is COMPLETE.
4362 # - In create/update request: never set
4363 # calendar, encoded as a count of seconds and fractions of seconds at
4364 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
4365 # January 1, 1970, in the proleptic Gregorian calendar which extends the
4366 # Gregorian calendar backwards to year one.
4367 #
4368 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
4369 # second table is needed for interpretation, using a [24-hour linear
4370 # smear](https://developers.google.com/time/smear).
4371 #
4372 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
4373 # restricting to that range, we ensure that we can convert to and from [RFC
4374 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
4375 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
4376 # second values with fractions must still have non-negative nanos values
4377 # that count forward in time. Must be from 0 to 999,999,999
4378 # inclusive.
4379 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
4380 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
4381 # 9999-12-31T23:59:59Z inclusive.
4382 },
4383 &quot;multiStep&quot;: { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group.
4384 # These details can be used identify which group this step is part of.
4385 # It also identifies the groups &#x27;primary step&#x27; which indexes all the group
4386 # members.
4387 #
4388 # - In response: present if previously set.
4389 # - In create request: optional, set iff this step was performed more than
4390 # once.
4391 # - In update request: optional
4392 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
4393 # Ranges from 0(inclusive) to total number of steps(exclusive).
4394 # The primary step is 0.
4395 &quot;primaryStepId&quot;: &quot;A String&quot;, # Step Id of the primary (original) step, which might be this step.
4396 &quot;primaryStep&quot;: { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step.
4397 # outcome of each individual step.
4398 &quot;rollUp&quot;: &quot;A String&quot;, # Rollup test status of multiple steps that were run with the same
4399 # configuration as a group.
4400 &quot;individualOutcome&quot;: [ # Step Id and outcome of each individual step.
4401 { # Step Id and outcome of each individual step that was run as a group with
4402 # other steps with the same configuration.
4403 &quot;runDuration&quot;: { # # How long it took for this step to run.
4404 # A Duration represents a signed, fixed-length span of time represented
4405 # as a count of seconds and fractions of seconds at nanosecond
4406 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
4407 # or &quot;month&quot;. It is related to Timestamp in that the difference between
4408 # two Timestamp values is a Duration and it can be added or subtracted
4409 # from a Timestamp. Range is approximately +-10,000 years.
4410 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
4411 # of time. Durations less than one second are represented with a 0
4412 # `seconds` field and a positive or negative `nanos` field. For durations
4413 # of one second or more, a non-zero value for the `nanos` field must be
4414 # of the same sign as the `seconds` field. Must be from -999,999,999
4415 # to +999,999,999 inclusive.
4416 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
4417 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
4418 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
4419 },
4420 &quot;stepId&quot;: &quot;A String&quot;,
4421 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
4422 # Ranges from 0(inclusive) to total number of steps(exclusive).
4423 # The primary step is 0.
4424 &quot;outcomeSummary&quot;: &quot;A String&quot;,
4425 },
4426 ],
4427 },
4428 },
4429 &quot;stepId&quot;: &quot;A String&quot;, # A unique identifier within a Execution for this Step.
4430 #
4431 # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
4432 #
4433 # - In response: always set
4434 # - In create/update request: never set
4435 &quot;outcome&quot;: { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
4436 #
4437 # - In response: present if set by create/update request
4438 # - In create/update request: optional
4439 &quot;summary&quot;: &quot;A String&quot;, # The simplest way to interpret a result.
4440 #
4441 # Required
4442 &quot;failureDetail&quot;: { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
4443 #
4444 # Returns INVALID_ARGUMENT if this field is set
4445 # but the summary is not FAILURE.
4446 #
4447 # Optional
4448 &quot;unableToCrawl&quot;: True or False, # If the robo was unable to crawl the app; perhaps because the app did not
4449 # start.
4450 &quot;notInstalled&quot;: True or False, # If an app is not installed and thus no test can be run with the app.
4451 # This might be caused by trying to run a test on an unsupported platform.
4452 &quot;timedOut&quot;: True or False, # If the test overran some time limit, and that is why it failed.
4453 &quot;otherNativeCrash&quot;: True or False, # If a native process (including any other than the app) crashed.
4454 &quot;crashed&quot;: True or False, # If the failure was severe because the system (app) under test crashed.
4455 },
4456 &quot;inconclusiveDetail&quot;: { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome.
4457 #
4458 # Returns INVALID_ARGUMENT if this field is set
4459 # but the summary is not INCONCLUSIVE.
4460 #
4461 # Optional
4462 &quot;hasErrorLogs&quot;: True or False, # If results are being provided to the user in certain cases of
4463 # infrastructure failures
4464 &quot;infrastructureFailure&quot;: True or False, # If the test runner could not determine success or failure because the test
4465 # depends on a component other than the system under test which failed.
4466 #
4467 # For example, a mobile test requires provisioning a device where the test
4468 # executes, and that provisioning can fail.
4469 &quot;abortedByUser&quot;: True or False, # If the end user aborted the test execution before a pass or fail could be
4470 # determined.
4471 # For example, the user pressed ctrl-c which sent a kill signal to the test
4472 # runner while the test was running.
4473 },
4474 &quot;successDetail&quot;: { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome.
4475 #
4476 # Returns INVALID_ARGUMENT if this field is set
4477 # but the summary is not SUCCESS.
4478 #
4479 # Optional
4480 # LINT.IfChange
4481 &quot;otherNativeCrash&quot;: True or False, # If a native process other than the app crashed.
4482 },
4483 &quot;skippedDetail&quot;: { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
4484 #
4485 # Returns INVALID_ARGUMENT if this field is set
4486 # but the summary is not SKIPPED.
4487 #
4488 # Optional
4489 &quot;incompatibleAppVersion&quot;: True or False, # If the App doesn&#x27;t support the specific API level.
4490 &quot;incompatibleDevice&quot;: True or False, # If the requested OS version doesn&#x27;t run on the specific device model.
4491 &quot;incompatibleArchitecture&quot;: True or False, # If the App doesn&#x27;t run on the specific architecture, for example, x86.
4492 },
4493 },
4494 &quot;toolExecutionStep&quot;: { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don&#x27;t explicitly support).
4495 # For example: running cp to copy artifacts from one location to another.
4496 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution.
4497 #
4498 # - In response: present if set by create/update request
4499 # - In create/update request: optional
4500 # copying artifacts or deploying code.
4501 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
4502 # argv in a C program).
4503 #
4504 # - In response: present if set by create request
4505 # - In create request: optional
4506 # - In update request: never set
4507 &quot;A String&quot;,
4508 ],
4509 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
4510 # exited.
4511 #
4512 # - In response: present if set by create/update request
4513 # - In create request: optional
4514 # - In update request: optional, a FAILED_PRECONDITION error will be
4515 # returned if an exit_code is already set.
4516 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
4517 # successful.
4518 #
4519 # - In response: always set
4520 # - In create/update request: always set
4521 },
4522 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
4523 #
4524 # This field can be set before the tool has exited in order to be able to
4525 # have access to a live view of the logs while the tool is running.
4526 #
4527 # The maximum allowed number of tool logs per step is 1000.
4528 #
4529 # - In response: present if set by create/update request
4530 # - In create request: optional
4531 # - In update request: optional, any value provided will be appended to the
4532 # existing list
4533 { # A reference to a file.
4534 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
4535 #
4536 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
4537 # or in gsutil format: gs://mybucket/path/to/test.xml
4538 # with version-specific info,
4539 # gs://mybucket/path/to/test.xml#1360383693690000
4540 #
4541 # An INVALID_ARGUMENT error will be returned if the URI format is not
4542 # supported.
4543 #
4544 # - In response: always set
4545 # - In create/update request: always set
4546 },
4547 ],
4548 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
4549 #
4550 # The maximum allowed number of tool outputs per step is 1000.
4551 #
4552 # - In response: present if set by create/update request
4553 # - In create request: optional
4554 # - In update request: optional, any value provided will be appended to the
4555 # existing list
4556 { # A reference to a ToolExecution output file.
4557 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
4558 #
4559 # - In response: present if set by create/update request
4560 # - In create/update request: optional
4561 # calendar, encoded as a count of seconds and fractions of seconds at
4562 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
4563 # January 1, 1970, in the proleptic Gregorian calendar which extends the
4564 # Gregorian calendar backwards to year one.
4565 #
4566 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
4567 # second table is needed for interpretation, using a [24-hour linear
4568 # smear](https://developers.google.com/time/smear).
4569 #
4570 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
4571 # restricting to that range, we ensure that we can convert to and from [RFC
4572 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
4573 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
4574 # second values with fractions must still have non-negative nanos values
4575 # that count forward in time. Must be from 0 to 999,999,999
4576 # inclusive.
4577 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
4578 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
4579 # 9999-12-31T23:59:59Z inclusive.
4580 },
4581 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
4582 #
4583 # - In response: always set
4584 # - In create/update request: always set
4585 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
4586 #
4587 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
4588 # or in gsutil format: gs://mybucket/path/to/test.xml
4589 # with version-specific info,
4590 # gs://mybucket/path/to/test.xml#1360383693690000
4591 #
4592 # An INVALID_ARGUMENT error will be returned if the URI format is not
4593 # supported.
4594 #
4595 # - In response: always set
4596 # - In create/update request: always set
4597 },
4598 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
4599 #
4600 # - In response: present if set by create/update request
4601 # - In create/update request: optional
4602 #
4603 # Test case references are canonically ordered lexicographically by these three
4604 # factors:
4605 # * First, by test_suite_name.
4606 # * Second, by class_name.
4607 # * Third, by name.
4608 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
4609 #
4610 # Required.
4611 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
4612 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
4613 },
4614 },
4615 ],
4616 },
4617 },
4618 &quot;deviceUsageDuration&quot;: { # # How much the device resource is used to perform the test.
4619 #
4620 # This is the device usage used for billing purpose, which is different from
4621 # the run_duration, for example, infrastructure failure won&#x27;t be charged for
4622 # device usage.
4623 #
4624 # PRECONDITION_FAILED will be returned if one attempts to set a
4625 # device_usage on a step which already has this field set.
4626 #
4627 # - In response: present if previously set.
4628 # - In create request: optional
4629 # - In update request: optional
4630 # A Duration represents a signed, fixed-length span of time represented
4631 # as a count of seconds and fractions of seconds at nanosecond
4632 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
4633 # or &quot;month&quot;. It is related to Timestamp in that the difference between
4634 # two Timestamp values is a Duration and it can be added or subtracted
4635 # from a Timestamp. Range is approximately +-10,000 years.
4636 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
4637 # of time. Durations less than one second are represented with a 0
4638 # `seconds` field and a positive or negative `nanos` field. For durations
4639 # of one second or more, a non-zero value for the `nanos` field must be
4640 # of the same sign as the `seconds` field. Must be from -999,999,999
4641 # to +999,999,999 inclusive.
4642 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
4643 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
4644 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
4645 },
4646 &quot;labels&quot;: [ # Arbitrary user-supplied key/value pairs that are associated with the
4647 # step.
4648 #
4649 # Users are responsible for managing the key namespace such that keys
4650 # don&#x27;t accidentally collide.
4651 #
4652 # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or
4653 # if the length of any of the keys or values exceeds 100 characters.
4654 #
4655 # - In response: always set
4656 # - In create request: optional
4657 # - In update request: optional; any new key/value pair will be added to the
4658 # map, and any new value for an existing key will update that key&#x27;s value
4659 {
4660 &quot;value&quot;: &quot;A String&quot;,
4661 &quot;key&quot;: &quot;A String&quot;,
4662 },
4663 ],
4664 }
4665
4666 requestId: string, A unique request ID for server to detect duplicated requests.
4667For example, a UUID.
4668
4669Optional, but strongly recommended.
4670 x__xgafv: string, V1 error format.
4671 Allowed values
4672 1 - v1 error format
4673 2 - v2 error format
4674
4675Returns:
4676 An object of the form:
4677
4678 { # A Step represents a single operation performed as part of
4679 # Execution. A step can be used to represent the execution of a tool (
4680 # for example a test runner execution or an execution of a compiler).
4681 #
4682 # Steps can overlap (for instance two steps might have the same
4683 # start time if some operations are done in parallel).
4684 #
4685 # Here is an example, let&#x27;s consider that we have a continuous build is
4686 # executing a test runner for each iteration. The workflow would look like:
4687 # - user creates a Execution with id 1
4688 # - user creates an TestExecutionStep with id 100 for Execution 1
4689 # - user update TestExecutionStep with id 100 to add a raw xml log
4690 # + the service parses the xml logs and returns a TestExecutionStep with
4691 # updated TestResult(s).
4692 # - user update the status of TestExecutionStep with id 100 to COMPLETE
4693 #
4694 # A Step can be updated until its state is set to COMPLETE at which
4695 # points it becomes immutable.
4696 #
4697 # Next tag: 27
4698 &quot;hasImages&quot;: True or False, # Whether any of the outputs of this step are images whose
4699 # thumbnails can be fetched with ListThumbnails.
4700 #
4701 # - In response: always set
4702 # - In create/update request: never set
4703 &quot;runDuration&quot;: { # # How long it took for this step to run.
4704 #
4705 # If unset, this is set to the difference between creation_time and
4706 # completion_time when the step is set to the COMPLETE state. In some cases,
4707 # it is appropriate to set this value separately: For instance, if a step is
4708 # created, but the operation it represents is queued for a few minutes before
4709 # it executes, it would be appropriate not to include the time spent queued
4710 # in its run_duration.
4711 #
4712 # PRECONDITION_FAILED will be returned if one attempts to set a
4713 # run_duration on a step which already has this field set.
4714 #
4715 # - In response: present if previously set; always present on COMPLETE step
4716 # - In create request: optional
4717 # - In update request: optional
4718 # A Duration represents a signed, fixed-length span of time represented
4719 # as a count of seconds and fractions of seconds at nanosecond
4720 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
4721 # or &quot;month&quot;. It is related to Timestamp in that the difference between
4722 # two Timestamp values is a Duration and it can be added or subtracted
4723 # from a Timestamp. Range is approximately +-10,000 years.
4724 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
4725 # of time. Durations less than one second are represented with a 0
4726 # `seconds` field and a positive or negative `nanos` field. For durations
4727 # of one second or more, a non-zero value for the `nanos` field must be
4728 # of the same sign as the `seconds` field. Must be from -999,999,999
4729 # to +999,999,999 inclusive.
4730 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
4731 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
4732 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
4733 },
4734 &quot;description&quot;: &quot;A String&quot;, # A description of this tool
4735 # For example: mvn clean package -D skipTests=true
4736 #
4737 # - In response: present if set by create/update request
4738 # - In create/update request: optional
4739 &quot;testExecutionStep&quot;: { # A step that represents running tests. # An execution of a test runner.
4740 #
4741 # It accepts ant-junit xml files which will be parsed into structured test
4742 # results by the service. Xml file paths are updated in order to append more
4743 # files, however they can&#x27;t be deleted.
4744 #
4745 # Users can also add test results manually by using the test_result field.
4746 &quot;testIssues&quot;: [ # Issues observed during the test execution.
4747 #
4748 # For example, if the mobile app under test crashed during the test,
4749 # the error message and the stack trace content can be recorded here
4750 # to assist debugging.
4751 #
4752 # - In response: present if set by create or update
4753 # - In create/update request: optional
4754 { # An issue detected occurring during a test execution.
4755 &quot;warning&quot;: { # # Warning message with additional details of the issue.
4756 # Should always be a message from com.google.devtools.toolresults.v1.warnings
4757 # `Any` contains an arbitrary serialized protocol buffer message along with a
4758 # URL that describes the type of the serialized message.
4759 #
4760 # Protobuf library provides support to pack/unpack Any values in the form
4761 # of utility functions or additional generated methods of the Any type.
4762 #
4763 # Example 1: Pack and unpack a message in C++.
4764 #
4765 # Foo foo = ...;
4766 # Any any;
4767 # any.PackFrom(foo);
4768 # ...
4769 # if (any.UnpackTo(&amp;foo)) {
4770 # ...
4771 # }
4772 #
4773 # Example 2: Pack and unpack a message in Java.
4774 #
4775 # Foo foo = ...;
4776 # Any any = Any.pack(foo);
4777 # ...
4778 # if (any.is(Foo.class)) {
4779 # foo = any.unpack(Foo.class);
4780 # }
4781 #
4782 # Example 3: Pack and unpack a message in Python.
4783 #
4784 # foo = Foo(...)
4785 # any = Any()
4786 # any.Pack(foo)
4787 # ...
4788 # if any.Is(Foo.DESCRIPTOR):
4789 # any.Unpack(foo)
4790 # ...
4791 #
4792 # Example 4: Pack and unpack a message in Go
4793 #
4794 # foo := &amp;pb.Foo{...}
4795 # any, err := ptypes.MarshalAny(foo)
4796 # ...
4797 # foo := &amp;pb.Foo{}
4798 # if err := ptypes.UnmarshalAny(any, foo); err != nil {
4799 # ...
4800 # }
4801 #
4802 # The pack methods provided by protobuf library will by default use
4803 # &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack
4804 # methods only use the fully qualified type name after the last &#x27;/&#x27;
4805 # in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type
4806 # name &quot;y.z&quot;.
4807 #
4808 #
4809 # # JSON
4810 #
4811 # The JSON representation of an `Any` value uses the regular
4812 # representation of the deserialized, embedded message, with an
4813 # additional field `@type` which contains the type URL. Example:
4814 #
4815 # package google.profile;
4816 # message Person {
4817 # string first_name = 1;
4818 # string last_name = 2;
4819 # }
4820 #
4821 # {
4822 # &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;,
4823 # &quot;firstName&quot;: &lt;string&gt;,
4824 # &quot;lastName&quot;: &lt;string&gt;
4825 # }
4826 #
4827 # If the embedded message type is well-known and has a custom JSON
4828 # representation, that representation will be embedded adding a field
4829 # `value` which holds the custom JSON in addition to the `@type`
4830 # field. Example (for message google.protobuf.Duration):
4831 #
4832 # {
4833 # &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;,
4834 # &quot;value&quot;: &quot;1.212s&quot;
4835 # }
4836 &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized
4837 # protocol buffer message. This string must contain at least
4838 # one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent
4839 # the fully qualified name of the type (as in
4840 # `path/google.protobuf.Duration`). The name should be in a canonical form
4841 # (e.g., leading &quot;.&quot; is not accepted).
4842 #
4843 # In practice, teams usually precompile into the binary all types that they
4844 # expect it to use in the context of Any. However, for URLs which use the
4845 # scheme `http`, `https`, or no scheme, one can optionally set up a type
4846 # server that maps type URLs to message definitions as follows:
4847 #
4848 # * If no scheme is provided, `https` is assumed.
4849 # * An HTTP GET on the URL must yield a google.protobuf.Type
4850 # value in binary format, or produce an error.
4851 # * Applications are allowed to cache lookup results based on the
4852 # URL, or have them precompiled into a binary to avoid any
4853 # lookup. Therefore, binary compatibility needs to be preserved
4854 # on changes to types. (Use versioned type names to manage
4855 # breaking changes.)
4856 #
4857 # Note: this functionality is not currently available in the official
4858 # protobuf release, and it is not used for type URLs beginning with
4859 # type.googleapis.com.
4860 #
4861 # Schemes other than `http`, `https` (or the empty scheme) might be
4862 # used with implementation specific semantics.
4863 &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
4864 },
4865 &quot;severity&quot;: &quot;A String&quot;, # Severity of issue.
4866 # Required.
4867 &quot;stackTrace&quot;: { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings.
4868 &quot;exception&quot;: &quot;A String&quot;, # The stack trace message.
4869 #
4870 # Required
4871 },
4872 &quot;type&quot;: &quot;A String&quot;, # Type of issue.
4873 # Required.
4874 &quot;errorMessage&quot;: &quot;A String&quot;, # A brief human-readable message describing the issue.
4875 # Required.
4876 &quot;category&quot;: &quot;A String&quot;, # Category of issue.
4877 # Required.
4878 },
4879 ],
4880 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner.
4881 #
4882 # The exit code of this tool will be used to determine if the test passed.
4883 #
4884 # - In response: always set
4885 # - In create/update request: optional
4886 # copying artifacts or deploying code.
4887 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
4888 # argv in a C program).
4889 #
4890 # - In response: present if set by create request
4891 # - In create request: optional
4892 # - In update request: never set
4893 &quot;A String&quot;,
4894 ],
4895 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
4896 # exited.
4897 #
4898 # - In response: present if set by create/update request
4899 # - In create request: optional
4900 # - In update request: optional, a FAILED_PRECONDITION error will be
4901 # returned if an exit_code is already set.
4902 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
4903 # successful.
4904 #
4905 # - In response: always set
4906 # - In create/update request: always set
4907 },
4908 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
4909 #
4910 # This field can be set before the tool has exited in order to be able to
4911 # have access to a live view of the logs while the tool is running.
4912 #
4913 # The maximum allowed number of tool logs per step is 1000.
4914 #
4915 # - In response: present if set by create/update request
4916 # - In create request: optional
4917 # - In update request: optional, any value provided will be appended to the
4918 # existing list
4919 { # A reference to a file.
4920 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
4921 #
4922 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
4923 # or in gsutil format: gs://mybucket/path/to/test.xml
4924 # with version-specific info,
4925 # gs://mybucket/path/to/test.xml#1360383693690000
4926 #
4927 # An INVALID_ARGUMENT error will be returned if the URI format is not
4928 # supported.
4929 #
4930 # - In response: always set
4931 # - In create/update request: always set
4932 },
4933 ],
4934 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
4935 #
4936 # The maximum allowed number of tool outputs per step is 1000.
4937 #
4938 # - In response: present if set by create/update request
4939 # - In create request: optional
4940 # - In update request: optional, any value provided will be appended to the
4941 # existing list
4942 { # A reference to a ToolExecution output file.
4943 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
4944 #
4945 # - In response: present if set by create/update request
4946 # - In create/update request: optional
4947 # calendar, encoded as a count of seconds and fractions of seconds at
4948 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
4949 # January 1, 1970, in the proleptic Gregorian calendar which extends the
4950 # Gregorian calendar backwards to year one.
4951 #
4952 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
4953 # second table is needed for interpretation, using a [24-hour linear
4954 # smear](https://developers.google.com/time/smear).
4955 #
4956 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
4957 # restricting to that range, we ensure that we can convert to and from [RFC
4958 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
4959 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
4960 # second values with fractions must still have non-negative nanos values
4961 # that count forward in time. Must be from 0 to 999,999,999
4962 # inclusive.
4963 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
4964 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
4965 # 9999-12-31T23:59:59Z inclusive.
4966 },
4967 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
4968 #
4969 # - In response: always set
4970 # - In create/update request: always set
4971 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
4972 #
4973 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
4974 # or in gsutil format: gs://mybucket/path/to/test.xml
4975 # with version-specific info,
4976 # gs://mybucket/path/to/test.xml#1360383693690000
4977 #
4978 # An INVALID_ARGUMENT error will be returned if the URI format is not
4979 # supported.
4980 #
4981 # - In response: always set
4982 # - In create/update request: always set
4983 },
4984 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
4985 #
4986 # - In response: present if set by create/update request
4987 # - In create/update request: optional
4988 #
4989 # Test case references are canonically ordered lexicographically by these three
4990 # factors:
4991 # * First, by test_suite_name.
4992 # * Second, by class_name.
4993 # * Third, by name.
4994 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
4995 #
4996 # Required.
4997 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
4998 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
4999 },
5000 },
5001 ],
5002 },
5003 &quot;testSuiteOverviews&quot;: [ # List of test suite overview contents. This could be parsed from xUnit XML
5004 # log by server, or uploaded directly by user. This references should only be
5005 # called when test suites are fully parsed or uploaded.
5006 #
5007 # The maximum allowed number of test suite overviews per step is 1000.
5008 #
5009 # - In response: always set
5010 # - In create request: optional
5011 # - In update request: never (use publishXunitXmlFiles custom method instead)
5012 { # A summary of a test suite result either parsed from XML or uploaded
5013 # directly by a user.
5014 #
5015 # Note: the API related comments are for StepService only. This message is
5016 # also being used in ExecutionService in a read only mode for the corresponding
5017 # step.
5018 &quot;name&quot;: &quot;A String&quot;, # The name of the test suite.
5019 #
5020 # - In create/response: always set
5021 # - In update request: never
5022 &quot;elapsedTime&quot;: { # # Elapsed time of test suite.
5023 # A Duration represents a signed, fixed-length span of time represented
5024 # as a count of seconds and fractions of seconds at nanosecond
5025 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
5026 # or &quot;month&quot;. It is related to Timestamp in that the difference between
5027 # two Timestamp values is a Duration and it can be added or subtracted
5028 # from a Timestamp. Range is approximately +-10,000 years.
5029 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
5030 # of time. Durations less than one second are represented with a 0
5031 # `seconds` field and a positive or negative `nanos` field. For durations
5032 # of one second or more, a non-zero value for the `nanos` field must be
5033 # of the same sign as the `seconds` field. Must be from -999,999,999
5034 # to +999,999,999 inclusive.
5035 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
5036 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
5037 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
5038 },
5039 &quot;flakyCount&quot;: 42, # Number of flaky test cases, set by the service by rolling up flaky test
5040 # attempts.
5041 #
5042 # Present only for rollup test suite overview at environment level. A step
5043 # cannot have flaky test cases.
5044 &quot;errorCount&quot;: 42, # Number of test cases in error, typically set by the service by parsing the
5045 # xml_source.
5046 #
5047 # - In create/response: always set
5048 # - In update request: never
5049 &quot;totalCount&quot;: 42, # Number of test cases, typically set by the service by parsing the
5050 # xml_source.
5051 #
5052 # - In create/response: always set
5053 # - In update request: never
5054 &quot;skippedCount&quot;: 42, # Number of test cases not run, typically set by the service by parsing the
5055 # xml_source.
5056 #
5057 # - In create/response: always set
5058 # - In update request: never
5059 &quot;xmlSource&quot;: { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original
5060 # XML file is stored.
5061 #
5062 # Note: Multiple test suites can share the same xml_source
5063 #
5064 # Returns INVALID_ARGUMENT if the uri format is not supported.
5065 #
5066 # - In create/response: optional
5067 # - In update request: never
5068 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
5069 #
5070 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
5071 # or in gsutil format: gs://mybucket/path/to/test.xml
5072 # with version-specific info,
5073 # gs://mybucket/path/to/test.xml#1360383693690000
5074 #
5075 # An INVALID_ARGUMENT error will be returned if the URI format is not
5076 # supported.
5077 #
5078 # - In response: always set
5079 # - In create/update request: always set
5080 },
5081 &quot;failureCount&quot;: 42, # Number of failed test cases, typically set by the service by parsing the
5082 # xml_source. May also be set by the user.
5083 #
5084 # - In create/response: always set
5085 # - In update request: never
5086 },
5087 ],
5088 &quot;testTiming&quot;: { # Testing timing break down to know phases. # The timing break down of the test execution.
5089 #
5090 # - In response: present if set by create or update
5091 # - In create/update request: optional
5092 &quot;testProcessDuration&quot;: { # # How long it took to run the test process.
5093 #
5094 # - In response: present if previously set.
5095 # - In create/update request: optional
5096 # A Duration represents a signed, fixed-length span of time represented
5097 # as a count of seconds and fractions of seconds at nanosecond
5098 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
5099 # or &quot;month&quot;. It is related to Timestamp in that the difference between
5100 # two Timestamp values is a Duration and it can be added or subtracted
5101 # from a Timestamp. Range is approximately +-10,000 years.
5102 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
5103 # of time. Durations less than one second are represented with a 0
5104 # `seconds` field and a positive or negative `nanos` field. For durations
5105 # of one second or more, a non-zero value for the `nanos` field must be
5106 # of the same sign as the `seconds` field. Must be from -999,999,999
5107 # to +999,999,999 inclusive.
5108 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
5109 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
5110 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
5111 },
5112 },
5113 },
5114 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created.
5115 #
5116 # - In response: always set
5117 # - In create/update request: never set
5118 # calendar, encoded as a count of seconds and fractions of seconds at
5119 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
5120 # January 1, 1970, in the proleptic Gregorian calendar which extends the
5121 # Gregorian calendar backwards to year one.
5122 #
5123 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
5124 # second table is needed for interpretation, using a [24-hour linear
5125 # smear](https://developers.google.com/time/smear).
5126 #
5127 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
5128 # restricting to that range, we ensure that we can convert to and from [RFC
5129 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
5130 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
5131 # second values with fractions must still have non-negative nanos values
5132 # that count forward in time. Must be from 0 to 999,999,999
5133 # inclusive.
5134 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
5135 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
5136 # 9999-12-31T23:59:59Z inclusive.
5137 },
5138 &quot;state&quot;: &quot;A String&quot;, # The initial state is IN_PROGRESS.
5139 # The only legal state transitions are
5140 # * IN_PROGRESS -&gt; COMPLETE
5141 #
5142 # A PRECONDITION_FAILED will be returned if an invalid transition is
5143 # requested.
5144 #
5145 # It is valid to create Step with a state set to COMPLETE.
5146 # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be
5147 # returned if the state is set to COMPLETE multiple times.
5148 #
5149 # - In response: always set
5150 # - In create/update request: optional
5151 &quot;name&quot;: &quot;A String&quot;, # A short human-readable name to display in the UI.
5152 # Maximum of 100 characters.
5153 # For example: Clean build
5154 #
5155 # A PRECONDITION_FAILED will be returned upon creating a new step if it
5156 # shares its name and dimension_value with an existing step. If two steps
5157 # represent a similar action, but have different dimension values, they
5158 # should share the same name. For instance, if the same set of tests is
5159 # run on two different platforms, the two steps should have the same name.
5160 #
5161 # - In response: always set
5162 # - In create request: always set
5163 # - In update request: never set
5164 &quot;dimensionValue&quot;: [ # If the execution containing this step has any dimension_definition set,
5165 # then this field allows the child to specify the values of the dimensions.
5166 #
5167 # The keys must exactly match the dimension_definition of the execution.
5168 #
5169 # For example, if the execution has
5170 # `dimension_definition = [&#x27;attempt&#x27;, &#x27;device&#x27;]`
5171 # then a step must define values for those dimensions, eg.
5172 # `dimension_value = [&#x27;attempt&#x27;: &#x27;1&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
5173 #
5174 # If a step does not participate in one dimension of the matrix,
5175 # the value for that dimension should be empty string.
5176 # For example, if one of the tests is executed by a runner which
5177 # does not support retries, the step could have
5178 # `dimension_value = [&#x27;attempt&#x27;: &#x27;&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
5179 #
5180 # If the step does not participate in any dimensions of the matrix,
5181 # it may leave dimension_value unset.
5182 #
5183 # A PRECONDITION_FAILED will be returned if any of the keys do not exist
5184 # in the dimension_definition of the execution.
5185 #
5186 # A PRECONDITION_FAILED will be returned if another step in this execution
5187 # already has the same name and dimension_value, but differs on other data
5188 # fields, for example, step field is different.
5189 #
5190 # A PRECONDITION_FAILED will be returned if dimension_value is set, and
5191 # there is a dimension_definition in the execution which is not specified
5192 # as one of the keys.
5193 #
5194 # - In response: present if set by create
5195 # - In create request: optional
5196 # - In update request: never set
5197 {
5198 &quot;value&quot;: &quot;A String&quot;,
5199 &quot;key&quot;: &quot;A String&quot;,
5200 },
5201 ],
5202 &quot;completionTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete.
5203 #
5204 # This value will be set automatically when state transitions to
5205 # COMPLETE.
5206 #
5207 # - In response: set if the execution state is COMPLETE.
5208 # - In create/update request: never set
5209 # calendar, encoded as a count of seconds and fractions of seconds at
5210 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
5211 # January 1, 1970, in the proleptic Gregorian calendar which extends the
5212 # Gregorian calendar backwards to year one.
5213 #
5214 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
5215 # second table is needed for interpretation, using a [24-hour linear
5216 # smear](https://developers.google.com/time/smear).
5217 #
5218 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
5219 # restricting to that range, we ensure that we can convert to and from [RFC
5220 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
5221 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
5222 # second values with fractions must still have non-negative nanos values
5223 # that count forward in time. Must be from 0 to 999,999,999
5224 # inclusive.
5225 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
5226 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
5227 # 9999-12-31T23:59:59Z inclusive.
5228 },
5229 &quot;multiStep&quot;: { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group.
5230 # These details can be used identify which group this step is part of.
5231 # It also identifies the groups &#x27;primary step&#x27; which indexes all the group
5232 # members.
5233 #
5234 # - In response: present if previously set.
5235 # - In create request: optional, set iff this step was performed more than
5236 # once.
5237 # - In update request: optional
5238 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
5239 # Ranges from 0(inclusive) to total number of steps(exclusive).
5240 # The primary step is 0.
5241 &quot;primaryStepId&quot;: &quot;A String&quot;, # Step Id of the primary (original) step, which might be this step.
5242 &quot;primaryStep&quot;: { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step.
5243 # outcome of each individual step.
5244 &quot;rollUp&quot;: &quot;A String&quot;, # Rollup test status of multiple steps that were run with the same
5245 # configuration as a group.
5246 &quot;individualOutcome&quot;: [ # Step Id and outcome of each individual step.
5247 { # Step Id and outcome of each individual step that was run as a group with
5248 # other steps with the same configuration.
5249 &quot;runDuration&quot;: { # # How long it took for this step to run.
5250 # A Duration represents a signed, fixed-length span of time represented
5251 # as a count of seconds and fractions of seconds at nanosecond
5252 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
5253 # or &quot;month&quot;. It is related to Timestamp in that the difference between
5254 # two Timestamp values is a Duration and it can be added or subtracted
5255 # from a Timestamp. Range is approximately +-10,000 years.
5256 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
5257 # of time. Durations less than one second are represented with a 0
5258 # `seconds` field and a positive or negative `nanos` field. For durations
5259 # of one second or more, a non-zero value for the `nanos` field must be
5260 # of the same sign as the `seconds` field. Must be from -999,999,999
5261 # to +999,999,999 inclusive.
5262 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
5263 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
5264 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
5265 },
5266 &quot;stepId&quot;: &quot;A String&quot;,
5267 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
5268 # Ranges from 0(inclusive) to total number of steps(exclusive).
5269 # The primary step is 0.
5270 &quot;outcomeSummary&quot;: &quot;A String&quot;,
5271 },
5272 ],
5273 },
5274 },
5275 &quot;stepId&quot;: &quot;A String&quot;, # A unique identifier within a Execution for this Step.
5276 #
5277 # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
5278 #
5279 # - In response: always set
5280 # - In create/update request: never set
5281 &quot;outcome&quot;: { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
5282 #
5283 # - In response: present if set by create/update request
5284 # - In create/update request: optional
5285 &quot;summary&quot;: &quot;A String&quot;, # The simplest way to interpret a result.
5286 #
5287 # Required
5288 &quot;failureDetail&quot;: { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
5289 #
5290 # Returns INVALID_ARGUMENT if this field is set
5291 # but the summary is not FAILURE.
5292 #
5293 # Optional
5294 &quot;unableToCrawl&quot;: True or False, # If the robo was unable to crawl the app; perhaps because the app did not
5295 # start.
5296 &quot;notInstalled&quot;: True or False, # If an app is not installed and thus no test can be run with the app.
5297 # This might be caused by trying to run a test on an unsupported platform.
5298 &quot;timedOut&quot;: True or False, # If the test overran some time limit, and that is why it failed.
5299 &quot;otherNativeCrash&quot;: True or False, # If a native process (including any other than the app) crashed.
5300 &quot;crashed&quot;: True or False, # If the failure was severe because the system (app) under test crashed.
5301 },
5302 &quot;inconclusiveDetail&quot;: { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome.
5303 #
5304 # Returns INVALID_ARGUMENT if this field is set
5305 # but the summary is not INCONCLUSIVE.
5306 #
5307 # Optional
5308 &quot;hasErrorLogs&quot;: True or False, # If results are being provided to the user in certain cases of
5309 # infrastructure failures
5310 &quot;infrastructureFailure&quot;: True or False, # If the test runner could not determine success or failure because the test
5311 # depends on a component other than the system under test which failed.
5312 #
5313 # For example, a mobile test requires provisioning a device where the test
5314 # executes, and that provisioning can fail.
5315 &quot;abortedByUser&quot;: True or False, # If the end user aborted the test execution before a pass or fail could be
5316 # determined.
5317 # For example, the user pressed ctrl-c which sent a kill signal to the test
5318 # runner while the test was running.
5319 },
5320 &quot;successDetail&quot;: { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome.
5321 #
5322 # Returns INVALID_ARGUMENT if this field is set
5323 # but the summary is not SUCCESS.
5324 #
5325 # Optional
5326 # LINT.IfChange
5327 &quot;otherNativeCrash&quot;: True or False, # If a native process other than the app crashed.
5328 },
5329 &quot;skippedDetail&quot;: { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
5330 #
5331 # Returns INVALID_ARGUMENT if this field is set
5332 # but the summary is not SKIPPED.
5333 #
5334 # Optional
5335 &quot;incompatibleAppVersion&quot;: True or False, # If the App doesn&#x27;t support the specific API level.
5336 &quot;incompatibleDevice&quot;: True or False, # If the requested OS version doesn&#x27;t run on the specific device model.
5337 &quot;incompatibleArchitecture&quot;: True or False, # If the App doesn&#x27;t run on the specific architecture, for example, x86.
5338 },
5339 },
5340 &quot;toolExecutionStep&quot;: { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don&#x27;t explicitly support).
5341 # For example: running cp to copy artifacts from one location to another.
5342 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution.
5343 #
5344 # - In response: present if set by create/update request
5345 # - In create/update request: optional
5346 # copying artifacts or deploying code.
5347 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
5348 # argv in a C program).
5349 #
5350 # - In response: present if set by create request
5351 # - In create request: optional
5352 # - In update request: never set
5353 &quot;A String&quot;,
5354 ],
5355 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
5356 # exited.
5357 #
5358 # - In response: present if set by create/update request
5359 # - In create request: optional
5360 # - In update request: optional, a FAILED_PRECONDITION error will be
5361 # returned if an exit_code is already set.
5362 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
5363 # successful.
5364 #
5365 # - In response: always set
5366 # - In create/update request: always set
5367 },
5368 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
5369 #
5370 # This field can be set before the tool has exited in order to be able to
5371 # have access to a live view of the logs while the tool is running.
5372 #
5373 # The maximum allowed number of tool logs per step is 1000.
5374 #
5375 # - In response: present if set by create/update request
5376 # - In create request: optional
5377 # - In update request: optional, any value provided will be appended to the
5378 # existing list
5379 { # A reference to a file.
5380 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
5381 #
5382 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
5383 # or in gsutil format: gs://mybucket/path/to/test.xml
5384 # with version-specific info,
5385 # gs://mybucket/path/to/test.xml#1360383693690000
5386 #
5387 # An INVALID_ARGUMENT error will be returned if the URI format is not
5388 # supported.
5389 #
5390 # - In response: always set
5391 # - In create/update request: always set
5392 },
5393 ],
5394 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
5395 #
5396 # The maximum allowed number of tool outputs per step is 1000.
5397 #
5398 # - In response: present if set by create/update request
5399 # - In create request: optional
5400 # - In update request: optional, any value provided will be appended to the
5401 # existing list
5402 { # A reference to a ToolExecution output file.
5403 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
5404 #
5405 # - In response: present if set by create/update request
5406 # - In create/update request: optional
5407 # calendar, encoded as a count of seconds and fractions of seconds at
5408 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
5409 # January 1, 1970, in the proleptic Gregorian calendar which extends the
5410 # Gregorian calendar backwards to year one.
5411 #
5412 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
5413 # second table is needed for interpretation, using a [24-hour linear
5414 # smear](https://developers.google.com/time/smear).
5415 #
5416 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
5417 # restricting to that range, we ensure that we can convert to and from [RFC
5418 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
5419 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
5420 # second values with fractions must still have non-negative nanos values
5421 # that count forward in time. Must be from 0 to 999,999,999
5422 # inclusive.
5423 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
5424 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
5425 # 9999-12-31T23:59:59Z inclusive.
5426 },
5427 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
5428 #
5429 # - In response: always set
5430 # - In create/update request: always set
5431 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
5432 #
5433 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
5434 # or in gsutil format: gs://mybucket/path/to/test.xml
5435 # with version-specific info,
5436 # gs://mybucket/path/to/test.xml#1360383693690000
5437 #
5438 # An INVALID_ARGUMENT error will be returned if the URI format is not
5439 # supported.
5440 #
5441 # - In response: always set
5442 # - In create/update request: always set
5443 },
5444 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
5445 #
5446 # - In response: present if set by create/update request
5447 # - In create/update request: optional
5448 #
5449 # Test case references are canonically ordered lexicographically by these three
5450 # factors:
5451 # * First, by test_suite_name.
5452 # * Second, by class_name.
5453 # * Third, by name.
5454 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
5455 #
5456 # Required.
5457 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
5458 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
5459 },
5460 },
5461 ],
5462 },
5463 },
5464 &quot;deviceUsageDuration&quot;: { # # How much the device resource is used to perform the test.
5465 #
5466 # This is the device usage used for billing purpose, which is different from
5467 # the run_duration, for example, infrastructure failure won&#x27;t be charged for
5468 # device usage.
5469 #
5470 # PRECONDITION_FAILED will be returned if one attempts to set a
5471 # device_usage on a step which already has this field set.
5472 #
5473 # - In response: present if previously set.
5474 # - In create request: optional
5475 # - In update request: optional
5476 # A Duration represents a signed, fixed-length span of time represented
5477 # as a count of seconds and fractions of seconds at nanosecond
5478 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
5479 # or &quot;month&quot;. It is related to Timestamp in that the difference between
5480 # two Timestamp values is a Duration and it can be added or subtracted
5481 # from a Timestamp. Range is approximately +-10,000 years.
5482 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
5483 # of time. Durations less than one second are represented with a 0
5484 # `seconds` field and a positive or negative `nanos` field. For durations
5485 # of one second or more, a non-zero value for the `nanos` field must be
5486 # of the same sign as the `seconds` field. Must be from -999,999,999
5487 # to +999,999,999 inclusive.
5488 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
5489 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
5490 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
5491 },
5492 &quot;labels&quot;: [ # Arbitrary user-supplied key/value pairs that are associated with the
5493 # step.
5494 #
5495 # Users are responsible for managing the key namespace such that keys
5496 # don&#x27;t accidentally collide.
5497 #
5498 # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or
5499 # if the length of any of the keys or values exceeds 100 characters.
5500 #
5501 # - In response: always set
5502 # - In create request: optional
5503 # - In update request: optional; any new key/value pair will be added to the
5504 # map, and any new value for an existing key will update that key&#x27;s value
5505 {
5506 &quot;value&quot;: &quot;A String&quot;,
5507 &quot;key&quot;: &quot;A String&quot;,
5508 },
5509 ],
5510 }</pre>
5511</div>
5512
5513<div class="method">
5514 <code class="details" id="publishXunitXmlFiles">publishXunitXmlFiles(projectId, historyId, executionId, stepId, body=None, x__xgafv=None)</code>
5515 <pre>Publish xml files to an existing Step.
5516
5517May return any of the following canonical error codes:
5518
5519- PERMISSION_DENIED - if the user is not authorized to write project
5520- INVALID_ARGUMENT - if the request is malformed
5521- FAILED_PRECONDITION - if the requested state transition is illegal,
5522e.g try to upload a duplicate xml file or a file too large.
5523- NOT_FOUND - if the containing Execution does not exist
5524
5525Args:
5526 projectId: string, A Project id.
5527
5528Required. (required)
5529 historyId: string, A History id.
5530
5531Required. (required)
5532 executionId: string, A Execution id.
5533
5534Required. (required)
5535 stepId: string, A Step id.
5536Note: This step must include a TestExecutionStep.
5537
5538Required. (required)
5539 body: object, The request body.
5540 The object takes the form of:
5541
5542{ # Request message for StepService.PublishXunitXmlFiles.
5543 &quot;xunitXmlFiles&quot;: [ # URI of the Xunit XML files to publish.
5544 #
5545 # The maximum size of the file this reference is pointing to is 50MB.
5546 #
5547 # Required.
5548 { # A reference to a file.
5549 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
5550 #
5551 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
5552 # or in gsutil format: gs://mybucket/path/to/test.xml
5553 # with version-specific info,
5554 # gs://mybucket/path/to/test.xml#1360383693690000
5555 #
5556 # An INVALID_ARGUMENT error will be returned if the URI format is not
5557 # supported.
5558 #
5559 # - In response: always set
5560 # - In create/update request: always set
5561 },
5562 ],
5563 }
5564
5565 x__xgafv: string, V1 error format.
5566 Allowed values
5567 1 - v1 error format
5568 2 - v2 error format
5569
5570Returns:
5571 An object of the form:
5572
5573 { # A Step represents a single operation performed as part of
5574 # Execution. A step can be used to represent the execution of a tool (
5575 # for example a test runner execution or an execution of a compiler).
5576 #
5577 # Steps can overlap (for instance two steps might have the same
5578 # start time if some operations are done in parallel).
5579 #
5580 # Here is an example, let&#x27;s consider that we have a continuous build is
5581 # executing a test runner for each iteration. The workflow would look like:
5582 # - user creates a Execution with id 1
5583 # - user creates an TestExecutionStep with id 100 for Execution 1
5584 # - user update TestExecutionStep with id 100 to add a raw xml log
5585 # + the service parses the xml logs and returns a TestExecutionStep with
5586 # updated TestResult(s).
5587 # - user update the status of TestExecutionStep with id 100 to COMPLETE
5588 #
5589 # A Step can be updated until its state is set to COMPLETE at which
5590 # points it becomes immutable.
5591 #
5592 # Next tag: 27
5593 &quot;hasImages&quot;: True or False, # Whether any of the outputs of this step are images whose
5594 # thumbnails can be fetched with ListThumbnails.
5595 #
5596 # - In response: always set
5597 # - In create/update request: never set
5598 &quot;runDuration&quot;: { # # How long it took for this step to run.
5599 #
5600 # If unset, this is set to the difference between creation_time and
5601 # completion_time when the step is set to the COMPLETE state. In some cases,
5602 # it is appropriate to set this value separately: For instance, if a step is
5603 # created, but the operation it represents is queued for a few minutes before
5604 # it executes, it would be appropriate not to include the time spent queued
5605 # in its run_duration.
5606 #
5607 # PRECONDITION_FAILED will be returned if one attempts to set a
5608 # run_duration on a step which already has this field set.
5609 #
5610 # - In response: present if previously set; always present on COMPLETE step
5611 # - In create request: optional
5612 # - In update request: optional
5613 # A Duration represents a signed, fixed-length span of time represented
5614 # as a count of seconds and fractions of seconds at nanosecond
5615 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
5616 # or &quot;month&quot;. It is related to Timestamp in that the difference between
5617 # two Timestamp values is a Duration and it can be added or subtracted
5618 # from a Timestamp. Range is approximately +-10,000 years.
5619 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
5620 # of time. Durations less than one second are represented with a 0
5621 # `seconds` field and a positive or negative `nanos` field. For durations
5622 # of one second or more, a non-zero value for the `nanos` field must be
5623 # of the same sign as the `seconds` field. Must be from -999,999,999
5624 # to +999,999,999 inclusive.
5625 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
5626 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
5627 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
5628 },
5629 &quot;description&quot;: &quot;A String&quot;, # A description of this tool
5630 # For example: mvn clean package -D skipTests=true
5631 #
5632 # - In response: present if set by create/update request
5633 # - In create/update request: optional
5634 &quot;testExecutionStep&quot;: { # A step that represents running tests. # An execution of a test runner.
5635 #
5636 # It accepts ant-junit xml files which will be parsed into structured test
5637 # results by the service. Xml file paths are updated in order to append more
5638 # files, however they can&#x27;t be deleted.
5639 #
5640 # Users can also add test results manually by using the test_result field.
5641 &quot;testIssues&quot;: [ # Issues observed during the test execution.
5642 #
5643 # For example, if the mobile app under test crashed during the test,
5644 # the error message and the stack trace content can be recorded here
5645 # to assist debugging.
5646 #
5647 # - In response: present if set by create or update
5648 # - In create/update request: optional
5649 { # An issue detected occurring during a test execution.
5650 &quot;warning&quot;: { # # Warning message with additional details of the issue.
5651 # Should always be a message from com.google.devtools.toolresults.v1.warnings
5652 # `Any` contains an arbitrary serialized protocol buffer message along with a
5653 # URL that describes the type of the serialized message.
5654 #
5655 # Protobuf library provides support to pack/unpack Any values in the form
5656 # of utility functions or additional generated methods of the Any type.
5657 #
5658 # Example 1: Pack and unpack a message in C++.
5659 #
5660 # Foo foo = ...;
5661 # Any any;
5662 # any.PackFrom(foo);
5663 # ...
5664 # if (any.UnpackTo(&amp;foo)) {
5665 # ...
5666 # }
5667 #
5668 # Example 2: Pack and unpack a message in Java.
5669 #
5670 # Foo foo = ...;
5671 # Any any = Any.pack(foo);
5672 # ...
5673 # if (any.is(Foo.class)) {
5674 # foo = any.unpack(Foo.class);
5675 # }
5676 #
5677 # Example 3: Pack and unpack a message in Python.
5678 #
5679 # foo = Foo(...)
5680 # any = Any()
5681 # any.Pack(foo)
5682 # ...
5683 # if any.Is(Foo.DESCRIPTOR):
5684 # any.Unpack(foo)
5685 # ...
5686 #
5687 # Example 4: Pack and unpack a message in Go
5688 #
5689 # foo := &amp;pb.Foo{...}
5690 # any, err := ptypes.MarshalAny(foo)
5691 # ...
5692 # foo := &amp;pb.Foo{}
5693 # if err := ptypes.UnmarshalAny(any, foo); err != nil {
5694 # ...
5695 # }
5696 #
5697 # The pack methods provided by protobuf library will by default use
5698 # &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack
5699 # methods only use the fully qualified type name after the last &#x27;/&#x27;
5700 # in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type
5701 # name &quot;y.z&quot;.
5702 #
5703 #
5704 # # JSON
5705 #
5706 # The JSON representation of an `Any` value uses the regular
5707 # representation of the deserialized, embedded message, with an
5708 # additional field `@type` which contains the type URL. Example:
5709 #
5710 # package google.profile;
5711 # message Person {
5712 # string first_name = 1;
5713 # string last_name = 2;
5714 # }
5715 #
5716 # {
5717 # &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;,
5718 # &quot;firstName&quot;: &lt;string&gt;,
5719 # &quot;lastName&quot;: &lt;string&gt;
5720 # }
5721 #
5722 # If the embedded message type is well-known and has a custom JSON
5723 # representation, that representation will be embedded adding a field
5724 # `value` which holds the custom JSON in addition to the `@type`
5725 # field. Example (for message google.protobuf.Duration):
5726 #
5727 # {
5728 # &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;,
5729 # &quot;value&quot;: &quot;1.212s&quot;
5730 # }
5731 &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized
5732 # protocol buffer message. This string must contain at least
5733 # one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent
5734 # the fully qualified name of the type (as in
5735 # `path/google.protobuf.Duration`). The name should be in a canonical form
5736 # (e.g., leading &quot;.&quot; is not accepted).
5737 #
5738 # In practice, teams usually precompile into the binary all types that they
5739 # expect it to use in the context of Any. However, for URLs which use the
5740 # scheme `http`, `https`, or no scheme, one can optionally set up a type
5741 # server that maps type URLs to message definitions as follows:
5742 #
5743 # * If no scheme is provided, `https` is assumed.
5744 # * An HTTP GET on the URL must yield a google.protobuf.Type
5745 # value in binary format, or produce an error.
5746 # * Applications are allowed to cache lookup results based on the
5747 # URL, or have them precompiled into a binary to avoid any
5748 # lookup. Therefore, binary compatibility needs to be preserved
5749 # on changes to types. (Use versioned type names to manage
5750 # breaking changes.)
5751 #
5752 # Note: this functionality is not currently available in the official
5753 # protobuf release, and it is not used for type URLs beginning with
5754 # type.googleapis.com.
5755 #
5756 # Schemes other than `http`, `https` (or the empty scheme) might be
5757 # used with implementation specific semantics.
5758 &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
5759 },
5760 &quot;severity&quot;: &quot;A String&quot;, # Severity of issue.
5761 # Required.
5762 &quot;stackTrace&quot;: { # A stacktrace. # Deprecated in favor of stack trace fields inside specific warnings.
5763 &quot;exception&quot;: &quot;A String&quot;, # The stack trace message.
5764 #
5765 # Required
5766 },
5767 &quot;type&quot;: &quot;A String&quot;, # Type of issue.
5768 # Required.
5769 &quot;errorMessage&quot;: &quot;A String&quot;, # A brief human-readable message describing the issue.
5770 # Required.
5771 &quot;category&quot;: &quot;A String&quot;, # Category of issue.
5772 # Required.
5773 },
5774 ],
5775 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # Represents the execution of the test runner.
5776 #
5777 # The exit code of this tool will be used to determine if the test passed.
5778 #
5779 # - In response: always set
5780 # - In create/update request: optional
5781 # copying artifacts or deploying code.
5782 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
5783 # argv in a C program).
5784 #
5785 # - In response: present if set by create request
5786 # - In create request: optional
5787 # - In update request: never set
5788 &quot;A String&quot;,
5789 ],
5790 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
5791 # exited.
5792 #
5793 # - In response: present if set by create/update request
5794 # - In create request: optional
5795 # - In update request: optional, a FAILED_PRECONDITION error will be
5796 # returned if an exit_code is already set.
5797 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
5798 # successful.
5799 #
5800 # - In response: always set
5801 # - In create/update request: always set
5802 },
5803 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
5804 #
5805 # This field can be set before the tool has exited in order to be able to
5806 # have access to a live view of the logs while the tool is running.
5807 #
5808 # The maximum allowed number of tool logs per step is 1000.
5809 #
5810 # - In response: present if set by create/update request
5811 # - In create request: optional
5812 # - In update request: optional, any value provided will be appended to the
5813 # existing list
5814 { # A reference to a file.
5815 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
5816 #
5817 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
5818 # or in gsutil format: gs://mybucket/path/to/test.xml
5819 # with version-specific info,
5820 # gs://mybucket/path/to/test.xml#1360383693690000
5821 #
5822 # An INVALID_ARGUMENT error will be returned if the URI format is not
5823 # supported.
5824 #
5825 # - In response: always set
5826 # - In create/update request: always set
5827 },
5828 ],
5829 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
5830 #
5831 # The maximum allowed number of tool outputs per step is 1000.
5832 #
5833 # - In response: present if set by create/update request
5834 # - In create request: optional
5835 # - In update request: optional, any value provided will be appended to the
5836 # existing list
5837 { # A reference to a ToolExecution output file.
5838 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
5839 #
5840 # - In response: present if set by create/update request
5841 # - In create/update request: optional
5842 # calendar, encoded as a count of seconds and fractions of seconds at
5843 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
5844 # January 1, 1970, in the proleptic Gregorian calendar which extends the
5845 # Gregorian calendar backwards to year one.
5846 #
5847 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
5848 # second table is needed for interpretation, using a [24-hour linear
5849 # smear](https://developers.google.com/time/smear).
5850 #
5851 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
5852 # restricting to that range, we ensure that we can convert to and from [RFC
5853 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
5854 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
5855 # second values with fractions must still have non-negative nanos values
5856 # that count forward in time. Must be from 0 to 999,999,999
5857 # inclusive.
5858 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
5859 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
5860 # 9999-12-31T23:59:59Z inclusive.
5861 },
5862 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
5863 #
5864 # - In response: always set
5865 # - In create/update request: always set
5866 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
5867 #
5868 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
5869 # or in gsutil format: gs://mybucket/path/to/test.xml
5870 # with version-specific info,
5871 # gs://mybucket/path/to/test.xml#1360383693690000
5872 #
5873 # An INVALID_ARGUMENT error will be returned if the URI format is not
5874 # supported.
5875 #
5876 # - In response: always set
5877 # - In create/update request: always set
5878 },
5879 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
5880 #
5881 # - In response: present if set by create/update request
5882 # - In create/update request: optional
5883 #
5884 # Test case references are canonically ordered lexicographically by these three
5885 # factors:
5886 # * First, by test_suite_name.
5887 # * Second, by class_name.
5888 # * Third, by name.
5889 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
5890 #
5891 # Required.
5892 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
5893 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
5894 },
5895 },
5896 ],
5897 },
5898 &quot;testSuiteOverviews&quot;: [ # List of test suite overview contents. This could be parsed from xUnit XML
5899 # log by server, or uploaded directly by user. This references should only be
5900 # called when test suites are fully parsed or uploaded.
5901 #
5902 # The maximum allowed number of test suite overviews per step is 1000.
5903 #
5904 # - In response: always set
5905 # - In create request: optional
5906 # - In update request: never (use publishXunitXmlFiles custom method instead)
5907 { # A summary of a test suite result either parsed from XML or uploaded
5908 # directly by a user.
5909 #
5910 # Note: the API related comments are for StepService only. This message is
5911 # also being used in ExecutionService in a read only mode for the corresponding
5912 # step.
5913 &quot;name&quot;: &quot;A String&quot;, # The name of the test suite.
5914 #
5915 # - In create/response: always set
5916 # - In update request: never
5917 &quot;elapsedTime&quot;: { # # Elapsed time of test suite.
5918 # A Duration represents a signed, fixed-length span of time represented
5919 # as a count of seconds and fractions of seconds at nanosecond
5920 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
5921 # or &quot;month&quot;. It is related to Timestamp in that the difference between
5922 # two Timestamp values is a Duration and it can be added or subtracted
5923 # from a Timestamp. Range is approximately +-10,000 years.
5924 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
5925 # of time. Durations less than one second are represented with a 0
5926 # `seconds` field and a positive or negative `nanos` field. For durations
5927 # of one second or more, a non-zero value for the `nanos` field must be
5928 # of the same sign as the `seconds` field. Must be from -999,999,999
5929 # to +999,999,999 inclusive.
5930 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
5931 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
5932 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
5933 },
5934 &quot;flakyCount&quot;: 42, # Number of flaky test cases, set by the service by rolling up flaky test
5935 # attempts.
5936 #
5937 # Present only for rollup test suite overview at environment level. A step
5938 # cannot have flaky test cases.
5939 &quot;errorCount&quot;: 42, # Number of test cases in error, typically set by the service by parsing the
5940 # xml_source.
5941 #
5942 # - In create/response: always set
5943 # - In update request: never
5944 &quot;totalCount&quot;: 42, # Number of test cases, typically set by the service by parsing the
5945 # xml_source.
5946 #
5947 # - In create/response: always set
5948 # - In update request: never
5949 &quot;skippedCount&quot;: 42, # Number of test cases not run, typically set by the service by parsing the
5950 # xml_source.
5951 #
5952 # - In create/response: always set
5953 # - In update request: never
5954 &quot;xmlSource&quot;: { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original
5955 # XML file is stored.
5956 #
5957 # Note: Multiple test suites can share the same xml_source
5958 #
5959 # Returns INVALID_ARGUMENT if the uri format is not supported.
5960 #
5961 # - In create/response: optional
5962 # - In update request: never
5963 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
5964 #
5965 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
5966 # or in gsutil format: gs://mybucket/path/to/test.xml
5967 # with version-specific info,
5968 # gs://mybucket/path/to/test.xml#1360383693690000
5969 #
5970 # An INVALID_ARGUMENT error will be returned if the URI format is not
5971 # supported.
5972 #
5973 # - In response: always set
5974 # - In create/update request: always set
5975 },
5976 &quot;failureCount&quot;: 42, # Number of failed test cases, typically set by the service by parsing the
5977 # xml_source. May also be set by the user.
5978 #
5979 # - In create/response: always set
5980 # - In update request: never
5981 },
5982 ],
5983 &quot;testTiming&quot;: { # Testing timing break down to know phases. # The timing break down of the test execution.
5984 #
5985 # - In response: present if set by create or update
5986 # - In create/update request: optional
5987 &quot;testProcessDuration&quot;: { # # How long it took to run the test process.
5988 #
5989 # - In response: present if previously set.
5990 # - In create/update request: optional
5991 # A Duration represents a signed, fixed-length span of time represented
5992 # as a count of seconds and fractions of seconds at nanosecond
5993 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
5994 # or &quot;month&quot;. It is related to Timestamp in that the difference between
5995 # two Timestamp values is a Duration and it can be added or subtracted
5996 # from a Timestamp. Range is approximately +-10,000 years.
5997 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
5998 # of time. Durations less than one second are represented with a 0
5999 # `seconds` field and a positive or negative `nanos` field. For durations
6000 # of one second or more, a non-zero value for the `nanos` field must be
6001 # of the same sign as the `seconds` field. Must be from -999,999,999
6002 # to +999,999,999 inclusive.
6003 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
6004 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
6005 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
6006 },
6007 },
6008 },
6009 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step was created.
6010 #
6011 # - In response: always set
6012 # - In create/update request: never set
6013 # calendar, encoded as a count of seconds and fractions of seconds at
6014 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
6015 # January 1, 1970, in the proleptic Gregorian calendar which extends the
6016 # Gregorian calendar backwards to year one.
6017 #
6018 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
6019 # second table is needed for interpretation, using a [24-hour linear
6020 # smear](https://developers.google.com/time/smear).
6021 #
6022 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
6023 # restricting to that range, we ensure that we can convert to and from [RFC
6024 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
6025 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
6026 # second values with fractions must still have non-negative nanos values
6027 # that count forward in time. Must be from 0 to 999,999,999
6028 # inclusive.
6029 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
6030 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
6031 # 9999-12-31T23:59:59Z inclusive.
6032 },
6033 &quot;state&quot;: &quot;A String&quot;, # The initial state is IN_PROGRESS.
6034 # The only legal state transitions are
6035 # * IN_PROGRESS -&gt; COMPLETE
6036 #
6037 # A PRECONDITION_FAILED will be returned if an invalid transition is
6038 # requested.
6039 #
6040 # It is valid to create Step with a state set to COMPLETE.
6041 # The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be
6042 # returned if the state is set to COMPLETE multiple times.
6043 #
6044 # - In response: always set
6045 # - In create/update request: optional
6046 &quot;name&quot;: &quot;A String&quot;, # A short human-readable name to display in the UI.
6047 # Maximum of 100 characters.
6048 # For example: Clean build
6049 #
6050 # A PRECONDITION_FAILED will be returned upon creating a new step if it
6051 # shares its name and dimension_value with an existing step. If two steps
6052 # represent a similar action, but have different dimension values, they
6053 # should share the same name. For instance, if the same set of tests is
6054 # run on two different platforms, the two steps should have the same name.
6055 #
6056 # - In response: always set
6057 # - In create request: always set
6058 # - In update request: never set
6059 &quot;dimensionValue&quot;: [ # If the execution containing this step has any dimension_definition set,
6060 # then this field allows the child to specify the values of the dimensions.
6061 #
6062 # The keys must exactly match the dimension_definition of the execution.
6063 #
6064 # For example, if the execution has
6065 # `dimension_definition = [&#x27;attempt&#x27;, &#x27;device&#x27;]`
6066 # then a step must define values for those dimensions, eg.
6067 # `dimension_value = [&#x27;attempt&#x27;: &#x27;1&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
6068 #
6069 # If a step does not participate in one dimension of the matrix,
6070 # the value for that dimension should be empty string.
6071 # For example, if one of the tests is executed by a runner which
6072 # does not support retries, the step could have
6073 # `dimension_value = [&#x27;attempt&#x27;: &#x27;&#x27;, &#x27;device&#x27;: &#x27;Nexus 6&#x27;]`
6074 #
6075 # If the step does not participate in any dimensions of the matrix,
6076 # it may leave dimension_value unset.
6077 #
6078 # A PRECONDITION_FAILED will be returned if any of the keys do not exist
6079 # in the dimension_definition of the execution.
6080 #
6081 # A PRECONDITION_FAILED will be returned if another step in this execution
6082 # already has the same name and dimension_value, but differs on other data
6083 # fields, for example, step field is different.
6084 #
6085 # A PRECONDITION_FAILED will be returned if dimension_value is set, and
6086 # there is a dimension_definition in the execution which is not specified
6087 # as one of the keys.
6088 #
6089 # - In response: present if set by create
6090 # - In create request: optional
6091 # - In update request: never set
6092 {
6093 &quot;value&quot;: &quot;A String&quot;,
6094 &quot;key&quot;: &quot;A String&quot;,
6095 },
6096 ],
6097 &quot;completionTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The time when the step status was set to complete.
6098 #
6099 # This value will be set automatically when state transitions to
6100 # COMPLETE.
6101 #
6102 # - In response: set if the execution state is COMPLETE.
6103 # - In create/update request: never set
6104 # calendar, encoded as a count of seconds and fractions of seconds at
6105 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
6106 # January 1, 1970, in the proleptic Gregorian calendar which extends the
6107 # Gregorian calendar backwards to year one.
6108 #
6109 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
6110 # second table is needed for interpretation, using a [24-hour linear
6111 # smear](https://developers.google.com/time/smear).
6112 #
6113 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
6114 # restricting to that range, we ensure that we can convert to and from [RFC
6115 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
6116 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
6117 # second values with fractions must still have non-negative nanos values
6118 # that count forward in time. Must be from 0 to 999,999,999
6119 # inclusive.
6120 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
6121 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
6122 # 9999-12-31T23:59:59Z inclusive.
6123 },
6124 &quot;multiStep&quot;: { # Details when multiple steps are run with the same configuration as a group. # Details when multiple steps are run with the same configuration as a group.
6125 # These details can be used identify which group this step is part of.
6126 # It also identifies the groups &#x27;primary step&#x27; which indexes all the group
6127 # members.
6128 #
6129 # - In response: present if previously set.
6130 # - In create request: optional, set iff this step was performed more than
6131 # once.
6132 # - In update request: optional
6133 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
6134 # Ranges from 0(inclusive) to total number of steps(exclusive).
6135 # The primary step is 0.
6136 &quot;primaryStepId&quot;: &quot;A String&quot;, # Step Id of the primary (original) step, which might be this step.
6137 &quot;primaryStep&quot;: { # Stores rollup test status of multiple steps that were run as a group and # Present if it is a primary (original) step.
6138 # outcome of each individual step.
6139 &quot;rollUp&quot;: &quot;A String&quot;, # Rollup test status of multiple steps that were run with the same
6140 # configuration as a group.
6141 &quot;individualOutcome&quot;: [ # Step Id and outcome of each individual step.
6142 { # Step Id and outcome of each individual step that was run as a group with
6143 # other steps with the same configuration.
6144 &quot;runDuration&quot;: { # # How long it took for this step to run.
6145 # A Duration represents a signed, fixed-length span of time represented
6146 # as a count of seconds and fractions of seconds at nanosecond
6147 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
6148 # or &quot;month&quot;. It is related to Timestamp in that the difference between
6149 # two Timestamp values is a Duration and it can be added or subtracted
6150 # from a Timestamp. Range is approximately +-10,000 years.
6151 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
6152 # of time. Durations less than one second are represented with a 0
6153 # `seconds` field and a positive or negative `nanos` field. For durations
6154 # of one second or more, a non-zero value for the `nanos` field must be
6155 # of the same sign as the `seconds` field. Must be from -999,999,999
6156 # to +999,999,999 inclusive.
6157 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
6158 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
6159 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
6160 },
6161 &quot;stepId&quot;: &quot;A String&quot;,
6162 &quot;multistepNumber&quot;: 42, # Unique int given to each step.
6163 # Ranges from 0(inclusive) to total number of steps(exclusive).
6164 # The primary step is 0.
6165 &quot;outcomeSummary&quot;: &quot;A String&quot;,
6166 },
6167 ],
6168 },
6169 },
6170 &quot;stepId&quot;: &quot;A String&quot;, # A unique identifier within a Execution for this Step.
6171 #
6172 # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
6173 #
6174 # - In response: always set
6175 # - In create/update request: never set
6176 &quot;outcome&quot;: { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
6177 #
6178 # - In response: present if set by create/update request
6179 # - In create/update request: optional
6180 &quot;summary&quot;: &quot;A String&quot;, # The simplest way to interpret a result.
6181 #
6182 # Required
6183 &quot;failureDetail&quot;: { # Details for an outcome with a FAILURE outcome summary. # More information about a FAILURE outcome.
6184 #
6185 # Returns INVALID_ARGUMENT if this field is set
6186 # but the summary is not FAILURE.
6187 #
6188 # Optional
6189 &quot;unableToCrawl&quot;: True or False, # If the robo was unable to crawl the app; perhaps because the app did not
6190 # start.
6191 &quot;notInstalled&quot;: True or False, # If an app is not installed and thus no test can be run with the app.
6192 # This might be caused by trying to run a test on an unsupported platform.
6193 &quot;timedOut&quot;: True or False, # If the test overran some time limit, and that is why it failed.
6194 &quot;otherNativeCrash&quot;: True or False, # If a native process (including any other than the app) crashed.
6195 &quot;crashed&quot;: True or False, # If the failure was severe because the system (app) under test crashed.
6196 },
6197 &quot;inconclusiveDetail&quot;: { # Details for an outcome with an INCONCLUSIVE outcome summary. # More information about an INCONCLUSIVE outcome.
6198 #
6199 # Returns INVALID_ARGUMENT if this field is set
6200 # but the summary is not INCONCLUSIVE.
6201 #
6202 # Optional
6203 &quot;hasErrorLogs&quot;: True or False, # If results are being provided to the user in certain cases of
6204 # infrastructure failures
6205 &quot;infrastructureFailure&quot;: True or False, # If the test runner could not determine success or failure because the test
6206 # depends on a component other than the system under test which failed.
6207 #
6208 # For example, a mobile test requires provisioning a device where the test
6209 # executes, and that provisioning can fail.
6210 &quot;abortedByUser&quot;: True or False, # If the end user aborted the test execution before a pass or fail could be
6211 # determined.
6212 # For example, the user pressed ctrl-c which sent a kill signal to the test
6213 # runner while the test was running.
6214 },
6215 &quot;successDetail&quot;: { # Details for an outcome with a SUCCESS outcome summary. # More information about a SUCCESS outcome.
6216 #
6217 # Returns INVALID_ARGUMENT if this field is set
6218 # but the summary is not SUCCESS.
6219 #
6220 # Optional
6221 # LINT.IfChange
6222 &quot;otherNativeCrash&quot;: True or False, # If a native process other than the app crashed.
6223 },
6224 &quot;skippedDetail&quot;: { # Details for an outcome with a SKIPPED outcome summary. # More information about a SKIPPED outcome.
6225 #
6226 # Returns INVALID_ARGUMENT if this field is set
6227 # but the summary is not SKIPPED.
6228 #
6229 # Optional
6230 &quot;incompatibleAppVersion&quot;: True or False, # If the App doesn&#x27;t support the specific API level.
6231 &quot;incompatibleDevice&quot;: True or False, # If the requested OS version doesn&#x27;t run on the specific device model.
6232 &quot;incompatibleArchitecture&quot;: True or False, # If the App doesn&#x27;t run on the specific architecture, for example, x86.
6233 },
6234 },
6235 &quot;toolExecutionStep&quot;: { # Generic tool step to be used for binaries we do not explicitly support. # An execution of a tool (used for steps we don&#x27;t explicitly support).
6236 # For example: running cp to copy artifacts from one location to another.
6237 &quot;toolExecution&quot;: { # An execution of an arbitrary tool. It could be a test runner or a tool # A Tool execution.
6238 #
6239 # - In response: present if set by create/update request
6240 # - In create/update request: optional
6241 # copying artifacts or deploying code.
6242 &quot;commandLineArguments&quot;: [ # The full tokenized command line including the program name (equivalent to
6243 # argv in a C program).
6244 #
6245 # - In response: present if set by create request
6246 # - In create request: optional
6247 # - In update request: never set
6248 &quot;A String&quot;,
6249 ],
6250 &quot;exitCode&quot;: { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has
6251 # exited.
6252 #
6253 # - In response: present if set by create/update request
6254 # - In create request: optional
6255 # - In update request: optional, a FAILED_PRECONDITION error will be
6256 # returned if an exit_code is already set.
6257 &quot;number&quot;: 42, # Tool execution exit code. A value of 0 means that the execution was
6258 # successful.
6259 #
6260 # - In response: always set
6261 # - In create/update request: always set
6262 },
6263 &quot;toolLogs&quot;: [ # References to any plain text logs output the tool execution.
6264 #
6265 # This field can be set before the tool has exited in order to be able to
6266 # have access to a live view of the logs while the tool is running.
6267 #
6268 # The maximum allowed number of tool logs per step is 1000.
6269 #
6270 # - In response: present if set by create/update request
6271 # - In create request: optional
6272 # - In update request: optional, any value provided will be appended to the
6273 # existing list
6274 { # A reference to a file.
6275 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
6276 #
6277 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
6278 # or in gsutil format: gs://mybucket/path/to/test.xml
6279 # with version-specific info,
6280 # gs://mybucket/path/to/test.xml#1360383693690000
6281 #
6282 # An INVALID_ARGUMENT error will be returned if the URI format is not
6283 # supported.
6284 #
6285 # - In response: always set
6286 # - In create/update request: always set
6287 },
6288 ],
6289 &quot;toolOutputs&quot;: [ # References to opaque files of any format output by the tool execution.
6290 #
6291 # The maximum allowed number of tool outputs per step is 1000.
6292 #
6293 # - In response: present if set by create/update request
6294 # - In create request: optional
6295 # - In update request: optional, any value provided will be appended to the
6296 # existing list
6297 { # A reference to a ToolExecution output file.
6298 &quot;creationTime&quot;: { # A Timestamp represents a point in time independent of any time zone or local # The creation time of the file.
6299 #
6300 # - In response: present if set by create/update request
6301 # - In create/update request: optional
6302 # calendar, encoded as a count of seconds and fractions of seconds at
6303 # nanosecond resolution. The count is relative to an epoch at UTC midnight on
6304 # January 1, 1970, in the proleptic Gregorian calendar which extends the
6305 # Gregorian calendar backwards to year one.
6306 #
6307 # All minutes are 60 seconds long. Leap seconds are &quot;smeared&quot; so that no leap
6308 # second table is needed for interpretation, using a [24-hour linear
6309 # smear](https://developers.google.com/time/smear).
6310 #
6311 # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
6312 # restricting to that range, we ensure that we can convert to and from [RFC
6313 # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
6314 &quot;nanos&quot;: 42, # Non-negative fractions of a second at nanosecond resolution. Negative
6315 # second values with fractions must still have non-negative nanos values
6316 # that count forward in time. Must be from 0 to 999,999,999
6317 # inclusive.
6318 &quot;seconds&quot;: &quot;A String&quot;, # Represents seconds of UTC time since Unix epoch
6319 # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
6320 # 9999-12-31T23:59:59Z inclusive.
6321 },
6322 &quot;output&quot;: { # A reference to a file. # A FileReference to an output file.
6323 #
6324 # - In response: always set
6325 # - In create/update request: always set
6326 &quot;fileUri&quot;: &quot;A String&quot;, # The URI of a file stored in Google Cloud Storage.
6327 #
6328 # For example: http://storage.googleapis.com/mybucket/path/to/test.xml
6329 # or in gsutil format: gs://mybucket/path/to/test.xml
6330 # with version-specific info,
6331 # gs://mybucket/path/to/test.xml#1360383693690000
6332 #
6333 # An INVALID_ARGUMENT error will be returned if the URI format is not
6334 # supported.
6335 #
6336 # - In response: always set
6337 # - In create/update request: always set
6338 },
6339 &quot;testCase&quot;: { # A reference to a test case. # The test case to which this output file belongs.
6340 #
6341 # - In response: present if set by create/update request
6342 # - In create/update request: optional
6343 #
6344 # Test case references are canonically ordered lexicographically by these three
6345 # factors:
6346 # * First, by test_suite_name.
6347 # * Second, by class_name.
6348 # * Third, by name.
6349 &quot;name&quot;: &quot;A String&quot;, # The name of the test case.
6350 #
6351 # Required.
6352 &quot;testSuiteName&quot;: &quot;A String&quot;, # The name of the test suite to which this test case belongs.
6353 &quot;className&quot;: &quot;A String&quot;, # The name of the class.
6354 },
6355 },
6356 ],
6357 },
6358 },
6359 &quot;deviceUsageDuration&quot;: { # # How much the device resource is used to perform the test.
6360 #
6361 # This is the device usage used for billing purpose, which is different from
6362 # the run_duration, for example, infrastructure failure won&#x27;t be charged for
6363 # device usage.
6364 #
6365 # PRECONDITION_FAILED will be returned if one attempts to set a
6366 # device_usage on a step which already has this field set.
6367 #
6368 # - In response: present if previously set.
6369 # - In create request: optional
6370 # - In update request: optional
6371 # A Duration represents a signed, fixed-length span of time represented
6372 # as a count of seconds and fractions of seconds at nanosecond
6373 # resolution. It is independent of any calendar and concepts like &quot;day&quot;
6374 # or &quot;month&quot;. It is related to Timestamp in that the difference between
6375 # two Timestamp values is a Duration and it can be added or subtracted
6376 # from a Timestamp. Range is approximately +-10,000 years.
6377 &quot;nanos&quot;: 42, # Signed fractions of a second at nanosecond resolution of the span
6378 # of time. Durations less than one second are represented with a 0
6379 # `seconds` field and a positive or negative `nanos` field. For durations
6380 # of one second or more, a non-zero value for the `nanos` field must be
6381 # of the same sign as the `seconds` field. Must be from -999,999,999
6382 # to +999,999,999 inclusive.
6383 &quot;seconds&quot;: &quot;A String&quot;, # Signed seconds of the span of time. Must be from -315,576,000,000
6384 # to +315,576,000,000 inclusive. Note: these bounds are computed from:
6385 # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
6386 },
6387 &quot;labels&quot;: [ # Arbitrary user-supplied key/value pairs that are associated with the
6388 # step.
6389 #
6390 # Users are responsible for managing the key namespace such that keys
6391 # don&#x27;t accidentally collide.
6392 #
6393 # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or
6394 # if the length of any of the keys or values exceeds 100 characters.
6395 #
6396 # - In response: always set
6397 # - In create request: optional
6398 # - In update request: optional; any new key/value pair will be added to the
6399 # map, and any new value for an existing key will update that key&#x27;s value
6400 {
6401 &quot;value&quot;: &quot;A String&quot;,
6402 &quot;key&quot;: &quot;A String&quot;,
6403 },
6404 ],
6405 }</pre>
6406</div>
6407
6408</body></html>