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