1// Copyright 2021 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package toolresults provides access to the Cloud Tool Results API.
8//
9// For product documentation, see: https://firebase.google.com/docs/test-lab/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/toolresults/v1beta3"
16//   ...
17//   ctx := context.Background()
18//   toolresultsService, err := toolresults.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
27//
28//   toolresultsService, err := toolresults.NewService(ctx, option.WithAPIKey("AIza..."))
29//
30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
31//
32//   config := &oauth2.Config{...}
33//   // ...
34//   token, err := config.Exchange(ctx, ...)
35//   toolresultsService, err := toolresults.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
36//
37// See https://godoc.org/google.golang.org/api/option/ for details on options.
38package toolresults // import "google.golang.org/api/toolresults/v1beta3"
39
40import (
41	"bytes"
42	"context"
43	"encoding/json"
44	"errors"
45	"fmt"
46	"io"
47	"net/http"
48	"net/url"
49	"strconv"
50	"strings"
51
52	googleapi "google.golang.org/api/googleapi"
53	gensupport "google.golang.org/api/internal/gensupport"
54	option "google.golang.org/api/option"
55	internaloption "google.golang.org/api/option/internaloption"
56	htransport "google.golang.org/api/transport/http"
57)
58
59// Always reference these packages, just in case the auto-generated code
60// below doesn't.
61var _ = bytes.NewBuffer
62var _ = strconv.Itoa
63var _ = fmt.Sprintf
64var _ = json.NewDecoder
65var _ = io.Copy
66var _ = url.Parse
67var _ = gensupport.MarshalJSON
68var _ = googleapi.Version
69var _ = errors.New
70var _ = strings.Replace
71var _ = context.Canceled
72var _ = internaloption.WithDefaultEndpoint
73
74const apiId = "toolresults:v1beta3"
75const apiName = "toolresults"
76const apiVersion = "v1beta3"
77const basePath = "https://toolresults.googleapis.com/"
78const mtlsBasePath = "https://toolresults.mtls.googleapis.com/"
79
80// OAuth2 scopes used by this API.
81const (
82	// See, edit, configure, and delete your Google Cloud data and see the
83	// email address for your Google Account.
84	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
85)
86
87// NewService creates a new Service.
88func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
89	scopesOption := option.WithScopes(
90		"https://www.googleapis.com/auth/cloud-platform",
91	)
92	// NOTE: prepend, so we don't override user-specified scopes.
93	opts = append([]option.ClientOption{scopesOption}, opts...)
94	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
95	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
96	client, endpoint, err := htransport.NewClient(ctx, opts...)
97	if err != nil {
98		return nil, err
99	}
100	s, err := New(client)
101	if err != nil {
102		return nil, err
103	}
104	if endpoint != "" {
105		s.BasePath = endpoint
106	}
107	return s, nil
108}
109
110// New creates a new Service. It uses the provided http.Client for requests.
111//
112// Deprecated: please use NewService instead.
113// To provide a custom HTTP client, use option.WithHTTPClient.
114// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
115func New(client *http.Client) (*Service, error) {
116	if client == nil {
117		return nil, errors.New("client is nil")
118	}
119	s := &Service{client: client, BasePath: basePath}
120	s.Projects = NewProjectsService(s)
121	return s, nil
122}
123
124type Service struct {
125	client    *http.Client
126	BasePath  string // API endpoint base URL
127	UserAgent string // optional additional User-Agent fragment
128
129	Projects *ProjectsService
130}
131
132func (s *Service) userAgent() string {
133	if s.UserAgent == "" {
134		return googleapi.UserAgent
135	}
136	return googleapi.UserAgent + " " + s.UserAgent
137}
138
139func NewProjectsService(s *Service) *ProjectsService {
140	rs := &ProjectsService{s: s}
141	rs.Histories = NewProjectsHistoriesService(s)
142	return rs
143}
144
145type ProjectsService struct {
146	s *Service
147
148	Histories *ProjectsHistoriesService
149}
150
151func NewProjectsHistoriesService(s *Service) *ProjectsHistoriesService {
152	rs := &ProjectsHistoriesService{s: s}
153	rs.Executions = NewProjectsHistoriesExecutionsService(s)
154	return rs
155}
156
157type ProjectsHistoriesService struct {
158	s *Service
159
160	Executions *ProjectsHistoriesExecutionsService
161}
162
163func NewProjectsHistoriesExecutionsService(s *Service) *ProjectsHistoriesExecutionsService {
164	rs := &ProjectsHistoriesExecutionsService{s: s}
165	rs.Clusters = NewProjectsHistoriesExecutionsClustersService(s)
166	rs.Environments = NewProjectsHistoriesExecutionsEnvironmentsService(s)
167	rs.Steps = NewProjectsHistoriesExecutionsStepsService(s)
168	return rs
169}
170
171type ProjectsHistoriesExecutionsService struct {
172	s *Service
173
174	Clusters *ProjectsHistoriesExecutionsClustersService
175
176	Environments *ProjectsHistoriesExecutionsEnvironmentsService
177
178	Steps *ProjectsHistoriesExecutionsStepsService
179}
180
181func NewProjectsHistoriesExecutionsClustersService(s *Service) *ProjectsHistoriesExecutionsClustersService {
182	rs := &ProjectsHistoriesExecutionsClustersService{s: s}
183	return rs
184}
185
186type ProjectsHistoriesExecutionsClustersService struct {
187	s *Service
188}
189
190func NewProjectsHistoriesExecutionsEnvironmentsService(s *Service) *ProjectsHistoriesExecutionsEnvironmentsService {
191	rs := &ProjectsHistoriesExecutionsEnvironmentsService{s: s}
192	return rs
193}
194
195type ProjectsHistoriesExecutionsEnvironmentsService struct {
196	s *Service
197}
198
199func NewProjectsHistoriesExecutionsStepsService(s *Service) *ProjectsHistoriesExecutionsStepsService {
200	rs := &ProjectsHistoriesExecutionsStepsService{s: s}
201	rs.PerfMetricsSummary = NewProjectsHistoriesExecutionsStepsPerfMetricsSummaryService(s)
202	rs.PerfSampleSeries = NewProjectsHistoriesExecutionsStepsPerfSampleSeriesService(s)
203	rs.TestCases = NewProjectsHistoriesExecutionsStepsTestCasesService(s)
204	rs.Thumbnails = NewProjectsHistoriesExecutionsStepsThumbnailsService(s)
205	return rs
206}
207
208type ProjectsHistoriesExecutionsStepsService struct {
209	s *Service
210
211	PerfMetricsSummary *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService
212
213	PerfSampleSeries *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService
214
215	TestCases *ProjectsHistoriesExecutionsStepsTestCasesService
216
217	Thumbnails *ProjectsHistoriesExecutionsStepsThumbnailsService
218}
219
220func NewProjectsHistoriesExecutionsStepsPerfMetricsSummaryService(s *Service) *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService {
221	rs := &ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService{s: s}
222	return rs
223}
224
225type ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService struct {
226	s *Service
227}
228
229func NewProjectsHistoriesExecutionsStepsPerfSampleSeriesService(s *Service) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService {
230	rs := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesService{s: s}
231	rs.Samples = NewProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService(s)
232	return rs
233}
234
235type ProjectsHistoriesExecutionsStepsPerfSampleSeriesService struct {
236	s *Service
237
238	Samples *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService
239}
240
241func NewProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService(s *Service) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService {
242	rs := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService{s: s}
243	return rs
244}
245
246type ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService struct {
247	s *Service
248}
249
250func NewProjectsHistoriesExecutionsStepsTestCasesService(s *Service) *ProjectsHistoriesExecutionsStepsTestCasesService {
251	rs := &ProjectsHistoriesExecutionsStepsTestCasesService{s: s}
252	return rs
253}
254
255type ProjectsHistoriesExecutionsStepsTestCasesService struct {
256	s *Service
257}
258
259func NewProjectsHistoriesExecutionsStepsThumbnailsService(s *Service) *ProjectsHistoriesExecutionsStepsThumbnailsService {
260	rs := &ProjectsHistoriesExecutionsStepsThumbnailsService{s: s}
261	return rs
262}
263
264type ProjectsHistoriesExecutionsStepsThumbnailsService struct {
265	s *Service
266}
267
268// ANR: Additional details for an ANR crash.
269type ANR struct {
270	// StackTrace: The stack trace of the ANR crash. Optional.
271	StackTrace *StackTrace `json:"stackTrace,omitempty"`
272
273	// ForceSendFields is a list of field names (e.g. "StackTrace") to
274	// unconditionally include in API requests. By default, fields with
275	// empty or default values are omitted from API requests. However, any
276	// non-pointer, non-interface field appearing in ForceSendFields will be
277	// sent to the server regardless of whether the field is empty or not.
278	// This may be used to include empty fields in Patch requests.
279	ForceSendFields []string `json:"-"`
280
281	// NullFields is a list of field names (e.g. "StackTrace") to include in
282	// API requests with the JSON null value. By default, fields with empty
283	// values are omitted from API requests. However, any field with an
284	// empty value appearing in NullFields will be sent to the server as
285	// null. It is an error if a field in this list has a non-empty value.
286	// This may be used to include null fields in Patch requests.
287	NullFields []string `json:"-"`
288}
289
290func (s *ANR) MarshalJSON() ([]byte, error) {
291	type NoMethod ANR
292	raw := NoMethod(*s)
293	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
294}
295
296// AndroidAppInfo: Android app information.
297type AndroidAppInfo struct {
298	// Name: The name of the app. Optional
299	Name string `json:"name,omitempty"`
300
301	// PackageName: The package name of the app. Required.
302	PackageName string `json:"packageName,omitempty"`
303
304	// VersionCode: The internal version code of the app. Optional.
305	VersionCode string `json:"versionCode,omitempty"`
306
307	// VersionName: The version name of the app. Optional.
308	VersionName string `json:"versionName,omitempty"`
309
310	// ForceSendFields is a list of field names (e.g. "Name") to
311	// unconditionally include in API requests. By default, fields with
312	// empty or default values are omitted from API requests. However, any
313	// non-pointer, non-interface field appearing in ForceSendFields will be
314	// sent to the server regardless of whether the field is empty or not.
315	// This may be used to include empty fields in Patch requests.
316	ForceSendFields []string `json:"-"`
317
318	// NullFields is a list of field names (e.g. "Name") to include in API
319	// requests with the JSON null value. By default, fields with empty
320	// values are omitted from API requests. However, any field with an
321	// empty value appearing in NullFields will be sent to the server as
322	// null. It is an error if a field in this list has a non-empty value.
323	// This may be used to include null fields in Patch requests.
324	NullFields []string `json:"-"`
325}
326
327func (s *AndroidAppInfo) MarshalJSON() ([]byte, error) {
328	type NoMethod AndroidAppInfo
329	raw := NoMethod(*s)
330	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
331}
332
333// AndroidInstrumentationTest: A test of an Android application that can
334// control an Android component independently of its normal lifecycle.
335// See for more information on types of Android tests.
336type AndroidInstrumentationTest struct {
337	// TestPackageId: The java package for the test to be executed. Required
338	TestPackageId string `json:"testPackageId,omitempty"`
339
340	// TestRunnerClass: The InstrumentationTestRunner class. Required
341	TestRunnerClass string `json:"testRunnerClass,omitempty"`
342
343	// TestTargets: Each target must be fully qualified with the package
344	// name or class name, in one of these formats: - "package package_name"
345	// - "class package_name.class_name" - "class
346	// package_name.class_name#method_name" If empty, all targets in the
347	// module will be run.
348	TestTargets []string `json:"testTargets,omitempty"`
349
350	// UseOrchestrator: The flag indicates whether Android Test Orchestrator
351	// will be used to run test or not.
352	UseOrchestrator bool `json:"useOrchestrator,omitempty"`
353
354	// ForceSendFields is a list of field names (e.g. "TestPackageId") to
355	// unconditionally include in API requests. By default, fields with
356	// empty or default values are omitted from API requests. However, any
357	// non-pointer, non-interface field appearing in ForceSendFields will be
358	// sent to the server regardless of whether the field is empty or not.
359	// This may be used to include empty fields in Patch requests.
360	ForceSendFields []string `json:"-"`
361
362	// NullFields is a list of field names (e.g. "TestPackageId") to include
363	// in API requests with the JSON null value. By default, fields with
364	// empty values are omitted from API requests. However, any field with
365	// an empty value appearing in NullFields will be sent to the server as
366	// null. It is an error if a field in this list has a non-empty value.
367	// This may be used to include null fields in Patch requests.
368	NullFields []string `json:"-"`
369}
370
371func (s *AndroidInstrumentationTest) MarshalJSON() ([]byte, error) {
372	type NoMethod AndroidInstrumentationTest
373	raw := NoMethod(*s)
374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
375}
376
377// AndroidRoboTest: A test of an android application that explores the
378// application on a virtual or physical Android device, finding culprits
379// and crashes as it goes.
380type AndroidRoboTest struct {
381	// AppInitialActivity: The initial activity that should be used to start
382	// the app. Optional
383	AppInitialActivity string `json:"appInitialActivity,omitempty"`
384
385	// BootstrapPackageId: The java package for the bootstrap. Optional
386	BootstrapPackageId string `json:"bootstrapPackageId,omitempty"`
387
388	// BootstrapRunnerClass: The runner class for the bootstrap. Optional
389	BootstrapRunnerClass string `json:"bootstrapRunnerClass,omitempty"`
390
391	// MaxDepth: The max depth of the traversal stack Robo can explore.
392	// Optional
393	MaxDepth int64 `json:"maxDepth,omitempty"`
394
395	// MaxSteps: The max number of steps/actions Robo can execute. Default
396	// is no limit (0). Optional
397	MaxSteps int64 `json:"maxSteps,omitempty"`
398
399	// ForceSendFields is a list of field names (e.g. "AppInitialActivity")
400	// to unconditionally include in API requests. By default, fields with
401	// empty or default values are omitted from API requests. However, any
402	// non-pointer, non-interface field appearing in ForceSendFields will be
403	// sent to the server regardless of whether the field is empty or not.
404	// This may be used to include empty fields in Patch requests.
405	ForceSendFields []string `json:"-"`
406
407	// NullFields is a list of field names (e.g. "AppInitialActivity") to
408	// include in API requests with the JSON null value. By default, fields
409	// with empty values are omitted from API requests. However, any field
410	// with an empty value appearing in NullFields will be sent to the
411	// server as null. It is an error if a field in this list has a
412	// non-empty value. This may be used to include null fields in Patch
413	// requests.
414	NullFields []string `json:"-"`
415}
416
417func (s *AndroidRoboTest) MarshalJSON() ([]byte, error) {
418	type NoMethod AndroidRoboTest
419	raw := NoMethod(*s)
420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
421}
422
423// AndroidTest: An Android mobile test specification.
424type AndroidTest struct {
425	// AndroidAppInfo: Information about the application under test.
426	AndroidAppInfo *AndroidAppInfo `json:"androidAppInfo,omitempty"`
427
428	// AndroidInstrumentationTest: An Android instrumentation test.
429	AndroidInstrumentationTest *AndroidInstrumentationTest `json:"androidInstrumentationTest,omitempty"`
430
431	// AndroidRoboTest: An Android robo test.
432	AndroidRoboTest *AndroidRoboTest `json:"androidRoboTest,omitempty"`
433
434	// AndroidTestLoop: An Android test loop.
435	AndroidTestLoop *AndroidTestLoop `json:"androidTestLoop,omitempty"`
436
437	// TestTimeout: Max time a test is allowed to run before it is
438	// automatically cancelled.
439	TestTimeout *Duration `json:"testTimeout,omitempty"`
440
441	// ForceSendFields is a list of field names (e.g. "AndroidAppInfo") to
442	// unconditionally include in API requests. By default, fields with
443	// empty or default values are omitted from API requests. However, any
444	// non-pointer, non-interface field appearing in ForceSendFields will be
445	// sent to the server regardless of whether the field is empty or not.
446	// This may be used to include empty fields in Patch requests.
447	ForceSendFields []string `json:"-"`
448
449	// NullFields is a list of field names (e.g. "AndroidAppInfo") to
450	// include in API requests with the JSON null value. By default, fields
451	// with empty values are omitted from API requests. However, any field
452	// with an empty value appearing in NullFields will be sent to the
453	// server as null. It is an error if a field in this list has a
454	// non-empty value. This may be used to include null fields in Patch
455	// requests.
456	NullFields []string `json:"-"`
457}
458
459func (s *AndroidTest) MarshalJSON() ([]byte, error) {
460	type NoMethod AndroidTest
461	raw := NoMethod(*s)
462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
463}
464
465// AndroidTestLoop: Test Loops are tests that can be launched by the app
466// itself, determining when to run by listening for an intent.
467type AndroidTestLoop struct {
468}
469
470// Any:  `Any` contains an arbitrary serialized protocol buffer message
471// along with a URL that describes the type of the serialized message.
472// Protobuf library provides support to pack/unpack Any values in the
473// form of utility functions or additional generated methods of the Any
474// type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any
475// any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example
476// 2: Pack and unpack a message in Java. Foo foo = ...; Any any =
477// Any.pack(foo); ... if (any.is(Foo.class)) { foo =
478// any.unpack(Foo.class); } Example 3: Pack and unpack a message in
479// Python. foo = Foo(...) any = Any() any.Pack(foo) ... if
480// any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and
481// unpack a message in Go foo := &pb.Foo{...} any, err :=
482// ptypes.MarshalAny(foo) ... foo := &pb.Foo{} if err :=
483// ptypes.UnmarshalAny(any, foo); err != nil { ... } The pack methods
484// provided by protobuf library will by default use
485// 'type.googleapis.com/full.type.name' as the type URL and the unpack
486// methods only use the fully qualified type name after the last '/' in
487// the type URL, for example "foo.bar.com/x/y.z" will yield type name
488// "y.z". # JSON The JSON representation of an `Any` value uses the
489// regular representation of the deserialized, embedded message, with an
490// additional field `@type` which contains the type URL. Example:
491// package google.profile; message Person { string first_name = 1;
492// string last_name = 2; } { "@type":
493// "type.googleapis.com/google.profile.Person", "firstName": ,
494// "lastName": } If the embedded message type is well-known and has a
495// custom JSON representation, that representation will be embedded
496// adding a field `value` which holds the custom JSON in addition to the
497// `@type` field. Example (for message google.protobuf.Duration): {
498// "@type": "type.googleapis.com/google.protobuf.Duration", "value":
499// "1.212s" }
500type Any struct {
501	// TypeUrl: A URL/resource name that uniquely identifies the type of the
502	// serialized protocol buffer message. This string must contain at least
503	// one "/" character. The last segment of the URL's path must represent
504	// the fully qualified name of the type (as in
505	// `path/google.protobuf.Duration`). The name should be in a canonical
506	// form (e.g., leading "." is not accepted). In practice, teams usually
507	// precompile into the binary all types that they expect it to use in
508	// the context of Any. However, for URLs which use the scheme `http`,
509	// `https`, or no scheme, one can optionally set up a type server that
510	// maps type URLs to message definitions as follows: * If no scheme is
511	// provided, `https` is assumed. * An HTTP GET on the URL must yield a
512	// google.protobuf.Type value in binary format, or produce an error. *
513	// Applications are allowed to cache lookup results based on the URL, or
514	// have them precompiled into a binary to avoid any lookup. Therefore,
515	// binary compatibility needs to be preserved on changes to types. (Use
516	// versioned type names to manage breaking changes.) Note: this
517	// functionality is not currently available in the official protobuf
518	// release, and it is not used for type URLs beginning with
519	// type.googleapis.com. Schemes other than `http`, `https` (or the empty
520	// scheme) might be used with implementation specific semantics.
521	TypeUrl string `json:"typeUrl,omitempty"`
522
523	// Value: Must be a valid serialized protocol buffer of the above
524	// specified type.
525	Value string `json:"value,omitempty"`
526
527	// ForceSendFields is a list of field names (e.g. "TypeUrl") to
528	// unconditionally include in API requests. By default, fields with
529	// empty or default values are omitted from API requests. However, any
530	// non-pointer, non-interface field appearing in ForceSendFields will be
531	// sent to the server regardless of whether the field is empty or not.
532	// This may be used to include empty fields in Patch requests.
533	ForceSendFields []string `json:"-"`
534
535	// NullFields is a list of field names (e.g. "TypeUrl") to include in
536	// API requests with the JSON null value. By default, fields with empty
537	// values are omitted from API requests. However, any field with an
538	// empty value appearing in NullFields will be sent to the server as
539	// null. It is an error if a field in this list has a non-empty value.
540	// This may be used to include null fields in Patch requests.
541	NullFields []string `json:"-"`
542}
543
544func (s *Any) MarshalJSON() ([]byte, error) {
545	type NoMethod Any
546	raw := NoMethod(*s)
547	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
548}
549
550type AppStartTime struct {
551	// FullyDrawnTime: Optional. The time from app start to reaching the
552	// developer-reported "fully drawn" time. This is only stored if the app
553	// includes a call to Activity.reportFullyDrawn(). See
554	// https://developer.android.com/topic/performance/launch-time.html#time-full
555	FullyDrawnTime *Duration `json:"fullyDrawnTime,omitempty"`
556
557	// InitialDisplayTime: The time from app start to the first displayed
558	// activity being drawn, as reported in Logcat. See
559	// https://developer.android.com/topic/performance/launch-time.html#time-initial
560	InitialDisplayTime *Duration `json:"initialDisplayTime,omitempty"`
561
562	// ForceSendFields is a list of field names (e.g. "FullyDrawnTime") to
563	// unconditionally include in API requests. By default, fields with
564	// empty or default values are omitted from API requests. However, any
565	// non-pointer, non-interface field appearing in ForceSendFields will be
566	// sent to the server regardless of whether the field is empty or not.
567	// This may be used to include empty fields in Patch requests.
568	ForceSendFields []string `json:"-"`
569
570	// NullFields is a list of field names (e.g. "FullyDrawnTime") to
571	// include in API requests with the JSON null value. By default, fields
572	// with empty values are omitted from API requests. However, any field
573	// with an empty value appearing in NullFields will be sent to the
574	// server as null. It is an error if a field in this list has a
575	// non-empty value. This may be used to include null fields in Patch
576	// requests.
577	NullFields []string `json:"-"`
578}
579
580func (s *AppStartTime) MarshalJSON() ([]byte, error) {
581	type NoMethod AppStartTime
582	raw := NoMethod(*s)
583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
584}
585
586// AvailableDeepLinks: A suggestion to use deep links for a Robo run.
587type AvailableDeepLinks struct {
588}
589
590// BasicPerfSampleSeries: Encapsulates the metadata for basic sample
591// series represented by a line chart
592type BasicPerfSampleSeries struct {
593	// Possible values:
594	//   "perfMetricTypeUnspecified"
595	//   "memory"
596	//   "cpu"
597	//   "network"
598	//   "graphics"
599	PerfMetricType string `json:"perfMetricType,omitempty"`
600
601	// Possible values:
602	//   "perfUnitUnspecified"
603	//   "kibibyte"
604	//   "percent"
605	//   "bytesPerSecond"
606	//   "framesPerSecond"
607	//   "byte"
608	PerfUnit string `json:"perfUnit,omitempty"`
609
610	// Possible values:
611	//   "sampleSeriesTypeUnspecified"
612	//   "memoryRssPrivate" - Memory sample series
613	//   "memoryRssShared"
614	//   "memoryRssTotal"
615	//   "memoryTotal"
616	//   "cpuUser" - CPU sample series
617	//   "cpuKernel"
618	//   "cpuTotal"
619	//   "ntBytesTransferred" - Network sample series
620	//   "ntBytesReceived"
621	//   "networkSent"
622	//   "networkReceived"
623	//   "graphicsFrameRate" - Graphics sample series
624	SampleSeriesLabel string `json:"sampleSeriesLabel,omitempty"`
625
626	// ForceSendFields is a list of field names (e.g. "PerfMetricType") to
627	// unconditionally include in API requests. By default, fields with
628	// empty or default values are omitted from API requests. However, any
629	// non-pointer, non-interface field appearing in ForceSendFields will be
630	// sent to the server regardless of whether the field is empty or not.
631	// This may be used to include empty fields in Patch requests.
632	ForceSendFields []string `json:"-"`
633
634	// NullFields is a list of field names (e.g. "PerfMetricType") to
635	// include in API requests with the JSON null value. By default, fields
636	// with empty values are omitted from API requests. However, any field
637	// with an empty value appearing in NullFields will be sent to the
638	// server as null. It is an error if a field in this list has a
639	// non-empty value. This may be used to include null fields in Patch
640	// requests.
641	NullFields []string `json:"-"`
642}
643
644func (s *BasicPerfSampleSeries) MarshalJSON() ([]byte, error) {
645	type NoMethod BasicPerfSampleSeries
646	raw := NoMethod(*s)
647	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
648}
649
650// BatchCreatePerfSamplesRequest: The request must provide up to a
651// maximum of 5000 samples to be created; a larger sample size will
652// cause an INVALID_ARGUMENT error
653type BatchCreatePerfSamplesRequest struct {
654	// PerfSamples: The set of PerfSamples to create should not include
655	// existing timestamps
656	PerfSamples []*PerfSample `json:"perfSamples,omitempty"`
657
658	// ForceSendFields is a list of field names (e.g. "PerfSamples") to
659	// unconditionally include in API requests. By default, fields with
660	// empty or default values are omitted from API requests. However, any
661	// non-pointer, non-interface field appearing in ForceSendFields will be
662	// sent to the server regardless of whether the field is empty or not.
663	// This may be used to include empty fields in Patch requests.
664	ForceSendFields []string `json:"-"`
665
666	// NullFields is a list of field names (e.g. "PerfSamples") to include
667	// in API requests with the JSON null value. By default, fields with
668	// empty values are omitted from API requests. However, any field with
669	// an empty value appearing in NullFields will be sent to the server as
670	// null. It is an error if a field in this list has a non-empty value.
671	// This may be used to include null fields in Patch requests.
672	NullFields []string `json:"-"`
673}
674
675func (s *BatchCreatePerfSamplesRequest) MarshalJSON() ([]byte, error) {
676	type NoMethod BatchCreatePerfSamplesRequest
677	raw := NoMethod(*s)
678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
679}
680
681type BatchCreatePerfSamplesResponse struct {
682	PerfSamples []*PerfSample `json:"perfSamples,omitempty"`
683
684	// ServerResponse contains the HTTP response code and headers from the
685	// server.
686	googleapi.ServerResponse `json:"-"`
687
688	// ForceSendFields is a list of field names (e.g. "PerfSamples") to
689	// unconditionally include in API requests. By default, fields with
690	// empty or default values are omitted from API requests. However, any
691	// non-pointer, non-interface field appearing in ForceSendFields will be
692	// sent to the server regardless of whether the field is empty or not.
693	// This may be used to include empty fields in Patch requests.
694	ForceSendFields []string `json:"-"`
695
696	// NullFields is a list of field names (e.g. "PerfSamples") to include
697	// in API requests with the JSON null value. By default, fields with
698	// empty values are omitted from API requests. However, any field with
699	// an empty value appearing in NullFields will be sent to the server as
700	// null. It is an error if a field in this list has a non-empty value.
701	// This may be used to include null fields in Patch requests.
702	NullFields []string `json:"-"`
703}
704
705func (s *BatchCreatePerfSamplesResponse) MarshalJSON() ([]byte, error) {
706	type NoMethod BatchCreatePerfSamplesResponse
707	raw := NoMethod(*s)
708	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
709}
710
711// BlankScreen: A warning that Robo encountered a screen that was mostly
712// blank; this may indicate a problem with the app.
713type BlankScreen struct {
714	// ScreenId: The screen id of the element
715	ScreenId string `json:"screenId,omitempty"`
716
717	// ForceSendFields is a list of field names (e.g. "ScreenId") to
718	// unconditionally include in API requests. By default, fields with
719	// empty or default values are omitted from API requests. However, any
720	// non-pointer, non-interface field appearing in ForceSendFields will be
721	// sent to the server regardless of whether the field is empty or not.
722	// This may be used to include empty fields in Patch requests.
723	ForceSendFields []string `json:"-"`
724
725	// NullFields is a list of field names (e.g. "ScreenId") to include in
726	// API requests with the JSON null value. By default, fields with empty
727	// values are omitted from API requests. However, any field with an
728	// empty value appearing in NullFields will be sent to the server as
729	// null. It is an error if a field in this list has a non-empty value.
730	// This may be used to include null fields in Patch requests.
731	NullFields []string `json:"-"`
732}
733
734func (s *BlankScreen) MarshalJSON() ([]byte, error) {
735	type NoMethod BlankScreen
736	raw := NoMethod(*s)
737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
738}
739
740type CPUInfo struct {
741	// CpuProcessor: description of the device processor ie '1.8 GHz hexa
742	// core 64-bit ARMv8-A'
743	CpuProcessor string `json:"cpuProcessor,omitempty"`
744
745	// CpuSpeedInGhz: the CPU clock speed in GHz
746	CpuSpeedInGhz float64 `json:"cpuSpeedInGhz,omitempty"`
747
748	// NumberOfCores: the number of CPU cores
749	NumberOfCores int64 `json:"numberOfCores,omitempty"`
750
751	// ForceSendFields is a list of field names (e.g. "CpuProcessor") to
752	// unconditionally include in API requests. By default, fields with
753	// empty or default values are omitted from API requests. However, any
754	// non-pointer, non-interface field appearing in ForceSendFields will be
755	// sent to the server regardless of whether the field is empty or not.
756	// This may be used to include empty fields in Patch requests.
757	ForceSendFields []string `json:"-"`
758
759	// NullFields is a list of field names (e.g. "CpuProcessor") to include
760	// in API requests with the JSON null value. By default, fields with
761	// empty values are omitted from API requests. However, any field with
762	// an empty value appearing in NullFields will be sent to the server as
763	// null. It is an error if a field in this list has a non-empty value.
764	// This may be used to include null fields in Patch requests.
765	NullFields []string `json:"-"`
766}
767
768func (s *CPUInfo) MarshalJSON() ([]byte, error) {
769	type NoMethod CPUInfo
770	raw := NoMethod(*s)
771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
772}
773
774func (s *CPUInfo) UnmarshalJSON(data []byte) error {
775	type NoMethod CPUInfo
776	var s1 struct {
777		CpuSpeedInGhz gensupport.JSONFloat64 `json:"cpuSpeedInGhz"`
778		*NoMethod
779	}
780	s1.NoMethod = (*NoMethod)(s)
781	if err := json.Unmarshal(data, &s1); err != nil {
782		return err
783	}
784	s.CpuSpeedInGhz = float64(s1.CpuSpeedInGhz)
785	return nil
786}
787
788// CrashDialogError: Crash dialog was detected during the test execution
789type CrashDialogError struct {
790	// CrashPackage: The name of the package that caused the dialog.
791	CrashPackage string `json:"crashPackage,omitempty"`
792
793	// ForceSendFields is a list of field names (e.g. "CrashPackage") to
794	// unconditionally include in API requests. By default, fields with
795	// empty or default values are omitted from API requests. However, any
796	// non-pointer, non-interface field appearing in ForceSendFields will be
797	// sent to the server regardless of whether the field is empty or not.
798	// This may be used to include empty fields in Patch requests.
799	ForceSendFields []string `json:"-"`
800
801	// NullFields is a list of field names (e.g. "CrashPackage") to include
802	// in API requests with the JSON null value. By default, fields with
803	// empty values are omitted from API requests. However, any field with
804	// an empty value appearing in NullFields will be sent to the server as
805	// null. It is an error if a field in this list has a non-empty value.
806	// This may be used to include null fields in Patch requests.
807	NullFields []string `json:"-"`
808}
809
810func (s *CrashDialogError) MarshalJSON() ([]byte, error) {
811	type NoMethod CrashDialogError
812	raw := NoMethod(*s)
813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
814}
815
816// DeviceOutOfMemory: A warning that device ran out of memory
817type DeviceOutOfMemory struct {
818}
819
820// Duration:  A Duration represents a signed, fixed-length span of time
821// represented as a count of seconds and fractions of seconds at
822// nanosecond resolution. It is independent of any calendar and concepts
823// like "day" or "month". It is related to Timestamp in that the
824// difference between two Timestamp values is a Duration and it can be
825// added or subtracted from a Timestamp. Range is approximately +-10,000
826// years.
827type Duration struct {
828	// Nanos: Signed fractions of a second at nanosecond resolution of the
829	// span of time. Durations less than one second are represented with a 0
830	// `seconds` field and a positive or negative `nanos` field. For
831	// durations of one second or more, a non-zero value for the `nanos`
832	// field must be of the same sign as the `seconds` field. Must be from
833	// -999,999,999 to +999,999,999 inclusive.
834	Nanos int64 `json:"nanos,omitempty"`
835
836	// Seconds: Signed seconds of the span of time. Must be from
837	// -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds
838	// are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25
839	// days/year * 10000 years
840	Seconds int64 `json:"seconds,omitempty,string"`
841
842	// ForceSendFields is a list of field names (e.g. "Nanos") to
843	// unconditionally include in API requests. By default, fields with
844	// empty or default values are omitted from API requests. However, any
845	// non-pointer, non-interface field appearing in ForceSendFields will be
846	// sent to the server regardless of whether the field is empty or not.
847	// This may be used to include empty fields in Patch requests.
848	ForceSendFields []string `json:"-"`
849
850	// NullFields is a list of field names (e.g. "Nanos") to include in API
851	// requests with the JSON null value. By default, fields with empty
852	// values are omitted from API requests. However, any field with an
853	// empty value appearing in NullFields will be sent to the server as
854	// null. It is an error if a field in this list has a non-empty value.
855	// This may be used to include null fields in Patch requests.
856	NullFields []string `json:"-"`
857}
858
859func (s *Duration) MarshalJSON() ([]byte, error) {
860	type NoMethod Duration
861	raw := NoMethod(*s)
862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
863}
864
865// EncounteredLoginScreen: Additional details about encountered login
866// screens.
867type EncounteredLoginScreen struct {
868	// DistinctScreens: Number of encountered distinct login screens.
869	DistinctScreens int64 `json:"distinctScreens,omitempty"`
870
871	// ScreenIds: Subset of login screens.
872	ScreenIds []string `json:"screenIds,omitempty"`
873
874	// ForceSendFields is a list of field names (e.g. "DistinctScreens") to
875	// unconditionally include in API requests. By default, fields with
876	// empty or default values are omitted from API requests. However, any
877	// non-pointer, non-interface field appearing in ForceSendFields will be
878	// sent to the server regardless of whether the field is empty or not.
879	// This may be used to include empty fields in Patch requests.
880	ForceSendFields []string `json:"-"`
881
882	// NullFields is a list of field names (e.g. "DistinctScreens") to
883	// include in API requests with the JSON null value. By default, fields
884	// with empty values are omitted from API requests. However, any field
885	// with an empty value appearing in NullFields will be sent to the
886	// server as null. It is an error if a field in this list has a
887	// non-empty value. This may be used to include null fields in Patch
888	// requests.
889	NullFields []string `json:"-"`
890}
891
892func (s *EncounteredLoginScreen) MarshalJSON() ([]byte, error) {
893	type NoMethod EncounteredLoginScreen
894	raw := NoMethod(*s)
895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
896}
897
898// EncounteredNonAndroidUiWidgetScreen: Additional details about
899// encountered screens with elements that are not Android UI widgets.
900type EncounteredNonAndroidUiWidgetScreen struct {
901	// DistinctScreens: Number of encountered distinct screens with non
902	// Android UI widgets.
903	DistinctScreens int64 `json:"distinctScreens,omitempty"`
904
905	// ScreenIds: Subset of screens which contain non Android UI widgets.
906	ScreenIds []string `json:"screenIds,omitempty"`
907
908	// ForceSendFields is a list of field names (e.g. "DistinctScreens") to
909	// unconditionally include in API requests. By default, fields with
910	// empty or default values are omitted from API requests. However, any
911	// non-pointer, non-interface field appearing in ForceSendFields will be
912	// sent to the server regardless of whether the field is empty or not.
913	// This may be used to include empty fields in Patch requests.
914	ForceSendFields []string `json:"-"`
915
916	// NullFields is a list of field names (e.g. "DistinctScreens") to
917	// include in API requests with the JSON null value. By default, fields
918	// with empty values are omitted from API requests. However, any field
919	// with an empty value appearing in NullFields will be sent to the
920	// server as null. It is an error if a field in this list has a
921	// non-empty value. This may be used to include null fields in Patch
922	// requests.
923	NullFields []string `json:"-"`
924}
925
926func (s *EncounteredNonAndroidUiWidgetScreen) MarshalJSON() ([]byte, error) {
927	type NoMethod EncounteredNonAndroidUiWidgetScreen
928	raw := NoMethod(*s)
929	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
930}
931
932// Environment: An Environment represents the set of test runs (Steps)
933// from the parent Execution that are configured with the same set of
934// dimensions (Model, Version, Locale, and Orientation). Multiple such
935// runs occur particularly because of features like sharding (splitting
936// up a test suite to run in parallel across devices) and reruns
937// (running a test multiple times to check for different outcomes).
938type Environment struct {
939	// CompletionTime: Output only. The time when the Environment status was
940	// set to complete. This value will be set automatically when state
941	// transitions to COMPLETE.
942	CompletionTime *Timestamp `json:"completionTime,omitempty"`
943
944	// CreationTime: Output only. The time when the Environment was created.
945	CreationTime *Timestamp `json:"creationTime,omitempty"`
946
947	// DimensionValue: Dimension values describing the environment.
948	// Dimension values always consist of "Model", "Version", "Locale", and
949	// "Orientation". - In response: always set - In create request: always
950	// set - In update request: never set
951	DimensionValue []*EnvironmentDimensionValueEntry `json:"dimensionValue,omitempty"`
952
953	// DisplayName: A short human-readable name to display in the UI.
954	// Maximum of 100 characters. For example: Nexus 5, API 27.
955	DisplayName string `json:"displayName,omitempty"`
956
957	// EnvironmentId: Output only. An Environment id.
958	EnvironmentId string `json:"environmentId,omitempty"`
959
960	// EnvironmentResult: Merged result of the environment.
961	EnvironmentResult *MergedResult `json:"environmentResult,omitempty"`
962
963	// ExecutionId: Output only. An Execution id.
964	ExecutionId string `json:"executionId,omitempty"`
965
966	// HistoryId: Output only. A History id.
967	HistoryId string `json:"historyId,omitempty"`
968
969	// ProjectId: Output only. A Project id.
970	ProjectId string `json:"projectId,omitempty"`
971
972	// ResultsStorage: The location where output files are stored in the
973	// user bucket.
974	ResultsStorage *ResultsStorage `json:"resultsStorage,omitempty"`
975
976	// ShardSummaries: Output only. Summaries of shards. Only one shard will
977	// present unless sharding feature is enabled in TestExecutionService.
978	ShardSummaries []*ShardSummary `json:"shardSummaries,omitempty"`
979
980	// ServerResponse contains the HTTP response code and headers from the
981	// server.
982	googleapi.ServerResponse `json:"-"`
983
984	// ForceSendFields is a list of field names (e.g. "CompletionTime") to
985	// unconditionally include in API requests. By default, fields with
986	// empty or default values are omitted from API requests. However, any
987	// non-pointer, non-interface field appearing in ForceSendFields will be
988	// sent to the server regardless of whether the field is empty or not.
989	// This may be used to include empty fields in Patch requests.
990	ForceSendFields []string `json:"-"`
991
992	// NullFields is a list of field names (e.g. "CompletionTime") to
993	// include in API requests with the JSON null value. By default, fields
994	// with empty values are omitted from API requests. However, any field
995	// with an empty value appearing in NullFields will be sent to the
996	// server as null. It is an error if a field in this list has a
997	// non-empty value. This may be used to include null fields in Patch
998	// requests.
999	NullFields []string `json:"-"`
1000}
1001
1002func (s *Environment) MarshalJSON() ([]byte, error) {
1003	type NoMethod Environment
1004	raw := NoMethod(*s)
1005	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1006}
1007
1008type EnvironmentDimensionValueEntry struct {
1009	Key string `json:"key,omitempty"`
1010
1011	Value string `json:"value,omitempty"`
1012
1013	// ForceSendFields is a list of field names (e.g. "Key") to
1014	// unconditionally include in API requests. By default, fields with
1015	// empty or default values are omitted from API requests. However, any
1016	// non-pointer, non-interface field appearing in ForceSendFields will be
1017	// sent to the server regardless of whether the field is empty or not.
1018	// This may be used to include empty fields in Patch requests.
1019	ForceSendFields []string `json:"-"`
1020
1021	// NullFields is a list of field names (e.g. "Key") to include in API
1022	// requests with the JSON null value. By default, fields with empty
1023	// values are omitted from API requests. However, any field with an
1024	// empty value appearing in NullFields will be sent to the server as
1025	// null. It is an error if a field in this list has a non-empty value.
1026	// This may be used to include null fields in Patch requests.
1027	NullFields []string `json:"-"`
1028}
1029
1030func (s *EnvironmentDimensionValueEntry) MarshalJSON() ([]byte, error) {
1031	type NoMethod EnvironmentDimensionValueEntry
1032	raw := NoMethod(*s)
1033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1034}
1035
1036// Execution: An Execution represents a collection of Steps. For
1037// instance, it could represent: - a mobile test executed across a range
1038// of device configurations - a jenkins job with a build step followed
1039// by a test step The maximum size of an execution message is 1 MiB. An
1040// Execution can be updated until its state is set to COMPLETE at which
1041// point it becomes immutable.
1042type Execution struct {
1043	// CompletionTime: The time when the Execution status transitioned to
1044	// COMPLETE. This value will be set automatically when state transitions
1045	// to COMPLETE. - In response: set if the execution state is COMPLETE. -
1046	// In create/update request: never set
1047	CompletionTime *Timestamp `json:"completionTime,omitempty"`
1048
1049	// CreationTime: The time when the Execution was created. This value
1050	// will be set automatically when CreateExecution is called. - In
1051	// response: always set - In create/update request: never set
1052	CreationTime *Timestamp `json:"creationTime,omitempty"`
1053
1054	// DimensionDefinitions: The dimensions along which different steps in
1055	// this execution may vary. This must remain fixed over the life of the
1056	// execution. Returns INVALID_ARGUMENT if this field is set in an update
1057	// request. Returns INVALID_ARGUMENT if the same name occurs in more
1058	// than one dimension_definition. Returns INVALID_ARGUMENT if the size
1059	// of the list is over 100. - In response: present if set by create - In
1060	// create request: optional - In update request: never set
1061	DimensionDefinitions []*MatrixDimensionDefinition `json:"dimensionDefinitions,omitempty"`
1062
1063	// ExecutionId: A unique identifier within a History for this Execution.
1064	// Returns INVALID_ARGUMENT if this field is set or overwritten by the
1065	// caller. - In response always set - In create/update request: never
1066	// set
1067	ExecutionId string `json:"executionId,omitempty"`
1068
1069	// Outcome: Classify the result, for example into SUCCESS or FAILURE -
1070	// In response: present if set by create/update request - In
1071	// create/update request: optional
1072	Outcome *Outcome `json:"outcome,omitempty"`
1073
1074	// Specification: Lightweight information about execution request. - In
1075	// response: present if set by create - In create: optional - In update:
1076	// optional
1077	Specification *Specification `json:"specification,omitempty"`
1078
1079	// State: The initial state is IN_PROGRESS. The only legal state
1080	// transitions is from IN_PROGRESS to COMPLETE. A PRECONDITION_FAILED
1081	// will be returned if an invalid transition is requested. The state can
1082	// only be set to COMPLETE once. A FAILED_PRECONDITION will be returned
1083	// if the state is set to COMPLETE multiple times. If the state is set
1084	// to COMPLETE, all the in-progress steps within the execution will be
1085	// set as COMPLETE. If the outcome of the step is not set, the outcome
1086	// will be set to INCONCLUSIVE. - In response always set - In
1087	// create/update request: optional
1088	//
1089	// Possible values:
1090	//   "unknownState" - Should never be in this state. Exists for proto
1091	// deserialization backward compatibility.
1092	//   "pending" - The Execution/Step is created, ready to run, but not
1093	// running yet. If an Execution/Step is created without initial state,
1094	// it is assumed that the Execution/Step is in PENDING state.
1095	//   "inProgress" - The Execution/Step is in progress.
1096	//   "complete" - The finalized, immutable state. Steps/Executions in
1097	// this state cannot be modified.
1098	State string `json:"state,omitempty"`
1099
1100	// TestExecutionMatrixId: TestExecution Matrix ID that the
1101	// TestExecutionService uses. - In response: present if set by create -
1102	// In create: optional - In update: never set
1103	TestExecutionMatrixId string `json:"testExecutionMatrixId,omitempty"`
1104
1105	// ServerResponse contains the HTTP response code and headers from the
1106	// server.
1107	googleapi.ServerResponse `json:"-"`
1108
1109	// ForceSendFields is a list of field names (e.g. "CompletionTime") to
1110	// unconditionally include in API requests. By default, fields with
1111	// empty or default values are omitted from API requests. However, any
1112	// non-pointer, non-interface field appearing in ForceSendFields will be
1113	// sent to the server regardless of whether the field is empty or not.
1114	// This may be used to include empty fields in Patch requests.
1115	ForceSendFields []string `json:"-"`
1116
1117	// NullFields is a list of field names (e.g. "CompletionTime") to
1118	// include in API requests with the JSON null value. By default, fields
1119	// with empty values are omitted from API requests. However, any field
1120	// with an empty value appearing in NullFields will be sent to the
1121	// server as null. It is an error if a field in this list has a
1122	// non-empty value. This may be used to include null fields in Patch
1123	// requests.
1124	NullFields []string `json:"-"`
1125}
1126
1127func (s *Execution) MarshalJSON() ([]byte, error) {
1128	type NoMethod Execution
1129	raw := NoMethod(*s)
1130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1131}
1132
1133// FailedToInstall: Failed to install the APK.
1134type FailedToInstall struct {
1135}
1136
1137// FailureDetail: Details for an outcome with a FAILURE outcome summary.
1138type FailureDetail struct {
1139	// Crashed: If the failure was severe because the system (app) under
1140	// test crashed.
1141	Crashed bool `json:"crashed,omitempty"`
1142
1143	// DeviceOutOfMemory: If the device ran out of memory during a test,
1144	// causing the test to crash.
1145	DeviceOutOfMemory bool `json:"deviceOutOfMemory,omitempty"`
1146
1147	// FailedRoboscript: If the Roboscript failed to complete successfully,
1148	// e.g., because a Roboscript action or assertion failed or a Roboscript
1149	// action could not be matched during the entire crawl.
1150	FailedRoboscript bool `json:"failedRoboscript,omitempty"`
1151
1152	// NotInstalled: If an app is not installed and thus no test can be run
1153	// with the app. This might be caused by trying to run a test on an
1154	// unsupported platform.
1155	NotInstalled bool `json:"notInstalled,omitempty"`
1156
1157	// OtherNativeCrash: If a native process (including any other than the
1158	// app) crashed.
1159	OtherNativeCrash bool `json:"otherNativeCrash,omitempty"`
1160
1161	// TimedOut: If the test overran some time limit, and that is why it
1162	// failed.
1163	TimedOut bool `json:"timedOut,omitempty"`
1164
1165	// UnableToCrawl: If the robo was unable to crawl the app; perhaps
1166	// because the app did not start.
1167	UnableToCrawl bool `json:"unableToCrawl,omitempty"`
1168
1169	// ForceSendFields is a list of field names (e.g. "Crashed") to
1170	// unconditionally include in API requests. By default, fields with
1171	// empty or default values are omitted from API requests. However, any
1172	// non-pointer, non-interface field appearing in ForceSendFields will be
1173	// sent to the server regardless of whether the field is empty or not.
1174	// This may be used to include empty fields in Patch requests.
1175	ForceSendFields []string `json:"-"`
1176
1177	// NullFields is a list of field names (e.g. "Crashed") to include in
1178	// API requests with the JSON null value. By default, fields with empty
1179	// values are omitted from API requests. However, any field with an
1180	// empty value appearing in NullFields will be sent to the server as
1181	// null. It is an error if a field in this list has a non-empty value.
1182	// This may be used to include null fields in Patch requests.
1183	NullFields []string `json:"-"`
1184}
1185
1186func (s *FailureDetail) MarshalJSON() ([]byte, error) {
1187	type NoMethod FailureDetail
1188	raw := NoMethod(*s)
1189	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1190}
1191
1192// FatalException: Additional details for a fatal exception.
1193type FatalException struct {
1194	// StackTrace: The stack trace of the fatal exception. Optional.
1195	StackTrace *StackTrace `json:"stackTrace,omitempty"`
1196
1197	// ForceSendFields is a list of field names (e.g. "StackTrace") to
1198	// unconditionally include in API requests. By default, fields with
1199	// empty or default values are omitted from API requests. However, any
1200	// non-pointer, non-interface field appearing in ForceSendFields will be
1201	// sent to the server regardless of whether the field is empty or not.
1202	// This may be used to include empty fields in Patch requests.
1203	ForceSendFields []string `json:"-"`
1204
1205	// NullFields is a list of field names (e.g. "StackTrace") to include in
1206	// API requests with the JSON null value. By default, fields with empty
1207	// values are omitted from API requests. However, any field with an
1208	// empty value appearing in NullFields will be sent to the server as
1209	// null. It is an error if a field in this list has a non-empty value.
1210	// This may be used to include null fields in Patch requests.
1211	NullFields []string `json:"-"`
1212}
1213
1214func (s *FatalException) MarshalJSON() ([]byte, error) {
1215	type NoMethod FatalException
1216	raw := NoMethod(*s)
1217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1218}
1219
1220// FileReference: A reference to a file.
1221type FileReference struct {
1222	// FileUri: The URI of a file stored in Google Cloud Storage. For
1223	// example: http://storage.googleapis.com/mybucket/path/to/test.xml or
1224	// in gsutil format: gs://mybucket/path/to/test.xml with
1225	// version-specific info,
1226	// gs://mybucket/path/to/test.xml#1360383693690000 An INVALID_ARGUMENT
1227	// error will be returned if the URI format is not supported. - In
1228	// response: always set - In create/update request: always set
1229	FileUri string `json:"fileUri,omitempty"`
1230
1231	// ForceSendFields is a list of field names (e.g. "FileUri") to
1232	// unconditionally include in API requests. By default, fields with
1233	// empty or default values are omitted from API requests. However, any
1234	// non-pointer, non-interface field appearing in ForceSendFields will be
1235	// sent to the server regardless of whether the field is empty or not.
1236	// This may be used to include empty fields in Patch requests.
1237	ForceSendFields []string `json:"-"`
1238
1239	// NullFields is a list of field names (e.g. "FileUri") to include in
1240	// API requests with the JSON null value. By default, fields with empty
1241	// values are omitted from API requests. However, any field with an
1242	// empty value appearing in NullFields will be sent to the server as
1243	// null. It is an error if a field in this list has a non-empty value.
1244	// This may be used to include null fields in Patch requests.
1245	NullFields []string `json:"-"`
1246}
1247
1248func (s *FileReference) MarshalJSON() ([]byte, error) {
1249	type NoMethod FileReference
1250	raw := NoMethod(*s)
1251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1252}
1253
1254// GraphicsStats: Graphics statistics for the App. The information is
1255// collected from 'adb shell dumpsys graphicsstats'. For more info see:
1256// https://developer.android.com/training/testing/performance.html
1257// Statistics will only be present for API 23+.
1258type GraphicsStats struct {
1259	// Buckets: Histogram of frame render times. There should be 154 buckets
1260	// ranging from [5ms, 6ms) to [4950ms, infinity)
1261	Buckets []*GraphicsStatsBucket `json:"buckets,omitempty"`
1262
1263	// HighInputLatencyCount: Total "high input latency" events.
1264	HighInputLatencyCount int64 `json:"highInputLatencyCount,omitempty,string"`
1265
1266	// JankyFrames: Total frames with slow render time. Should be <=
1267	// total_frames.
1268	JankyFrames int64 `json:"jankyFrames,omitempty,string"`
1269
1270	// MissedVsyncCount: Total "missed vsync" events.
1271	MissedVsyncCount int64 `json:"missedVsyncCount,omitempty,string"`
1272
1273	// P50Millis: 50th percentile frame render time in milliseconds.
1274	P50Millis int64 `json:"p50Millis,omitempty,string"`
1275
1276	// P90Millis: 90th percentile frame render time in milliseconds.
1277	P90Millis int64 `json:"p90Millis,omitempty,string"`
1278
1279	// P95Millis: 95th percentile frame render time in milliseconds.
1280	P95Millis int64 `json:"p95Millis,omitempty,string"`
1281
1282	// P99Millis: 99th percentile frame render time in milliseconds.
1283	P99Millis int64 `json:"p99Millis,omitempty,string"`
1284
1285	// SlowBitmapUploadCount: Total "slow bitmap upload" events.
1286	SlowBitmapUploadCount int64 `json:"slowBitmapUploadCount,omitempty,string"`
1287
1288	// SlowDrawCount: Total "slow draw" events.
1289	SlowDrawCount int64 `json:"slowDrawCount,omitempty,string"`
1290
1291	// SlowUiThreadCount: Total "slow UI thread" events.
1292	SlowUiThreadCount int64 `json:"slowUiThreadCount,omitempty,string"`
1293
1294	// TotalFrames: Total frames rendered by package.
1295	TotalFrames int64 `json:"totalFrames,omitempty,string"`
1296
1297	// ForceSendFields is a list of field names (e.g. "Buckets") to
1298	// unconditionally include in API requests. By default, fields with
1299	// empty or default values are omitted from API requests. However, any
1300	// non-pointer, non-interface field appearing in ForceSendFields will be
1301	// sent to the server regardless of whether the field is empty or not.
1302	// This may be used to include empty fields in Patch requests.
1303	ForceSendFields []string `json:"-"`
1304
1305	// NullFields is a list of field names (e.g. "Buckets") to include in
1306	// API requests with the JSON null value. By default, fields with empty
1307	// values are omitted from API requests. However, any field with an
1308	// empty value appearing in NullFields will be sent to the server as
1309	// null. It is an error if a field in this list has a non-empty value.
1310	// This may be used to include null fields in Patch requests.
1311	NullFields []string `json:"-"`
1312}
1313
1314func (s *GraphicsStats) MarshalJSON() ([]byte, error) {
1315	type NoMethod GraphicsStats
1316	raw := NoMethod(*s)
1317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1318}
1319
1320type GraphicsStatsBucket struct {
1321	// FrameCount: Number of frames in the bucket.
1322	FrameCount int64 `json:"frameCount,omitempty,string"`
1323
1324	// RenderMillis: Lower bound of render time in milliseconds.
1325	RenderMillis int64 `json:"renderMillis,omitempty,string"`
1326
1327	// ForceSendFields is a list of field names (e.g. "FrameCount") to
1328	// unconditionally include in API requests. By default, fields with
1329	// empty or default values are omitted from API requests. However, any
1330	// non-pointer, non-interface field appearing in ForceSendFields will be
1331	// sent to the server regardless of whether the field is empty or not.
1332	// This may be used to include empty fields in Patch requests.
1333	ForceSendFields []string `json:"-"`
1334
1335	// NullFields is a list of field names (e.g. "FrameCount") to include in
1336	// API requests with the JSON null value. By default, fields with empty
1337	// values are omitted from API requests. However, any field with an
1338	// empty value appearing in NullFields will be sent to the server as
1339	// null. It is an error if a field in this list has a non-empty value.
1340	// This may be used to include null fields in Patch requests.
1341	NullFields []string `json:"-"`
1342}
1343
1344func (s *GraphicsStatsBucket) MarshalJSON() ([]byte, error) {
1345	type NoMethod GraphicsStatsBucket
1346	raw := NoMethod(*s)
1347	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1348}
1349
1350// History: A History represents a sorted list of Executions ordered by
1351// the start_timestamp_millis field (descending). It can be used to
1352// group all the Executions of a continuous build. Note that the
1353// ordering only operates on one-dimension. If a repository has multiple
1354// branches, it means that multiple histories will need to be used in
1355// order to order Executions per branch.
1356type History struct {
1357	// DisplayName: A short human-readable (plain text) name to display in
1358	// the UI. Maximum of 100 characters. - In response: present if set
1359	// during create. - In create request: optional
1360	DisplayName string `json:"displayName,omitempty"`
1361
1362	// HistoryId: A unique identifier within a project for this History.
1363	// Returns INVALID_ARGUMENT if this field is set or overwritten by the
1364	// caller. - In response always set - In create request: never set
1365	HistoryId string `json:"historyId,omitempty"`
1366
1367	// Name: A name to uniquely identify a history within a project. Maximum
1368	// of 200 characters. - In response always set - In create request:
1369	// always set
1370	Name string `json:"name,omitempty"`
1371
1372	// TestPlatform: The platform of the test history. - In response: always
1373	// set. Returns the platform of the last execution if unknown.
1374	//
1375	// Possible values:
1376	//   "unknownPlatform"
1377	//   "android"
1378	//   "ios"
1379	TestPlatform string `json:"testPlatform,omitempty"`
1380
1381	// ServerResponse contains the HTTP response code and headers from the
1382	// server.
1383	googleapi.ServerResponse `json:"-"`
1384
1385	// ForceSendFields is a list of field names (e.g. "DisplayName") to
1386	// unconditionally include in API requests. By default, fields with
1387	// empty or default values are omitted from API requests. However, any
1388	// non-pointer, non-interface field appearing in ForceSendFields will be
1389	// sent to the server regardless of whether the field is empty or not.
1390	// This may be used to include empty fields in Patch requests.
1391	ForceSendFields []string `json:"-"`
1392
1393	// NullFields is a list of field names (e.g. "DisplayName") to include
1394	// in API requests with the JSON null value. By default, fields with
1395	// empty values are omitted from API requests. However, any field with
1396	// an empty value appearing in NullFields will be sent to the server as
1397	// null. It is an error if a field in this list has a non-empty value.
1398	// This may be used to include null fields in Patch requests.
1399	NullFields []string `json:"-"`
1400}
1401
1402func (s *History) MarshalJSON() ([]byte, error) {
1403	type NoMethod History
1404	raw := NoMethod(*s)
1405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1406}
1407
1408// Image: An image, with a link to the main image and a thumbnail.
1409type Image struct {
1410	// Error: An error explaining why the thumbnail could not be rendered.
1411	Error *Status `json:"error,omitempty"`
1412
1413	// SourceImage: A reference to the full-size, original image. This is
1414	// the same as the tool_outputs entry for the image under its Step.
1415	// Always set.
1416	SourceImage *ToolOutputReference `json:"sourceImage,omitempty"`
1417
1418	// StepId: The step to which the image is attached. Always set.
1419	StepId string `json:"stepId,omitempty"`
1420
1421	// Thumbnail: The thumbnail.
1422	Thumbnail *Thumbnail `json:"thumbnail,omitempty"`
1423
1424	// ForceSendFields is a list of field names (e.g. "Error") to
1425	// unconditionally include in API requests. By default, fields with
1426	// empty or default values are omitted from API requests. However, any
1427	// non-pointer, non-interface field appearing in ForceSendFields will be
1428	// sent to the server regardless of whether the field is empty or not.
1429	// This may be used to include empty fields in Patch requests.
1430	ForceSendFields []string `json:"-"`
1431
1432	// NullFields is a list of field names (e.g. "Error") to include in API
1433	// requests with the JSON null value. By default, fields with empty
1434	// values are omitted from API requests. However, any field with an
1435	// empty value appearing in NullFields will be sent to the server as
1436	// null. It is an error if a field in this list has a non-empty value.
1437	// This may be used to include null fields in Patch requests.
1438	NullFields []string `json:"-"`
1439}
1440
1441func (s *Image) MarshalJSON() ([]byte, error) {
1442	type NoMethod Image
1443	raw := NoMethod(*s)
1444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1445}
1446
1447// InAppPurchasesFound: Additional details of in-app purchases
1448// encountered during the crawl.
1449type InAppPurchasesFound struct {
1450	// InAppPurchasesFlowsExplored: The total number of in-app purchases
1451	// flows explored: how many times the robo tries to buy a SKU.
1452	InAppPurchasesFlowsExplored int64 `json:"inAppPurchasesFlowsExplored,omitempty"`
1453
1454	// InAppPurchasesFlowsStarted: The total number of in-app purchases
1455	// flows started.
1456	InAppPurchasesFlowsStarted int64 `json:"inAppPurchasesFlowsStarted,omitempty"`
1457
1458	// ForceSendFields is a list of field names (e.g.
1459	// "InAppPurchasesFlowsExplored") to unconditionally include in API
1460	// requests. By default, fields with empty or default values are omitted
1461	// from API requests. However, any non-pointer, non-interface field
1462	// appearing in ForceSendFields will be sent to the server regardless of
1463	// whether the field is empty or not. This may be used to include empty
1464	// fields in Patch requests.
1465	ForceSendFields []string `json:"-"`
1466
1467	// NullFields is a list of field names (e.g.
1468	// "InAppPurchasesFlowsExplored") to include in API requests with the
1469	// JSON null value. By default, fields with empty values are omitted
1470	// from API requests. However, any field with an empty value appearing
1471	// in NullFields will be sent to the server as null. It is an error if a
1472	// field in this list has a non-empty value. This may be used to include
1473	// null fields in Patch requests.
1474	NullFields []string `json:"-"`
1475}
1476
1477func (s *InAppPurchasesFound) MarshalJSON() ([]byte, error) {
1478	type NoMethod InAppPurchasesFound
1479	raw := NoMethod(*s)
1480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1481}
1482
1483// InconclusiveDetail: Details for an outcome with an INCONCLUSIVE
1484// outcome summary.
1485type InconclusiveDetail struct {
1486	// AbortedByUser: If the end user aborted the test execution before a
1487	// pass or fail could be determined. For example, the user pressed
1488	// ctrl-c which sent a kill signal to the test runner while the test was
1489	// running.
1490	AbortedByUser bool `json:"abortedByUser,omitempty"`
1491
1492	// HasErrorLogs: If results are being provided to the user in certain
1493	// cases of infrastructure failures
1494	HasErrorLogs bool `json:"hasErrorLogs,omitempty"`
1495
1496	// InfrastructureFailure: If the test runner could not determine success
1497	// or failure because the test depends on a component other than the
1498	// system under test which failed. For example, a mobile test requires
1499	// provisioning a device where the test executes, and that provisioning
1500	// can fail.
1501	InfrastructureFailure bool `json:"infrastructureFailure,omitempty"`
1502
1503	// ForceSendFields is a list of field names (e.g. "AbortedByUser") to
1504	// unconditionally include in API requests. By default, fields with
1505	// empty or default values are omitted from API requests. However, any
1506	// non-pointer, non-interface field appearing in ForceSendFields will be
1507	// sent to the server regardless of whether the field is empty or not.
1508	// This may be used to include empty fields in Patch requests.
1509	ForceSendFields []string `json:"-"`
1510
1511	// NullFields is a list of field names (e.g. "AbortedByUser") to include
1512	// in API requests with the JSON null value. By default, fields with
1513	// empty values are omitted from API requests. However, any field with
1514	// an empty value appearing in NullFields will be sent to the server as
1515	// null. It is an error if a field in this list has a non-empty value.
1516	// This may be used to include null fields in Patch requests.
1517	NullFields []string `json:"-"`
1518}
1519
1520func (s *InconclusiveDetail) MarshalJSON() ([]byte, error) {
1521	type NoMethod InconclusiveDetail
1522	raw := NoMethod(*s)
1523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1524}
1525
1526// IndividualOutcome: Step Id and outcome of each individual step that
1527// was run as a group with other steps with the same configuration.
1528type IndividualOutcome struct {
1529	// MultistepNumber: Unique int given to each step. Ranges from
1530	// 0(inclusive) to total number of steps(exclusive). The primary step is
1531	// 0.
1532	MultistepNumber int64 `json:"multistepNumber,omitempty"`
1533
1534	// Possible values:
1535	//   "unset" - Do not use. For proto versioning only.
1536	//   "success" - The test matrix run was successful, for instance: - All
1537	// the test cases passed. - Robo did not detect a crash of the
1538	// application under test.
1539	//   "failure" - A run failed, for instance: - One or more test case
1540	// failed. - A test timed out. - The application under test crashed.
1541	//   "inconclusive" - Something unexpected happened. The run should
1542	// still be considered unsuccessful but this is likely a transient
1543	// problem and re-running the test might be successful.
1544	//   "skipped" - All tests were skipped, for instance: - All device
1545	// configurations were incompatible.
1546	//   "flaky" - A group of steps that were run with the same
1547	// configuration had both failure and success outcomes.
1548	OutcomeSummary string `json:"outcomeSummary,omitempty"`
1549
1550	// RunDuration: How long it took for this step to run.
1551	RunDuration *Duration `json:"runDuration,omitempty"`
1552
1553	StepId string `json:"stepId,omitempty"`
1554
1555	// ForceSendFields is a list of field names (e.g. "MultistepNumber") to
1556	// unconditionally include in API requests. By default, fields with
1557	// empty or default values are omitted from API requests. However, any
1558	// non-pointer, non-interface field appearing in ForceSendFields will be
1559	// sent to the server regardless of whether the field is empty or not.
1560	// This may be used to include empty fields in Patch requests.
1561	ForceSendFields []string `json:"-"`
1562
1563	// NullFields is a list of field names (e.g. "MultistepNumber") to
1564	// include in API requests with the JSON null value. By default, fields
1565	// with empty values are omitted from API requests. However, any field
1566	// with an empty value appearing in NullFields will be sent to the
1567	// server as null. It is an error if a field in this list has a
1568	// non-empty value. This may be used to include null fields in Patch
1569	// requests.
1570	NullFields []string `json:"-"`
1571}
1572
1573func (s *IndividualOutcome) MarshalJSON() ([]byte, error) {
1574	type NoMethod IndividualOutcome
1575	raw := NoMethod(*s)
1576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1577}
1578
1579// InsufficientCoverage: A warning that Robo did not crawl potentially
1580// important parts of the app.
1581type InsufficientCoverage struct {
1582}
1583
1584// IosAppCrashed: Additional details for an iOS app crash.
1585type IosAppCrashed struct {
1586	// StackTrace: The stack trace, if one is available. Optional.
1587	StackTrace *StackTrace `json:"stackTrace,omitempty"`
1588
1589	// ForceSendFields is a list of field names (e.g. "StackTrace") to
1590	// unconditionally include in API requests. By default, fields with
1591	// empty or default values are omitted from API requests. However, any
1592	// non-pointer, non-interface field appearing in ForceSendFields will be
1593	// sent to the server regardless of whether the field is empty or not.
1594	// This may be used to include empty fields in Patch requests.
1595	ForceSendFields []string `json:"-"`
1596
1597	// NullFields is a list of field names (e.g. "StackTrace") to include in
1598	// API requests with the JSON null value. By default, fields with empty
1599	// values are omitted from API requests. However, any field with an
1600	// empty value appearing in NullFields will be sent to the server as
1601	// null. It is an error if a field in this list has a non-empty value.
1602	// This may be used to include null fields in Patch requests.
1603	NullFields []string `json:"-"`
1604}
1605
1606func (s *IosAppCrashed) MarshalJSON() ([]byte, error) {
1607	type NoMethod IosAppCrashed
1608	raw := NoMethod(*s)
1609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1610}
1611
1612// IosAppInfo: iOS app information
1613type IosAppInfo struct {
1614	// Name: The name of the app. Required
1615	Name string `json:"name,omitempty"`
1616
1617	// ForceSendFields is a list of field names (e.g. "Name") to
1618	// unconditionally include in API requests. By default, fields with
1619	// empty or default values are omitted from API requests. However, any
1620	// non-pointer, non-interface field appearing in ForceSendFields will be
1621	// sent to the server regardless of whether the field is empty or not.
1622	// This may be used to include empty fields in Patch requests.
1623	ForceSendFields []string `json:"-"`
1624
1625	// NullFields is a list of field names (e.g. "Name") to include in API
1626	// requests with the JSON null value. By default, fields with empty
1627	// values are omitted from API requests. However, any field with an
1628	// empty value appearing in NullFields will be sent to the server as
1629	// null. It is an error if a field in this list has a non-empty value.
1630	// This may be used to include null fields in Patch requests.
1631	NullFields []string `json:"-"`
1632}
1633
1634func (s *IosAppInfo) MarshalJSON() ([]byte, error) {
1635	type NoMethod IosAppInfo
1636	raw := NoMethod(*s)
1637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1638}
1639
1640// IosRoboTest: A Robo test for an iOS application.
1641type IosRoboTest struct {
1642}
1643
1644// IosTest: A iOS mobile test specification
1645type IosTest struct {
1646	// IosAppInfo: Information about the application under test.
1647	IosAppInfo *IosAppInfo `json:"iosAppInfo,omitempty"`
1648
1649	// IosRoboTest: An iOS Robo test.
1650	IosRoboTest *IosRoboTest `json:"iosRoboTest,omitempty"`
1651
1652	// IosTestLoop: An iOS test loop.
1653	IosTestLoop *IosTestLoop `json:"iosTestLoop,omitempty"`
1654
1655	// IosXcTest: An iOS XCTest.
1656	IosXcTest *IosXcTest `json:"iosXcTest,omitempty"`
1657
1658	// TestTimeout: Max time a test is allowed to run before it is
1659	// automatically cancelled.
1660	TestTimeout *Duration `json:"testTimeout,omitempty"`
1661
1662	// ForceSendFields is a list of field names (e.g. "IosAppInfo") to
1663	// unconditionally include in API requests. By default, fields with
1664	// empty or default values are omitted from API requests. However, any
1665	// non-pointer, non-interface field appearing in ForceSendFields will be
1666	// sent to the server regardless of whether the field is empty or not.
1667	// This may be used to include empty fields in Patch requests.
1668	ForceSendFields []string `json:"-"`
1669
1670	// NullFields is a list of field names (e.g. "IosAppInfo") to include in
1671	// API requests with the JSON null value. By default, fields with empty
1672	// values are omitted from API requests. However, any field with an
1673	// empty value appearing in NullFields will be sent to the server as
1674	// null. It is an error if a field in this list has a non-empty value.
1675	// This may be used to include null fields in Patch requests.
1676	NullFields []string `json:"-"`
1677}
1678
1679func (s *IosTest) MarshalJSON() ([]byte, error) {
1680	type NoMethod IosTest
1681	raw := NoMethod(*s)
1682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1683}
1684
1685// IosTestLoop: A game loop test of an iOS application.
1686type IosTestLoop struct {
1687	// BundleId: Bundle ID of the app.
1688	BundleId string `json:"bundleId,omitempty"`
1689
1690	// ForceSendFields is a list of field names (e.g. "BundleId") to
1691	// unconditionally include in API requests. By default, fields with
1692	// empty or default values are omitted from API requests. However, any
1693	// non-pointer, non-interface field appearing in ForceSendFields will be
1694	// sent to the server regardless of whether the field is empty or not.
1695	// This may be used to include empty fields in Patch requests.
1696	ForceSendFields []string `json:"-"`
1697
1698	// NullFields is a list of field names (e.g. "BundleId") to include in
1699	// API requests with the JSON null value. By default, fields with empty
1700	// values are omitted from API requests. However, any field with an
1701	// empty value appearing in NullFields will be sent to the server as
1702	// null. It is an error if a field in this list has a non-empty value.
1703	// This may be used to include null fields in Patch requests.
1704	NullFields []string `json:"-"`
1705}
1706
1707func (s *IosTestLoop) MarshalJSON() ([]byte, error) {
1708	type NoMethod IosTestLoop
1709	raw := NoMethod(*s)
1710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1711}
1712
1713// IosXcTest: A test of an iOS application that uses the XCTest
1714// framework.
1715type IosXcTest struct {
1716	// BundleId: Bundle ID of the app.
1717	BundleId string `json:"bundleId,omitempty"`
1718
1719	// XcodeVersion: Xcode version that the test was run with.
1720	XcodeVersion string `json:"xcodeVersion,omitempty"`
1721
1722	// ForceSendFields is a list of field names (e.g. "BundleId") to
1723	// unconditionally include in API requests. By default, fields with
1724	// empty or default values are omitted from API requests. However, any
1725	// non-pointer, non-interface field appearing in ForceSendFields will be
1726	// sent to the server regardless of whether the field is empty or not.
1727	// This may be used to include empty fields in Patch requests.
1728	ForceSendFields []string `json:"-"`
1729
1730	// NullFields is a list of field names (e.g. "BundleId") to include in
1731	// API requests with the JSON null value. By default, fields with empty
1732	// values are omitted from API requests. However, any field with an
1733	// empty value appearing in NullFields will be sent to the server as
1734	// null. It is an error if a field in this list has a non-empty value.
1735	// This may be used to include null fields in Patch requests.
1736	NullFields []string `json:"-"`
1737}
1738
1739func (s *IosXcTest) MarshalJSON() ([]byte, error) {
1740	type NoMethod IosXcTest
1741	raw := NoMethod(*s)
1742	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1743}
1744
1745// LauncherActivityNotFound: Failed to find the launcher activity of an
1746// app.
1747type LauncherActivityNotFound struct {
1748}
1749
1750// ListEnvironmentsResponse: Response message for
1751// EnvironmentService.ListEnvironments.
1752type ListEnvironmentsResponse struct {
1753	// Environments: Environments. Always set.
1754	Environments []*Environment `json:"environments,omitempty"`
1755
1756	// ExecutionId: A Execution id Always set.
1757	ExecutionId string `json:"executionId,omitempty"`
1758
1759	// HistoryId: A History id. Always set.
1760	HistoryId string `json:"historyId,omitempty"`
1761
1762	// NextPageToken: A continuation token to resume the query at the next
1763	// item. Will only be set if there are more Environments to fetch.
1764	NextPageToken string `json:"nextPageToken,omitempty"`
1765
1766	// ProjectId: A Project id. Always set.
1767	ProjectId string `json:"projectId,omitempty"`
1768
1769	// ServerResponse contains the HTTP response code and headers from the
1770	// server.
1771	googleapi.ServerResponse `json:"-"`
1772
1773	// ForceSendFields is a list of field names (e.g. "Environments") to
1774	// unconditionally include in API requests. By default, fields with
1775	// empty or default values are omitted from API requests. However, any
1776	// non-pointer, non-interface field appearing in ForceSendFields will be
1777	// sent to the server regardless of whether the field is empty or not.
1778	// This may be used to include empty fields in Patch requests.
1779	ForceSendFields []string `json:"-"`
1780
1781	// NullFields is a list of field names (e.g. "Environments") to include
1782	// in API requests with the JSON null value. By default, fields with
1783	// empty values are omitted from API requests. However, any field with
1784	// an empty value appearing in NullFields will be sent to the server as
1785	// null. It is an error if a field in this list has a non-empty value.
1786	// This may be used to include null fields in Patch requests.
1787	NullFields []string `json:"-"`
1788}
1789
1790func (s *ListEnvironmentsResponse) MarshalJSON() ([]byte, error) {
1791	type NoMethod ListEnvironmentsResponse
1792	raw := NoMethod(*s)
1793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1794}
1795
1796type ListExecutionsResponse struct {
1797	// Executions: Executions. Always set.
1798	Executions []*Execution `json:"executions,omitempty"`
1799
1800	// NextPageToken: A continuation token to resume the query at the next
1801	// item. Will only be set if there are more Executions to fetch.
1802	NextPageToken string `json:"nextPageToken,omitempty"`
1803
1804	// ServerResponse contains the HTTP response code and headers from the
1805	// server.
1806	googleapi.ServerResponse `json:"-"`
1807
1808	// ForceSendFields is a list of field names (e.g. "Executions") to
1809	// unconditionally include in API requests. By default, fields with
1810	// empty or default values are omitted from API requests. However, any
1811	// non-pointer, non-interface field appearing in ForceSendFields will be
1812	// sent to the server regardless of whether the field is empty or not.
1813	// This may be used to include empty fields in Patch requests.
1814	ForceSendFields []string `json:"-"`
1815
1816	// NullFields is a list of field names (e.g. "Executions") to include in
1817	// API requests with the JSON null value. By default, fields with empty
1818	// values are omitted from API requests. However, any field with an
1819	// empty value appearing in NullFields will be sent to the server as
1820	// null. It is an error if a field in this list has a non-empty value.
1821	// This may be used to include null fields in Patch requests.
1822	NullFields []string `json:"-"`
1823}
1824
1825func (s *ListExecutionsResponse) MarshalJSON() ([]byte, error) {
1826	type NoMethod ListExecutionsResponse
1827	raw := NoMethod(*s)
1828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1829}
1830
1831// ListHistoriesResponse: Response message for HistoryService.List
1832type ListHistoriesResponse struct {
1833	// Histories: Histories.
1834	Histories []*History `json:"histories,omitempty"`
1835
1836	// NextPageToken: A continuation token to resume the query at the next
1837	// item. Will only be set if there are more histories to fetch. Tokens
1838	// are valid for up to one hour from the time of the first list request.
1839	// For instance, if you make a list request at 1PM and use the token
1840	// from this first request 10 minutes later, the token from this second
1841	// response will only be valid for 50 minutes.
1842	NextPageToken string `json:"nextPageToken,omitempty"`
1843
1844	// ServerResponse contains the HTTP response code and headers from the
1845	// server.
1846	googleapi.ServerResponse `json:"-"`
1847
1848	// ForceSendFields is a list of field names (e.g. "Histories") to
1849	// unconditionally include in API requests. By default, fields with
1850	// empty or default values are omitted from API requests. However, any
1851	// non-pointer, non-interface field appearing in ForceSendFields will be
1852	// sent to the server regardless of whether the field is empty or not.
1853	// This may be used to include empty fields in Patch requests.
1854	ForceSendFields []string `json:"-"`
1855
1856	// NullFields is a list of field names (e.g. "Histories") to include in
1857	// API requests with the JSON null value. By default, fields with empty
1858	// values are omitted from API requests. However, any field with an
1859	// empty value appearing in NullFields will be sent to the server as
1860	// null. It is an error if a field in this list has a non-empty value.
1861	// This may be used to include null fields in Patch requests.
1862	NullFields []string `json:"-"`
1863}
1864
1865func (s *ListHistoriesResponse) MarshalJSON() ([]byte, error) {
1866	type NoMethod ListHistoriesResponse
1867	raw := NoMethod(*s)
1868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1869}
1870
1871type ListPerfSampleSeriesResponse struct {
1872	// PerfSampleSeries: The resulting PerfSampleSeries sorted by id
1873	PerfSampleSeries []*PerfSampleSeries `json:"perfSampleSeries,omitempty"`
1874
1875	// ServerResponse contains the HTTP response code and headers from the
1876	// server.
1877	googleapi.ServerResponse `json:"-"`
1878
1879	// ForceSendFields is a list of field names (e.g. "PerfSampleSeries") to
1880	// unconditionally include in API requests. By default, fields with
1881	// empty or default values are omitted from API requests. However, any
1882	// non-pointer, non-interface field appearing in ForceSendFields will be
1883	// sent to the server regardless of whether the field is empty or not.
1884	// This may be used to include empty fields in Patch requests.
1885	ForceSendFields []string `json:"-"`
1886
1887	// NullFields is a list of field names (e.g. "PerfSampleSeries") to
1888	// include in API requests with the JSON null value. By default, fields
1889	// with empty values are omitted from API requests. However, any field
1890	// with an empty value appearing in NullFields will be sent to the
1891	// server as null. It is an error if a field in this list has a
1892	// non-empty value. This may be used to include null fields in Patch
1893	// requests.
1894	NullFields []string `json:"-"`
1895}
1896
1897func (s *ListPerfSampleSeriesResponse) MarshalJSON() ([]byte, error) {
1898	type NoMethod ListPerfSampleSeriesResponse
1899	raw := NoMethod(*s)
1900	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1901}
1902
1903type ListPerfSamplesResponse struct {
1904	// NextPageToken: Optional, returned if result size exceeds the page
1905	// size specified in the request (or the default page size, 500, if
1906	// unspecified). It indicates the last sample timestamp to be used as
1907	// page_token in subsequent request
1908	NextPageToken string `json:"nextPageToken,omitempty"`
1909
1910	PerfSamples []*PerfSample `json:"perfSamples,omitempty"`
1911
1912	// ServerResponse contains the HTTP response code and headers from the
1913	// server.
1914	googleapi.ServerResponse `json:"-"`
1915
1916	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1917	// unconditionally include in API requests. By default, fields with
1918	// empty or default values are omitted from API requests. However, any
1919	// non-pointer, non-interface field appearing in ForceSendFields will be
1920	// sent to the server regardless of whether the field is empty or not.
1921	// This may be used to include empty fields in Patch requests.
1922	ForceSendFields []string `json:"-"`
1923
1924	// NullFields is a list of field names (e.g. "NextPageToken") to include
1925	// in API requests with the JSON null value. By default, fields with
1926	// empty values are omitted from API requests. However, any field with
1927	// an empty value appearing in NullFields will be sent to the server as
1928	// null. It is an error if a field in this list has a non-empty value.
1929	// This may be used to include null fields in Patch requests.
1930	NullFields []string `json:"-"`
1931}
1932
1933func (s *ListPerfSamplesResponse) MarshalJSON() ([]byte, error) {
1934	type NoMethod ListPerfSamplesResponse
1935	raw := NoMethod(*s)
1936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1937}
1938
1939type ListScreenshotClustersResponse struct {
1940	// Clusters: The set of clusters associated with an execution Always set
1941	Clusters []*ScreenshotCluster `json:"clusters,omitempty"`
1942
1943	// ServerResponse contains the HTTP response code and headers from the
1944	// server.
1945	googleapi.ServerResponse `json:"-"`
1946
1947	// ForceSendFields is a list of field names (e.g. "Clusters") to
1948	// unconditionally include in API requests. By default, fields with
1949	// empty or default values are omitted from API requests. However, any
1950	// non-pointer, non-interface field appearing in ForceSendFields will be
1951	// sent to the server regardless of whether the field is empty or not.
1952	// This may be used to include empty fields in Patch requests.
1953	ForceSendFields []string `json:"-"`
1954
1955	// NullFields is a list of field names (e.g. "Clusters") to include in
1956	// API requests with the JSON null value. By default, fields with empty
1957	// values are omitted from API requests. However, any field with an
1958	// empty value appearing in NullFields will be sent to the server as
1959	// null. It is an error if a field in this list has a non-empty value.
1960	// This may be used to include null fields in Patch requests.
1961	NullFields []string `json:"-"`
1962}
1963
1964func (s *ListScreenshotClustersResponse) MarshalJSON() ([]byte, error) {
1965	type NoMethod ListScreenshotClustersResponse
1966	raw := NoMethod(*s)
1967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1968}
1969
1970// ListStepAccessibilityClustersResponse: Response message for
1971// AccessibilityService.ListStepAccessibilityClusters.
1972type ListStepAccessibilityClustersResponse struct {
1973	// Clusters: A sequence of accessibility suggestions, grouped into
1974	// clusters. Within the sequence, clusters that belong to the same
1975	// SuggestionCategory should be adjacent. Within each category, clusters
1976	// should be ordered by their SuggestionPriority (ERRORs first). The
1977	// categories should be ordered by their highest priority cluster.
1978	Clusters []*SuggestionClusterProto `json:"clusters,omitempty"`
1979
1980	// Name: A full resource name of the step. For example,
1981	// projects/my-project/histories/bh.1234567890abcdef/executions/
1982	// 1234567890123456789/steps/bs.1234567890abcdef Always presents.
1983	Name string `json:"name,omitempty"`
1984
1985	// ServerResponse contains the HTTP response code and headers from the
1986	// server.
1987	googleapi.ServerResponse `json:"-"`
1988
1989	// ForceSendFields is a list of field names (e.g. "Clusters") to
1990	// unconditionally include in API requests. By default, fields with
1991	// empty or default values are omitted from API requests. However, any
1992	// non-pointer, non-interface field appearing in ForceSendFields will be
1993	// sent to the server regardless of whether the field is empty or not.
1994	// This may be used to include empty fields in Patch requests.
1995	ForceSendFields []string `json:"-"`
1996
1997	// NullFields is a list of field names (e.g. "Clusters") to include in
1998	// API requests with the JSON null value. By default, fields with empty
1999	// values are omitted from API requests. However, any field with an
2000	// empty value appearing in NullFields will be sent to the server as
2001	// null. It is an error if a field in this list has a non-empty value.
2002	// This may be used to include null fields in Patch requests.
2003	NullFields []string `json:"-"`
2004}
2005
2006func (s *ListStepAccessibilityClustersResponse) MarshalJSON() ([]byte, error) {
2007	type NoMethod ListStepAccessibilityClustersResponse
2008	raw := NoMethod(*s)
2009	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2010}
2011
2012// ListStepThumbnailsResponse: A response containing the thumbnails in a
2013// step.
2014type ListStepThumbnailsResponse struct {
2015	// NextPageToken: A continuation token to resume the query at the next
2016	// item. If set, indicates that there are more thumbnails to read, by
2017	// calling list again with this value in the page_token field.
2018	NextPageToken string `json:"nextPageToken,omitempty"`
2019
2020	// Thumbnails: A list of image data. Images are returned in a
2021	// deterministic order; they are ordered by these factors, in order of
2022	// importance: * First, by their associated test case. Images without a
2023	// test case are considered greater than images with one. * Second, by
2024	// their creation time. Images without a creation time are greater than
2025	// images with one. * Third, by the order in which they were added to
2026	// the step (by calls to CreateStep or UpdateStep).
2027	Thumbnails []*Image `json:"thumbnails,omitempty"`
2028
2029	// ServerResponse contains the HTTP response code and headers from the
2030	// server.
2031	googleapi.ServerResponse `json:"-"`
2032
2033	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2034	// unconditionally include in API requests. By default, fields with
2035	// empty or default values are omitted from API requests. However, any
2036	// non-pointer, non-interface field appearing in ForceSendFields will be
2037	// sent to the server regardless of whether the field is empty or not.
2038	// This may be used to include empty fields in Patch requests.
2039	ForceSendFields []string `json:"-"`
2040
2041	// NullFields is a list of field names (e.g. "NextPageToken") to include
2042	// in API requests with the JSON null value. By default, fields with
2043	// empty values are omitted from API requests. However, any field with
2044	// an empty value appearing in NullFields will be sent to the server as
2045	// null. It is an error if a field in this list has a non-empty value.
2046	// This may be used to include null fields in Patch requests.
2047	NullFields []string `json:"-"`
2048}
2049
2050func (s *ListStepThumbnailsResponse) MarshalJSON() ([]byte, error) {
2051	type NoMethod ListStepThumbnailsResponse
2052	raw := NoMethod(*s)
2053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2054}
2055
2056// ListStepsResponse: Response message for StepService.List.
2057type ListStepsResponse struct {
2058	// NextPageToken: A continuation token to resume the query at the next
2059	// item. If set, indicates that there are more steps to read, by calling
2060	// list again with this value in the page_token field.
2061	NextPageToken string `json:"nextPageToken,omitempty"`
2062
2063	// Steps: Steps.
2064	Steps []*Step `json:"steps,omitempty"`
2065
2066	// ServerResponse contains the HTTP response code and headers from the
2067	// server.
2068	googleapi.ServerResponse `json:"-"`
2069
2070	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2071	// unconditionally include in API requests. By default, fields with
2072	// empty or default values are omitted from API requests. However, any
2073	// non-pointer, non-interface field appearing in ForceSendFields will be
2074	// sent to the server regardless of whether the field is empty or not.
2075	// This may be used to include empty fields in Patch requests.
2076	ForceSendFields []string `json:"-"`
2077
2078	// NullFields is a list of field names (e.g. "NextPageToken") to include
2079	// in API requests with the JSON null value. By default, fields with
2080	// empty values are omitted from API requests. However, any field with
2081	// an empty value appearing in NullFields will be sent to the server as
2082	// null. It is an error if a field in this list has a non-empty value.
2083	// This may be used to include null fields in Patch requests.
2084	NullFields []string `json:"-"`
2085}
2086
2087func (s *ListStepsResponse) MarshalJSON() ([]byte, error) {
2088	type NoMethod ListStepsResponse
2089	raw := NoMethod(*s)
2090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2091}
2092
2093// ListTestCasesResponse: Response message for
2094// StepService.ListTestCases.
2095type ListTestCasesResponse struct {
2096	NextPageToken string `json:"nextPageToken,omitempty"`
2097
2098	// TestCases: List of test cases.
2099	TestCases []*TestCase `json:"testCases,omitempty"`
2100
2101	// ServerResponse contains the HTTP response code and headers from the
2102	// server.
2103	googleapi.ServerResponse `json:"-"`
2104
2105	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2106	// unconditionally include in API requests. By default, fields with
2107	// empty or default values are omitted from API requests. However, any
2108	// non-pointer, non-interface field appearing in ForceSendFields will be
2109	// sent to the server regardless of whether the field is empty or not.
2110	// This may be used to include empty fields in Patch requests.
2111	ForceSendFields []string `json:"-"`
2112
2113	// NullFields is a list of field names (e.g. "NextPageToken") to include
2114	// in API requests with the JSON null value. By default, fields with
2115	// empty values are omitted from API requests. However, any field with
2116	// an empty value appearing in NullFields will be sent to the server as
2117	// null. It is an error if a field in this list has a non-empty value.
2118	// This may be used to include null fields in Patch requests.
2119	NullFields []string `json:"-"`
2120}
2121
2122func (s *ListTestCasesResponse) MarshalJSON() ([]byte, error) {
2123	type NoMethod ListTestCasesResponse
2124	raw := NoMethod(*s)
2125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2126}
2127
2128// LogcatCollectionError: A warning that there were issues in logcat
2129// collection.
2130type LogcatCollectionError struct {
2131}
2132
2133// MatrixDimensionDefinition: One dimension of the matrix of different
2134// runs of a step.
2135type MatrixDimensionDefinition struct {
2136}
2137
2138type MemoryInfo struct {
2139	// MemoryCapInKibibyte: Maximum memory that can be allocated to the
2140	// process in KiB
2141	MemoryCapInKibibyte int64 `json:"memoryCapInKibibyte,omitempty,string"`
2142
2143	// MemoryTotalInKibibyte: Total memory available on the device in KiB
2144	MemoryTotalInKibibyte int64 `json:"memoryTotalInKibibyte,omitempty,string"`
2145
2146	// ForceSendFields is a list of field names (e.g. "MemoryCapInKibibyte")
2147	// to unconditionally include in API requests. By default, fields with
2148	// empty or default values are omitted from API requests. However, any
2149	// non-pointer, non-interface field appearing in ForceSendFields will be
2150	// sent to the server regardless of whether the field is empty or not.
2151	// This may be used to include empty fields in Patch requests.
2152	ForceSendFields []string `json:"-"`
2153
2154	// NullFields is a list of field names (e.g. "MemoryCapInKibibyte") to
2155	// include in API requests with the JSON null value. By default, fields
2156	// with empty values are omitted from API requests. However, any field
2157	// with an empty value appearing in NullFields will be sent to the
2158	// server as null. It is an error if a field in this list has a
2159	// non-empty value. This may be used to include null fields in Patch
2160	// requests.
2161	NullFields []string `json:"-"`
2162}
2163
2164func (s *MemoryInfo) MarshalJSON() ([]byte, error) {
2165	type NoMethod MemoryInfo
2166	raw := NoMethod(*s)
2167	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2168}
2169
2170// MergedResult: Merged test result for environment. If the environment
2171// has only one step (no reruns or shards), then the merged result is
2172// the same as the step result. If the environment has multiple shards
2173// and/or reruns, then the results of shards and reruns that belong to
2174// the same environment are merged into one environment result.
2175type MergedResult struct {
2176	// Outcome: Outcome of the resource
2177	Outcome *Outcome `json:"outcome,omitempty"`
2178
2179	// State: State of the resource
2180	//
2181	// Possible values:
2182	//   "unknownState" - Should never be in this state. Exists for proto
2183	// deserialization backward compatibility.
2184	//   "pending" - The Execution/Step is created, ready to run, but not
2185	// running yet. If an Execution/Step is created without initial state,
2186	// it is assumed that the Execution/Step is in PENDING state.
2187	//   "inProgress" - The Execution/Step is in progress.
2188	//   "complete" - The finalized, immutable state. Steps/Executions in
2189	// this state cannot be modified.
2190	State string `json:"state,omitempty"`
2191
2192	// TestSuiteOverviews: The combined and rolled-up result of each test
2193	// suite that was run as part of this environment. Combining: When the
2194	// test cases from a suite are run in different steps (sharding), the
2195	// results are added back together in one overview. (e.g., if shard1 has
2196	// 2 failures and shard2 has 1 failure than the overview failure_count =
2197	// 3). Rollup: When test cases from the same suite are run multiple
2198	// times (flaky), the results are combined (e.g., if testcase1.run1
2199	// fails, testcase1.run2 passes, and both testcase2.run1 and
2200	// testcase2.run2 fail then the overview flaky_count = 1 and
2201	// failure_count = 1).
2202	TestSuiteOverviews []*TestSuiteOverview `json:"testSuiteOverviews,omitempty"`
2203
2204	// ForceSendFields is a list of field names (e.g. "Outcome") to
2205	// unconditionally include in API requests. By default, fields with
2206	// empty or default values are omitted from API requests. However, any
2207	// non-pointer, non-interface field appearing in ForceSendFields will be
2208	// sent to the server regardless of whether the field is empty or not.
2209	// This may be used to include empty fields in Patch requests.
2210	ForceSendFields []string `json:"-"`
2211
2212	// NullFields is a list of field names (e.g. "Outcome") to include in
2213	// API requests with the JSON null value. By default, fields with empty
2214	// values are omitted from API requests. However, any field with an
2215	// empty value appearing in NullFields will be sent to the server as
2216	// null. It is an error if a field in this list has a non-empty value.
2217	// This may be used to include null fields in Patch requests.
2218	NullFields []string `json:"-"`
2219}
2220
2221func (s *MergedResult) MarshalJSON() ([]byte, error) {
2222	type NoMethod MergedResult
2223	raw := NoMethod(*s)
2224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2225}
2226
2227// MultiStep: Details when multiple steps are run with the same
2228// configuration as a group.
2229type MultiStep struct {
2230	// MultistepNumber: Unique int given to each step. Ranges from
2231	// 0(inclusive) to total number of steps(exclusive). The primary step is
2232	// 0.
2233	MultistepNumber int64 `json:"multistepNumber,omitempty"`
2234
2235	// PrimaryStep: Present if it is a primary (original) step.
2236	PrimaryStep *PrimaryStep `json:"primaryStep,omitempty"`
2237
2238	// PrimaryStepId: Step Id of the primary (original) step, which might be
2239	// this step.
2240	PrimaryStepId string `json:"primaryStepId,omitempty"`
2241
2242	// ForceSendFields is a list of field names (e.g. "MultistepNumber") to
2243	// unconditionally include in API requests. By default, fields with
2244	// empty or default values are omitted from API requests. However, any
2245	// non-pointer, non-interface field appearing in ForceSendFields will be
2246	// sent to the server regardless of whether the field is empty or not.
2247	// This may be used to include empty fields in Patch requests.
2248	ForceSendFields []string `json:"-"`
2249
2250	// NullFields is a list of field names (e.g. "MultistepNumber") to
2251	// include in API requests with the JSON null value. By default, fields
2252	// with empty values are omitted from API requests. However, any field
2253	// with an empty value appearing in NullFields will be sent to the
2254	// server as null. It is an error if a field in this list has a
2255	// non-empty value. This may be used to include null fields in Patch
2256	// requests.
2257	NullFields []string `json:"-"`
2258}
2259
2260func (s *MultiStep) MarshalJSON() ([]byte, error) {
2261	type NoMethod MultiStep
2262	raw := NoMethod(*s)
2263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2264}
2265
2266// NativeCrash: Additional details for a native crash.
2267type NativeCrash struct {
2268	// StackTrace: The stack trace of the native crash. Optional.
2269	StackTrace *StackTrace `json:"stackTrace,omitempty"`
2270
2271	// ForceSendFields is a list of field names (e.g. "StackTrace") to
2272	// unconditionally include in API requests. By default, fields with
2273	// empty or default values are omitted from API requests. However, any
2274	// non-pointer, non-interface field appearing in ForceSendFields will be
2275	// sent to the server regardless of whether the field is empty or not.
2276	// This may be used to include empty fields in Patch requests.
2277	ForceSendFields []string `json:"-"`
2278
2279	// NullFields is a list of field names (e.g. "StackTrace") to include in
2280	// API requests with the JSON null value. By default, fields with empty
2281	// values are omitted from API requests. However, any field with an
2282	// empty value appearing in NullFields will be sent to the server as
2283	// null. It is an error if a field in this list has a non-empty value.
2284	// This may be used to include null fields in Patch requests.
2285	NullFields []string `json:"-"`
2286}
2287
2288func (s *NativeCrash) MarshalJSON() ([]byte, error) {
2289	type NoMethod NativeCrash
2290	raw := NoMethod(*s)
2291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2292}
2293
2294// NonSdkApi: A non-sdk API and examples of it being called along with
2295// other metadata See
2296// https://developer.android.com/distribute/best-practices/develop/restrictions-non-sdk-interfaces
2297type NonSdkApi struct {
2298	// ApiSignature: The signature of the Non-SDK API
2299	ApiSignature string `json:"apiSignature,omitempty"`
2300
2301	// ExampleStackTraces: Example stack traces of this API being called.
2302	ExampleStackTraces []string `json:"exampleStackTraces,omitempty"`
2303
2304	// Insights: Optional debugging insights for non-SDK API violations.
2305	Insights []*NonSdkApiInsight `json:"insights,omitempty"`
2306
2307	// InvocationCount: The total number of times this API was observed to
2308	// have been called.
2309	InvocationCount int64 `json:"invocationCount,omitempty"`
2310
2311	// List: Which list this API appears on
2312	//
2313	// Possible values:
2314	//   "NONE"
2315	//   "WHITE"
2316	//   "BLACK"
2317	//   "GREY"
2318	//   "GREY_MAX_O"
2319	//   "GREY_MAX_P"
2320	//   "GREY_MAX_Q"
2321	//   "GREY_MAX_R"
2322	List string `json:"list,omitempty"`
2323
2324	// ForceSendFields is a list of field names (e.g. "ApiSignature") to
2325	// unconditionally include in API requests. By default, fields with
2326	// empty or default values are omitted from API requests. However, any
2327	// non-pointer, non-interface field appearing in ForceSendFields will be
2328	// sent to the server regardless of whether the field is empty or not.
2329	// This may be used to include empty fields in Patch requests.
2330	ForceSendFields []string `json:"-"`
2331
2332	// NullFields is a list of field names (e.g. "ApiSignature") to include
2333	// in API requests with the JSON null value. By default, fields with
2334	// empty values are omitted from API requests. However, any field with
2335	// an empty value appearing in NullFields will be sent to the server as
2336	// null. It is an error if a field in this list has a non-empty value.
2337	// This may be used to include null fields in Patch requests.
2338	NullFields []string `json:"-"`
2339}
2340
2341func (s *NonSdkApi) MarshalJSON() ([]byte, error) {
2342	type NoMethod NonSdkApi
2343	raw := NoMethod(*s)
2344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2345}
2346
2347// NonSdkApiInsight: Non-SDK API insights (to address debugging
2348// solutions).
2349type NonSdkApiInsight struct {
2350	// ExampleTraceMessages: Optional sample stack traces, for which this
2351	// insight applies (there should be at least one).
2352	ExampleTraceMessages []string `json:"exampleTraceMessages,omitempty"`
2353
2354	// MatcherId: A unique ID, to be used for determining the effectiveness
2355	// of this particular insight in the context of a matcher. (required)
2356	MatcherId string `json:"matcherId,omitempty"`
2357
2358	// PendingGoogleUpdateInsight: An insight indicating that the hidden API
2359	// usage originates from a Google-provided library.
2360	PendingGoogleUpdateInsight *PendingGoogleUpdateInsight `json:"pendingGoogleUpdateInsight,omitempty"`
2361
2362	// UpgradeInsight: An insight indicating that the hidden API usage
2363	// originates from the use of a library that needs to be upgraded.
2364	UpgradeInsight *UpgradeInsight `json:"upgradeInsight,omitempty"`
2365
2366	// ForceSendFields is a list of field names (e.g.
2367	// "ExampleTraceMessages") to unconditionally include in API requests.
2368	// By default, fields with empty or default values are omitted from API
2369	// requests. However, any non-pointer, non-interface field appearing in
2370	// ForceSendFields will be sent to the server regardless of whether the
2371	// field is empty or not. This may be used to include empty fields in
2372	// Patch requests.
2373	ForceSendFields []string `json:"-"`
2374
2375	// NullFields is a list of field names (e.g. "ExampleTraceMessages") to
2376	// include in API requests with the JSON null value. By default, fields
2377	// with empty values are omitted from API requests. However, any field
2378	// with an empty value appearing in NullFields will be sent to the
2379	// server as null. It is an error if a field in this list has a
2380	// non-empty value. This may be used to include null fields in Patch
2381	// requests.
2382	NullFields []string `json:"-"`
2383}
2384
2385func (s *NonSdkApiInsight) MarshalJSON() ([]byte, error) {
2386	type NoMethod NonSdkApiInsight
2387	raw := NoMethod(*s)
2388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2389}
2390
2391// NonSdkApiUsageViolation: Additional details for a non-sdk API usage
2392// violation.
2393type NonSdkApiUsageViolation struct {
2394	// ApiSignatures: Signatures of a subset of those hidden API's.
2395	ApiSignatures []string `json:"apiSignatures,omitempty"`
2396
2397	// UniqueApis: Total number of unique hidden API's accessed.
2398	UniqueApis int64 `json:"uniqueApis,omitempty"`
2399
2400	// ForceSendFields is a list of field names (e.g. "ApiSignatures") to
2401	// unconditionally include in API requests. By default, fields with
2402	// empty or default values are omitted from API requests. However, any
2403	// non-pointer, non-interface field appearing in ForceSendFields will be
2404	// sent to the server regardless of whether the field is empty or not.
2405	// This may be used to include empty fields in Patch requests.
2406	ForceSendFields []string `json:"-"`
2407
2408	// NullFields is a list of field names (e.g. "ApiSignatures") to include
2409	// in API requests with the JSON null value. By default, fields with
2410	// empty values are omitted from API requests. However, any field with
2411	// an empty value appearing in NullFields will be sent to the server as
2412	// null. It is an error if a field in this list has a non-empty value.
2413	// This may be used to include null fields in Patch requests.
2414	NullFields []string `json:"-"`
2415}
2416
2417func (s *NonSdkApiUsageViolation) MarshalJSON() ([]byte, error) {
2418	type NoMethod NonSdkApiUsageViolation
2419	raw := NoMethod(*s)
2420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2421}
2422
2423// NonSdkApiUsageViolationReport: Contains a summary and examples of
2424// non-sdk API usage violations.
2425type NonSdkApiUsageViolationReport struct {
2426	// ExampleApis: Examples of the detected API usages.
2427	ExampleApis []*NonSdkApi `json:"exampleApis,omitempty"`
2428
2429	// MinSdkVersion: Minimum API level required for the application to run.
2430	MinSdkVersion int64 `json:"minSdkVersion,omitempty"`
2431
2432	// TargetSdkVersion: Specifies the API Level on which the application is
2433	// designed to run.
2434	TargetSdkVersion int64 `json:"targetSdkVersion,omitempty"`
2435
2436	// UniqueApis: Total number of unique Non-SDK API's accessed.
2437	UniqueApis int64 `json:"uniqueApis,omitempty"`
2438
2439	// ForceSendFields is a list of field names (e.g. "ExampleApis") to
2440	// unconditionally include in API requests. By default, fields with
2441	// empty or default values are omitted from API requests. However, any
2442	// non-pointer, non-interface field appearing in ForceSendFields will be
2443	// sent to the server regardless of whether the field is empty or not.
2444	// This may be used to include empty fields in Patch requests.
2445	ForceSendFields []string `json:"-"`
2446
2447	// NullFields is a list of field names (e.g. "ExampleApis") to include
2448	// in API requests with the JSON null value. By default, fields with
2449	// empty values are omitted from API requests. However, any field with
2450	// an empty value appearing in NullFields will be sent to the server as
2451	// null. It is an error if a field in this list has a non-empty value.
2452	// This may be used to include null fields in Patch requests.
2453	NullFields []string `json:"-"`
2454}
2455
2456func (s *NonSdkApiUsageViolationReport) MarshalJSON() ([]byte, error) {
2457	type NoMethod NonSdkApiUsageViolationReport
2458	raw := NoMethod(*s)
2459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2460}
2461
2462// Outcome: Interprets a result so that humans and machines can act on
2463// it.
2464type Outcome struct {
2465	// FailureDetail: More information about a FAILURE outcome. Returns
2466	// INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
2467	// Optional
2468	FailureDetail *FailureDetail `json:"failureDetail,omitempty"`
2469
2470	// InconclusiveDetail: More information about an INCONCLUSIVE outcome.
2471	// Returns INVALID_ARGUMENT if this field is set but the summary is not
2472	// INCONCLUSIVE. Optional
2473	InconclusiveDetail *InconclusiveDetail `json:"inconclusiveDetail,omitempty"`
2474
2475	// SkippedDetail: More information about a SKIPPED outcome. Returns
2476	// INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
2477	// Optional
2478	SkippedDetail *SkippedDetail `json:"skippedDetail,omitempty"`
2479
2480	// SuccessDetail: More information about a SUCCESS outcome. Returns
2481	// INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
2482	// Optional
2483	SuccessDetail *SuccessDetail `json:"successDetail,omitempty"`
2484
2485	// Summary: The simplest way to interpret a result. Required
2486	//
2487	// Possible values:
2488	//   "unset" - Do not use. For proto versioning only.
2489	//   "success" - The test matrix run was successful, for instance: - All
2490	// the test cases passed. - Robo did not detect a crash of the
2491	// application under test.
2492	//   "failure" - A run failed, for instance: - One or more test case
2493	// failed. - A test timed out. - The application under test crashed.
2494	//   "inconclusive" - Something unexpected happened. The run should
2495	// still be considered unsuccessful but this is likely a transient
2496	// problem and re-running the test might be successful.
2497	//   "skipped" - All tests were skipped, for instance: - All device
2498	// configurations were incompatible.
2499	//   "flaky" - A group of steps that were run with the same
2500	// configuration had both failure and success outcomes.
2501	Summary string `json:"summary,omitempty"`
2502
2503	// ForceSendFields is a list of field names (e.g. "FailureDetail") to
2504	// unconditionally include in API requests. By default, fields with
2505	// empty or default values are omitted from API requests. However, any
2506	// non-pointer, non-interface field appearing in ForceSendFields will be
2507	// sent to the server regardless of whether the field is empty or not.
2508	// This may be used to include empty fields in Patch requests.
2509	ForceSendFields []string `json:"-"`
2510
2511	// NullFields is a list of field names (e.g. "FailureDetail") to include
2512	// in API requests with the JSON null value. By default, fields with
2513	// empty values are omitted from API requests. However, any field with
2514	// an empty value appearing in NullFields will be sent to the server as
2515	// null. It is an error if a field in this list has a non-empty value.
2516	// This may be used to include null fields in Patch requests.
2517	NullFields []string `json:"-"`
2518}
2519
2520func (s *Outcome) MarshalJSON() ([]byte, error) {
2521	type NoMethod Outcome
2522	raw := NoMethod(*s)
2523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2524}
2525
2526// OverlappingUIElements: A warning that Robo encountered a screen that
2527// has overlapping clickable elements; this may indicate a potential UI
2528// issue.
2529type OverlappingUIElements struct {
2530	// ResourceName: Resource names of the overlapping screen elements
2531	ResourceName []string `json:"resourceName,omitempty"`
2532
2533	// ScreenId: The screen id of the elements
2534	ScreenId string `json:"screenId,omitempty"`
2535
2536	// ForceSendFields is a list of field names (e.g. "ResourceName") to
2537	// unconditionally include in API requests. By default, fields with
2538	// empty or default values are omitted from API requests. However, any
2539	// non-pointer, non-interface field appearing in ForceSendFields will be
2540	// sent to the server regardless of whether the field is empty or not.
2541	// This may be used to include empty fields in Patch requests.
2542	ForceSendFields []string `json:"-"`
2543
2544	// NullFields is a list of field names (e.g. "ResourceName") to include
2545	// in API requests with the JSON null value. By default, fields with
2546	// empty values are omitted from API requests. However, any field with
2547	// an empty value appearing in NullFields will be sent to the server as
2548	// null. It is an error if a field in this list has a non-empty value.
2549	// This may be used to include null fields in Patch requests.
2550	NullFields []string `json:"-"`
2551}
2552
2553func (s *OverlappingUIElements) MarshalJSON() ([]byte, error) {
2554	type NoMethod OverlappingUIElements
2555	raw := NoMethod(*s)
2556	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2557}
2558
2559// PendingGoogleUpdateInsight: This insight indicates that the hidden
2560// API usage originates from a Google-provided library. Users need not
2561// take any action.
2562type PendingGoogleUpdateInsight struct {
2563	// NameOfGoogleLibrary: The name of the Google-provided library with the
2564	// non-SDK API dependency.
2565	NameOfGoogleLibrary string `json:"nameOfGoogleLibrary,omitempty"`
2566
2567	// ForceSendFields is a list of field names (e.g. "NameOfGoogleLibrary")
2568	// to unconditionally include in API requests. By default, fields with
2569	// empty or default values are omitted from API requests. However, any
2570	// non-pointer, non-interface field appearing in ForceSendFields will be
2571	// sent to the server regardless of whether the field is empty or not.
2572	// This may be used to include empty fields in Patch requests.
2573	ForceSendFields []string `json:"-"`
2574
2575	// NullFields is a list of field names (e.g. "NameOfGoogleLibrary") to
2576	// include in API requests with the JSON null value. By default, fields
2577	// with empty values are omitted from API requests. However, any field
2578	// with an empty value appearing in NullFields will be sent to the
2579	// server as null. It is an error if a field in this list has a
2580	// non-empty value. This may be used to include null fields in Patch
2581	// requests.
2582	NullFields []string `json:"-"`
2583}
2584
2585func (s *PendingGoogleUpdateInsight) MarshalJSON() ([]byte, error) {
2586	type NoMethod PendingGoogleUpdateInsight
2587	raw := NoMethod(*s)
2588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2589}
2590
2591// PerfEnvironment: Encapsulates performance environment info
2592type PerfEnvironment struct {
2593	// CpuInfo: CPU related environment info
2594	CpuInfo *CPUInfo `json:"cpuInfo,omitempty"`
2595
2596	// MemoryInfo: Memory related environment info
2597	MemoryInfo *MemoryInfo `json:"memoryInfo,omitempty"`
2598
2599	// ForceSendFields is a list of field names (e.g. "CpuInfo") to
2600	// unconditionally include in API requests. By default, fields with
2601	// empty or default values are omitted from API requests. However, any
2602	// non-pointer, non-interface field appearing in ForceSendFields will be
2603	// sent to the server regardless of whether the field is empty or not.
2604	// This may be used to include empty fields in Patch requests.
2605	ForceSendFields []string `json:"-"`
2606
2607	// NullFields is a list of field names (e.g. "CpuInfo") to include in
2608	// API requests with the JSON null value. By default, fields with empty
2609	// values are omitted from API requests. However, any field with an
2610	// empty value appearing in NullFields will be sent to the server as
2611	// null. It is an error if a field in this list has a non-empty value.
2612	// This may be used to include null fields in Patch requests.
2613	NullFields []string `json:"-"`
2614}
2615
2616func (s *PerfEnvironment) MarshalJSON() ([]byte, error) {
2617	type NoMethod PerfEnvironment
2618	raw := NoMethod(*s)
2619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2620}
2621
2622// PerfMetricsSummary: A summary of perf metrics collected and
2623// performance environment info
2624type PerfMetricsSummary struct {
2625	AppStartTime *AppStartTime `json:"appStartTime,omitempty"`
2626
2627	// ExecutionId: A tool results execution ID. @OutputOnly
2628	ExecutionId string `json:"executionId,omitempty"`
2629
2630	// GraphicsStats: Graphics statistics for the entire run. Statistics are
2631	// reset at the beginning of the run and collected at the end of the
2632	// run.
2633	GraphicsStats *GraphicsStats `json:"graphicsStats,omitempty"`
2634
2635	// HistoryId: A tool results history ID. @OutputOnly
2636	HistoryId string `json:"historyId,omitempty"`
2637
2638	// PerfEnvironment: Describes the environment in which the performance
2639	// metrics were collected
2640	PerfEnvironment *PerfEnvironment `json:"perfEnvironment,omitempty"`
2641
2642	// PerfMetrics: Set of resource collected
2643	//
2644	// Possible values:
2645	//   "perfMetricTypeUnspecified"
2646	//   "memory"
2647	//   "cpu"
2648	//   "network"
2649	//   "graphics"
2650	PerfMetrics []string `json:"perfMetrics,omitempty"`
2651
2652	// ProjectId: The cloud project @OutputOnly
2653	ProjectId string `json:"projectId,omitempty"`
2654
2655	// StepId: A tool results step ID. @OutputOnly
2656	StepId string `json:"stepId,omitempty"`
2657
2658	// ServerResponse contains the HTTP response code and headers from the
2659	// server.
2660	googleapi.ServerResponse `json:"-"`
2661
2662	// ForceSendFields is a list of field names (e.g. "AppStartTime") to
2663	// unconditionally include in API requests. By default, fields with
2664	// empty or default values are omitted from API requests. However, any
2665	// non-pointer, non-interface field appearing in ForceSendFields will be
2666	// sent to the server regardless of whether the field is empty or not.
2667	// This may be used to include empty fields in Patch requests.
2668	ForceSendFields []string `json:"-"`
2669
2670	// NullFields is a list of field names (e.g. "AppStartTime") to include
2671	// in API requests with the JSON null value. By default, fields with
2672	// empty values are omitted from API requests. However, any field with
2673	// an empty value appearing in NullFields will be sent to the server as
2674	// null. It is an error if a field in this list has a non-empty value.
2675	// This may be used to include null fields in Patch requests.
2676	NullFields []string `json:"-"`
2677}
2678
2679func (s *PerfMetricsSummary) MarshalJSON() ([]byte, error) {
2680	type NoMethod PerfMetricsSummary
2681	raw := NoMethod(*s)
2682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2683}
2684
2685// PerfSample: Resource representing a single performance measure or
2686// data point
2687type PerfSample struct {
2688	// SampleTime: Timestamp of collection.
2689	SampleTime *Timestamp `json:"sampleTime,omitempty"`
2690
2691	// Value: Value observed
2692	Value float64 `json:"value,omitempty"`
2693
2694	// ForceSendFields is a list of field names (e.g. "SampleTime") to
2695	// unconditionally include in API requests. By default, fields with
2696	// empty or default values are omitted from API requests. However, any
2697	// non-pointer, non-interface field appearing in ForceSendFields will be
2698	// sent to the server regardless of whether the field is empty or not.
2699	// This may be used to include empty fields in Patch requests.
2700	ForceSendFields []string `json:"-"`
2701
2702	// NullFields is a list of field names (e.g. "SampleTime") to include in
2703	// API requests with the JSON null value. By default, fields with empty
2704	// values are omitted from API requests. However, any field with an
2705	// empty value appearing in NullFields will be sent to the server as
2706	// null. It is an error if a field in this list has a non-empty value.
2707	// This may be used to include null fields in Patch requests.
2708	NullFields []string `json:"-"`
2709}
2710
2711func (s *PerfSample) MarshalJSON() ([]byte, error) {
2712	type NoMethod PerfSample
2713	raw := NoMethod(*s)
2714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2715}
2716
2717func (s *PerfSample) UnmarshalJSON(data []byte) error {
2718	type NoMethod PerfSample
2719	var s1 struct {
2720		Value gensupport.JSONFloat64 `json:"value"`
2721		*NoMethod
2722	}
2723	s1.NoMethod = (*NoMethod)(s)
2724	if err := json.Unmarshal(data, &s1); err != nil {
2725		return err
2726	}
2727	s.Value = float64(s1.Value)
2728	return nil
2729}
2730
2731// PerfSampleSeries: Resource representing a collection of performance
2732// samples (or data points)
2733type PerfSampleSeries struct {
2734	// BasicPerfSampleSeries: Basic series represented by a line chart
2735	BasicPerfSampleSeries *BasicPerfSampleSeries `json:"basicPerfSampleSeries,omitempty"`
2736
2737	// ExecutionId: A tool results execution ID. @OutputOnly
2738	ExecutionId string `json:"executionId,omitempty"`
2739
2740	// HistoryId: A tool results history ID. @OutputOnly
2741	HistoryId string `json:"historyId,omitempty"`
2742
2743	// ProjectId: The cloud project @OutputOnly
2744	ProjectId string `json:"projectId,omitempty"`
2745
2746	// SampleSeriesId: A sample series id @OutputOnly
2747	SampleSeriesId string `json:"sampleSeriesId,omitempty"`
2748
2749	// StepId: A tool results step ID. @OutputOnly
2750	StepId string `json:"stepId,omitempty"`
2751
2752	// ServerResponse contains the HTTP response code and headers from the
2753	// server.
2754	googleapi.ServerResponse `json:"-"`
2755
2756	// ForceSendFields is a list of field names (e.g.
2757	// "BasicPerfSampleSeries") to unconditionally include in API requests.
2758	// By default, fields with empty or default values are omitted from API
2759	// requests. However, any non-pointer, non-interface field appearing in
2760	// ForceSendFields will be sent to the server regardless of whether the
2761	// field is empty or not. This may be used to include empty fields in
2762	// Patch requests.
2763	ForceSendFields []string `json:"-"`
2764
2765	// NullFields is a list of field names (e.g. "BasicPerfSampleSeries") to
2766	// include in API requests with the JSON null value. By default, fields
2767	// with empty values are omitted from API requests. However, any field
2768	// with an empty value appearing in NullFields will be sent to the
2769	// server as null. It is an error if a field in this list has a
2770	// non-empty value. This may be used to include null fields in Patch
2771	// requests.
2772	NullFields []string `json:"-"`
2773}
2774
2775func (s *PerfSampleSeries) MarshalJSON() ([]byte, error) {
2776	type NoMethod PerfSampleSeries
2777	raw := NoMethod(*s)
2778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2779}
2780
2781// PerformedGoogleLogin: A notification that Robo signed in with Google.
2782type PerformedGoogleLogin struct {
2783}
2784
2785// PerformedMonkeyActions: A notification that Robo performed some
2786// monkey actions.
2787type PerformedMonkeyActions struct {
2788	// TotalActions: The total number of monkey actions performed during the
2789	// crawl.
2790	TotalActions int64 `json:"totalActions,omitempty"`
2791
2792	// ForceSendFields is a list of field names (e.g. "TotalActions") to
2793	// unconditionally include in API requests. By default, fields with
2794	// empty or default values are omitted from API requests. However, any
2795	// non-pointer, non-interface field appearing in ForceSendFields will be
2796	// sent to the server regardless of whether the field is empty or not.
2797	// This may be used to include empty fields in Patch requests.
2798	ForceSendFields []string `json:"-"`
2799
2800	// NullFields is a list of field names (e.g. "TotalActions") to include
2801	// in API requests with the JSON null value. By default, fields with
2802	// empty values are omitted from API requests. However, any field with
2803	// an empty value appearing in NullFields will be sent to the server as
2804	// null. It is an error if a field in this list has a non-empty value.
2805	// This may be used to include null fields in Patch requests.
2806	NullFields []string `json:"-"`
2807}
2808
2809func (s *PerformedMonkeyActions) MarshalJSON() ([]byte, error) {
2810	type NoMethod PerformedMonkeyActions
2811	raw := NoMethod(*s)
2812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2813}
2814
2815// PrimaryStep: Stores rollup test status of multiple steps that were
2816// run as a group and outcome of each individual step.
2817type PrimaryStep struct {
2818	// IndividualOutcome: Step Id and outcome of each individual step.
2819	IndividualOutcome []*IndividualOutcome `json:"individualOutcome,omitempty"`
2820
2821	// RollUp: Rollup test status of multiple steps that were run with the
2822	// same configuration as a group.
2823	//
2824	// Possible values:
2825	//   "unset" - Do not use. For proto versioning only.
2826	//   "success" - The test matrix run was successful, for instance: - All
2827	// the test cases passed. - Robo did not detect a crash of the
2828	// application under test.
2829	//   "failure" - A run failed, for instance: - One or more test case
2830	// failed. - A test timed out. - The application under test crashed.
2831	//   "inconclusive" - Something unexpected happened. The run should
2832	// still be considered unsuccessful but this is likely a transient
2833	// problem and re-running the test might be successful.
2834	//   "skipped" - All tests were skipped, for instance: - All device
2835	// configurations were incompatible.
2836	//   "flaky" - A group of steps that were run with the same
2837	// configuration had both failure and success outcomes.
2838	RollUp string `json:"rollUp,omitempty"`
2839
2840	// ForceSendFields is a list of field names (e.g. "IndividualOutcome")
2841	// to unconditionally include in API requests. By default, fields with
2842	// empty or default values are omitted from API requests. However, any
2843	// non-pointer, non-interface field appearing in ForceSendFields will be
2844	// sent to the server regardless of whether the field is empty or not.
2845	// This may be used to include empty fields in Patch requests.
2846	ForceSendFields []string `json:"-"`
2847
2848	// NullFields is a list of field names (e.g. "IndividualOutcome") to
2849	// include in API requests with the JSON null value. By default, fields
2850	// with empty values are omitted from API requests. However, any field
2851	// with an empty value appearing in NullFields will be sent to the
2852	// server as null. It is an error if a field in this list has a
2853	// non-empty value. This may be used to include null fields in Patch
2854	// requests.
2855	NullFields []string `json:"-"`
2856}
2857
2858func (s *PrimaryStep) MarshalJSON() ([]byte, error) {
2859	type NoMethod PrimaryStep
2860	raw := NoMethod(*s)
2861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2862}
2863
2864// ProjectSettings: Per-project settings for the Tool Results service.
2865type ProjectSettings struct {
2866	// DefaultBucket: The name of the Google Cloud Storage bucket to which
2867	// results are written. By default, this is unset. In update request:
2868	// optional In response: optional
2869	DefaultBucket string `json:"defaultBucket,omitempty"`
2870
2871	// Name: The name of the project's settings. Always of the form:
2872	// projects/{project-id}/settings In update request: never set In
2873	// response: always set
2874	Name string `json:"name,omitempty"`
2875
2876	// ServerResponse contains the HTTP response code and headers from the
2877	// server.
2878	googleapi.ServerResponse `json:"-"`
2879
2880	// ForceSendFields is a list of field names (e.g. "DefaultBucket") to
2881	// unconditionally include in API requests. By default, fields with
2882	// empty or default values are omitted from API requests. However, any
2883	// non-pointer, non-interface field appearing in ForceSendFields will be
2884	// sent to the server regardless of whether the field is empty or not.
2885	// This may be used to include empty fields in Patch requests.
2886	ForceSendFields []string `json:"-"`
2887
2888	// NullFields is a list of field names (e.g. "DefaultBucket") to include
2889	// in API requests with the JSON null value. By default, fields with
2890	// empty values are omitted from API requests. However, any field with
2891	// an empty value appearing in NullFields will be sent to the server as
2892	// null. It is an error if a field in this list has a non-empty value.
2893	// This may be used to include null fields in Patch requests.
2894	NullFields []string `json:"-"`
2895}
2896
2897func (s *ProjectSettings) MarshalJSON() ([]byte, error) {
2898	type NoMethod ProjectSettings
2899	raw := NoMethod(*s)
2900	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2901}
2902
2903// PublishXunitXmlFilesRequest: Request message for
2904// StepService.PublishXunitXmlFiles.
2905type PublishXunitXmlFilesRequest struct {
2906	// XunitXmlFiles: URI of the Xunit XML files to publish. The maximum
2907	// size of the file this reference is pointing to is 50MB. Required.
2908	XunitXmlFiles []*FileReference `json:"xunitXmlFiles,omitempty"`
2909
2910	// ForceSendFields is a list of field names (e.g. "XunitXmlFiles") to
2911	// unconditionally include in API requests. By default, fields with
2912	// empty or default values are omitted from API requests. However, any
2913	// non-pointer, non-interface field appearing in ForceSendFields will be
2914	// sent to the server regardless of whether the field is empty or not.
2915	// This may be used to include empty fields in Patch requests.
2916	ForceSendFields []string `json:"-"`
2917
2918	// NullFields is a list of field names (e.g. "XunitXmlFiles") to include
2919	// in API requests with the JSON null value. By default, fields with
2920	// empty values are omitted from API requests. However, any field with
2921	// an empty value appearing in NullFields will be sent to the server as
2922	// null. It is an error if a field in this list has a non-empty value.
2923	// This may be used to include null fields in Patch requests.
2924	NullFields []string `json:"-"`
2925}
2926
2927func (s *PublishXunitXmlFilesRequest) MarshalJSON() ([]byte, error) {
2928	type NoMethod PublishXunitXmlFilesRequest
2929	raw := NoMethod(*s)
2930	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2931}
2932
2933// RegionProto: A rectangular region.
2934type RegionProto struct {
2935	// HeightPx: The height, in pixels. Always set.
2936	HeightPx int64 `json:"heightPx,omitempty"`
2937
2938	// LeftPx: The left side of the rectangle, in pixels. Always set.
2939	LeftPx int64 `json:"leftPx,omitempty"`
2940
2941	// TopPx: The top of the rectangle, in pixels. Always set.
2942	TopPx int64 `json:"topPx,omitempty"`
2943
2944	// WidthPx: The width, in pixels. Always set.
2945	WidthPx int64 `json:"widthPx,omitempty"`
2946
2947	// ForceSendFields is a list of field names (e.g. "HeightPx") to
2948	// unconditionally include in API requests. By default, fields with
2949	// empty or default values are omitted from API requests. However, any
2950	// non-pointer, non-interface field appearing in ForceSendFields will be
2951	// sent to the server regardless of whether the field is empty or not.
2952	// This may be used to include empty fields in Patch requests.
2953	ForceSendFields []string `json:"-"`
2954
2955	// NullFields is a list of field names (e.g. "HeightPx") to include in
2956	// API requests with the JSON null value. By default, fields with empty
2957	// values are omitted from API requests. However, any field with an
2958	// empty value appearing in NullFields will be sent to the server as
2959	// null. It is an error if a field in this list has a non-empty value.
2960	// This may be used to include null fields in Patch requests.
2961	NullFields []string `json:"-"`
2962}
2963
2964func (s *RegionProto) MarshalJSON() ([]byte, error) {
2965	type NoMethod RegionProto
2966	raw := NoMethod(*s)
2967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2968}
2969
2970// ResultsStorage: The storage for test results.
2971type ResultsStorage struct {
2972	// ResultsStoragePath: The root directory for test results.
2973	ResultsStoragePath *FileReference `json:"resultsStoragePath,omitempty"`
2974
2975	// XunitXmlFile: The path to the Xunit XML file.
2976	XunitXmlFile *FileReference `json:"xunitXmlFile,omitempty"`
2977
2978	// ForceSendFields is a list of field names (e.g. "ResultsStoragePath")
2979	// to unconditionally include in API requests. By default, fields with
2980	// empty or default values are omitted from API requests. However, any
2981	// non-pointer, non-interface field appearing in ForceSendFields will be
2982	// sent to the server regardless of whether the field is empty or not.
2983	// This may be used to include empty fields in Patch requests.
2984	ForceSendFields []string `json:"-"`
2985
2986	// NullFields is a list of field names (e.g. "ResultsStoragePath") to
2987	// include in API requests with the JSON null value. By default, fields
2988	// with empty values are omitted from API requests. However, any field
2989	// with an empty value appearing in NullFields will be sent to the
2990	// server as null. It is an error if a field in this list has a
2991	// non-empty value. This may be used to include null fields in Patch
2992	// requests.
2993	NullFields []string `json:"-"`
2994}
2995
2996func (s *ResultsStorage) MarshalJSON() ([]byte, error) {
2997	type NoMethod ResultsStorage
2998	raw := NoMethod(*s)
2999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3000}
3001
3002// RoboScriptExecution: Execution stats for a user-provided Robo script.
3003type RoboScriptExecution struct {
3004	// SuccessfulActions: The number of Robo script actions executed
3005	// successfully.
3006	SuccessfulActions int64 `json:"successfulActions,omitempty"`
3007
3008	// TotalActions: The total number of actions in the Robo script.
3009	TotalActions int64 `json:"totalActions,omitempty"`
3010
3011	// ForceSendFields is a list of field names (e.g. "SuccessfulActions")
3012	// to unconditionally include in API requests. By default, fields with
3013	// empty or default values are omitted from API requests. However, any
3014	// non-pointer, non-interface field appearing in ForceSendFields will be
3015	// sent to the server regardless of whether the field is empty or not.
3016	// This may be used to include empty fields in Patch requests.
3017	ForceSendFields []string `json:"-"`
3018
3019	// NullFields is a list of field names (e.g. "SuccessfulActions") to
3020	// include in API requests with the JSON null value. By default, fields
3021	// with empty values are omitted from API requests. However, any field
3022	// with an empty value appearing in NullFields will be sent to the
3023	// server as null. It is an error if a field in this list has a
3024	// non-empty value. This may be used to include null fields in Patch
3025	// requests.
3026	NullFields []string `json:"-"`
3027}
3028
3029func (s *RoboScriptExecution) MarshalJSON() ([]byte, error) {
3030	type NoMethod RoboScriptExecution
3031	raw := NoMethod(*s)
3032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3033}
3034
3035// SafeHtmlProto: IMPORTANT: It is unsafe to accept this message from an
3036// untrusted source, since it's trivial for an attacker to forge
3037// serialized messages that don't fulfill the type's safety contract --
3038// for example, it could contain attacker controlled script. A system
3039// which receives a SafeHtmlProto implicitly trusts the producer of the
3040// SafeHtmlProto. So, it's generally safe to return this message in RPC
3041// responses, but generally unsafe to accept it in RPC requests.
3042type SafeHtmlProto struct {
3043	// PrivateDoNotAccessOrElseSafeHtmlWrappedValue: IMPORTANT: Never set or
3044	// read this field, even from tests, it is private. See documentation at
3045	// the top of .proto file for programming language packages with which
3046	// to create or read this message.
3047	PrivateDoNotAccessOrElseSafeHtmlWrappedValue string `json:"privateDoNotAccessOrElseSafeHtmlWrappedValue,omitempty"`
3048
3049	// ForceSendFields is a list of field names (e.g.
3050	// "PrivateDoNotAccessOrElseSafeHtmlWrappedValue") to unconditionally
3051	// include in API requests. By default, fields with empty or default
3052	// values are omitted from API requests. However, any non-pointer,
3053	// non-interface field appearing in ForceSendFields will be sent to the
3054	// server regardless of whether the field is empty or not. This may be
3055	// used to include empty fields in Patch requests.
3056	ForceSendFields []string `json:"-"`
3057
3058	// NullFields is a list of field names (e.g.
3059	// "PrivateDoNotAccessOrElseSafeHtmlWrappedValue") to include in API
3060	// requests with the JSON null value. By default, fields with empty
3061	// values are omitted from API requests. However, any field with an
3062	// empty value appearing in NullFields will be sent to the server as
3063	// null. It is an error if a field in this list has a non-empty value.
3064	// This may be used to include null fields in Patch requests.
3065	NullFields []string `json:"-"`
3066}
3067
3068func (s *SafeHtmlProto) MarshalJSON() ([]byte, error) {
3069	type NoMethod SafeHtmlProto
3070	raw := NoMethod(*s)
3071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3072}
3073
3074type Screen struct {
3075	// FileReference: File reference of the png file. Required.
3076	FileReference string `json:"fileReference,omitempty"`
3077
3078	// Locale: Locale of the device that the screenshot was taken on.
3079	// Required.
3080	Locale string `json:"locale,omitempty"`
3081
3082	// Model: Model of the device that the screenshot was taken on.
3083	// Required.
3084	Model string `json:"model,omitempty"`
3085
3086	// Version: OS version of the device that the screenshot was taken on.
3087	// Required.
3088	Version string `json:"version,omitempty"`
3089
3090	// ForceSendFields is a list of field names (e.g. "FileReference") to
3091	// unconditionally include in API requests. By default, fields with
3092	// empty or default values are omitted from API requests. However, any
3093	// non-pointer, non-interface field appearing in ForceSendFields will be
3094	// sent to the server regardless of whether the field is empty or not.
3095	// This may be used to include empty fields in Patch requests.
3096	ForceSendFields []string `json:"-"`
3097
3098	// NullFields is a list of field names (e.g. "FileReference") to include
3099	// in API requests with the JSON null value. By default, fields with
3100	// empty values are omitted from API requests. However, any field with
3101	// an empty value appearing in NullFields will be sent to the server as
3102	// null. It is an error if a field in this list has a non-empty value.
3103	// This may be used to include null fields in Patch requests.
3104	NullFields []string `json:"-"`
3105}
3106
3107func (s *Screen) MarshalJSON() ([]byte, error) {
3108	type NoMethod Screen
3109	raw := NoMethod(*s)
3110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3111}
3112
3113type ScreenshotCluster struct {
3114	// Activity: A string that describes the activity of every screen in the
3115	// cluster.
3116	Activity string `json:"activity,omitempty"`
3117
3118	// ClusterId: A unique identifier for the cluster. @OutputOnly
3119	ClusterId string `json:"clusterId,omitempty"`
3120
3121	// KeyScreen: A singular screen that represents the cluster as a whole.
3122	// This screen will act as the "cover" of the entire cluster. When users
3123	// look at the clusters, only the key screen from each cluster will be
3124	// shown. Which screen is the key screen is determined by the
3125	// ClusteringAlgorithm
3126	KeyScreen *Screen `json:"keyScreen,omitempty"`
3127
3128	// Screens: Full list of screens.
3129	Screens []*Screen `json:"screens,omitempty"`
3130
3131	// ServerResponse contains the HTTP response code and headers from the
3132	// server.
3133	googleapi.ServerResponse `json:"-"`
3134
3135	// ForceSendFields is a list of field names (e.g. "Activity") to
3136	// unconditionally include in API requests. By default, fields with
3137	// empty or default values are omitted from API requests. However, any
3138	// non-pointer, non-interface field appearing in ForceSendFields will be
3139	// sent to the server regardless of whether the field is empty or not.
3140	// This may be used to include empty fields in Patch requests.
3141	ForceSendFields []string `json:"-"`
3142
3143	// NullFields is a list of field names (e.g. "Activity") to include in
3144	// API requests with the JSON null value. By default, fields with empty
3145	// values are omitted from API requests. However, any field with an
3146	// empty value appearing in NullFields will be sent to the server as
3147	// null. It is an error if a field in this list has a non-empty value.
3148	// This may be used to include null fields in Patch requests.
3149	NullFields []string `json:"-"`
3150}
3151
3152func (s *ScreenshotCluster) MarshalJSON() ([]byte, error) {
3153	type NoMethod ScreenshotCluster
3154	raw := NoMethod(*s)
3155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3156}
3157
3158// ShardSummary: Result summary for a shard in an environment.
3159type ShardSummary struct {
3160	// Runs: Summaries of the steps belonging to the shard. With
3161	// flaky_test_attempts enabled from TestExecutionService, more than one
3162	// run (Step) can present. And the runs will be sorted by
3163	// multistep_number.
3164	Runs []*StepSummary `json:"runs,omitempty"`
3165
3166	// ShardResult: Merged result of the shard.
3167	ShardResult *MergedResult `json:"shardResult,omitempty"`
3168
3169	// ForceSendFields is a list of field names (e.g. "Runs") to
3170	// unconditionally include in API requests. By default, fields with
3171	// empty or default values are omitted from API requests. However, any
3172	// non-pointer, non-interface field appearing in ForceSendFields will be
3173	// sent to the server regardless of whether the field is empty or not.
3174	// This may be used to include empty fields in Patch requests.
3175	ForceSendFields []string `json:"-"`
3176
3177	// NullFields is a list of field names (e.g. "Runs") to include in API
3178	// requests with the JSON null value. By default, fields with empty
3179	// values are omitted from API requests. However, any field with an
3180	// empty value appearing in NullFields will be sent to the server as
3181	// null. It is an error if a field in this list has a non-empty value.
3182	// This may be used to include null fields in Patch requests.
3183	NullFields []string `json:"-"`
3184}
3185
3186func (s *ShardSummary) MarshalJSON() ([]byte, error) {
3187	type NoMethod ShardSummary
3188	raw := NoMethod(*s)
3189	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3190}
3191
3192// SkippedDetail: Details for an outcome with a SKIPPED outcome summary.
3193type SkippedDetail struct {
3194	// IncompatibleAppVersion: If the App doesn't support the specific API
3195	// level.
3196	IncompatibleAppVersion bool `json:"incompatibleAppVersion,omitempty"`
3197
3198	// IncompatibleArchitecture: If the App doesn't run on the specific
3199	// architecture, for example, x86.
3200	IncompatibleArchitecture bool `json:"incompatibleArchitecture,omitempty"`
3201
3202	// IncompatibleDevice: If the requested OS version doesn't run on the
3203	// specific device model.
3204	IncompatibleDevice bool `json:"incompatibleDevice,omitempty"`
3205
3206	// ForceSendFields is a list of field names (e.g.
3207	// "IncompatibleAppVersion") to unconditionally include in API requests.
3208	// By default, fields with empty or default values are omitted from API
3209	// requests. However, any non-pointer, non-interface field appearing in
3210	// ForceSendFields will be sent to the server regardless of whether the
3211	// field is empty or not. This may be used to include empty fields in
3212	// Patch requests.
3213	ForceSendFields []string `json:"-"`
3214
3215	// NullFields is a list of field names (e.g. "IncompatibleAppVersion")
3216	// to include in API requests with the JSON null value. By default,
3217	// fields with empty values are omitted from API requests. However, any
3218	// field with an empty value appearing in NullFields will be sent to the
3219	// server as null. It is an error if a field in this list has a
3220	// non-empty value. This may be used to include null fields in Patch
3221	// requests.
3222	NullFields []string `json:"-"`
3223}
3224
3225func (s *SkippedDetail) MarshalJSON() ([]byte, error) {
3226	type NoMethod SkippedDetail
3227	raw := NoMethod(*s)
3228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3229}
3230
3231// Specification: The details about how to run the execution.
3232type Specification struct {
3233	// AndroidTest: An Android mobile test execution specification.
3234	AndroidTest *AndroidTest `json:"androidTest,omitempty"`
3235
3236	// IosTest: An iOS mobile test execution specification.
3237	IosTest *IosTest `json:"iosTest,omitempty"`
3238
3239	// ForceSendFields is a list of field names (e.g. "AndroidTest") to
3240	// unconditionally include in API requests. By default, fields with
3241	// empty or default values are omitted from API requests. However, any
3242	// non-pointer, non-interface field appearing in ForceSendFields will be
3243	// sent to the server regardless of whether the field is empty or not.
3244	// This may be used to include empty fields in Patch requests.
3245	ForceSendFields []string `json:"-"`
3246
3247	// NullFields is a list of field names (e.g. "AndroidTest") to include
3248	// in API requests with the JSON null value. By default, fields with
3249	// empty values are omitted from API requests. However, any field with
3250	// an empty value appearing in NullFields will be sent to the server as
3251	// null. It is an error if a field in this list has a non-empty value.
3252	// This may be used to include null fields in Patch requests.
3253	NullFields []string `json:"-"`
3254}
3255
3256func (s *Specification) MarshalJSON() ([]byte, error) {
3257	type NoMethod Specification
3258	raw := NoMethod(*s)
3259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3260}
3261
3262// StackTrace: A stacktrace.
3263type StackTrace struct {
3264	// Exception: The stack trace message. Required
3265	Exception string `json:"exception,omitempty"`
3266
3267	// ForceSendFields is a list of field names (e.g. "Exception") to
3268	// unconditionally include in API requests. By default, fields with
3269	// empty or default values are omitted from API requests. However, any
3270	// non-pointer, non-interface field appearing in ForceSendFields will be
3271	// sent to the server regardless of whether the field is empty or not.
3272	// This may be used to include empty fields in Patch requests.
3273	ForceSendFields []string `json:"-"`
3274
3275	// NullFields is a list of field names (e.g. "Exception") to include in
3276	// API requests with the JSON null value. By default, fields with empty
3277	// values are omitted from API requests. However, any field with an
3278	// empty value appearing in NullFields will be sent to the server as
3279	// null. It is an error if a field in this list has a non-empty value.
3280	// This may be used to include null fields in Patch requests.
3281	NullFields []string `json:"-"`
3282}
3283
3284func (s *StackTrace) MarshalJSON() ([]byte, error) {
3285	type NoMethod StackTrace
3286	raw := NoMethod(*s)
3287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3288}
3289
3290// StartActivityNotFound: User provided intent failed to resolve to an
3291// activity.
3292type StartActivityNotFound struct {
3293	Action string `json:"action,omitempty"`
3294
3295	Uri string `json:"uri,omitempty"`
3296
3297	// ForceSendFields is a list of field names (e.g. "Action") to
3298	// unconditionally include in API requests. By default, fields with
3299	// empty or default values are omitted from API requests. However, any
3300	// non-pointer, non-interface field appearing in ForceSendFields will be
3301	// sent to the server regardless of whether the field is empty or not.
3302	// This may be used to include empty fields in Patch requests.
3303	ForceSendFields []string `json:"-"`
3304
3305	// NullFields is a list of field names (e.g. "Action") to include in API
3306	// requests with the JSON null value. By default, fields with empty
3307	// values are omitted from API requests. However, any field with an
3308	// empty value appearing in NullFields will be sent to the server as
3309	// null. It is an error if a field in this list has a non-empty value.
3310	// This may be used to include null fields in Patch requests.
3311	NullFields []string `json:"-"`
3312}
3313
3314func (s *StartActivityNotFound) MarshalJSON() ([]byte, error) {
3315	type NoMethod StartActivityNotFound
3316	raw := NoMethod(*s)
3317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3318}
3319
3320// Status: The `Status` type defines a logical error model that is
3321// suitable for different programming environments, including REST APIs
3322// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
3323// `Status` message contains three pieces of data: error code, error
3324// message, and error details. You can find out more about this error
3325// model and how to work with it in the API Design Guide
3326// (https://cloud.google.com/apis/design/errors).
3327type Status struct {
3328	// Code: The status code, which should be an enum value of
3329	// google.rpc.Code.
3330	Code int64 `json:"code,omitempty"`
3331
3332	// Details: A list of messages that carry the error details. There is a
3333	// common set of message types for APIs to use.
3334	Details []googleapi.RawMessage `json:"details,omitempty"`
3335
3336	// Message: A developer-facing error message, which should be in
3337	// English. Any user-facing error message should be localized and sent
3338	// in the google.rpc.Status.details field, or localized by the client.
3339	Message string `json:"message,omitempty"`
3340
3341	// ForceSendFields is a list of field names (e.g. "Code") to
3342	// unconditionally include in API requests. By default, fields with
3343	// empty or default values are omitted from API requests. However, any
3344	// non-pointer, non-interface field appearing in ForceSendFields will be
3345	// sent to the server regardless of whether the field is empty or not.
3346	// This may be used to include empty fields in Patch requests.
3347	ForceSendFields []string `json:"-"`
3348
3349	// NullFields is a list of field names (e.g. "Code") to include in API
3350	// requests with the JSON null value. By default, fields with empty
3351	// values are omitted from API requests. However, any field with an
3352	// empty value appearing in NullFields will be sent to the server as
3353	// null. It is an error if a field in this list has a non-empty value.
3354	// This may be used to include null fields in Patch requests.
3355	NullFields []string `json:"-"`
3356}
3357
3358func (s *Status) MarshalJSON() ([]byte, error) {
3359	type NoMethod Status
3360	raw := NoMethod(*s)
3361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3362}
3363
3364// Step: A Step represents a single operation performed as part of
3365// Execution. A step can be used to represent the execution of a tool (
3366// for example a test runner execution or an execution of a compiler).
3367// Steps can overlap (for instance two steps might have the same start
3368// time if some operations are done in parallel). Here is an example,
3369// let's consider that we have a continuous build is executing a test
3370// runner for each iteration. The workflow would look like: - user
3371// creates a Execution with id 1 - user creates an TestExecutionStep
3372// with id 100 for Execution 1 - user update TestExecutionStep with id
3373// 100 to add a raw xml log + the service parses the xml logs and
3374// returns a TestExecutionStep with updated TestResult(s). - user update
3375// the status of TestExecutionStep with id 100 to COMPLETE A Step can be
3376// updated until its state is set to COMPLETE at which points it becomes
3377// immutable. Next tag: 27
3378type Step struct {
3379	// CompletionTime: The time when the step status was set to complete.
3380	// This value will be set automatically when state transitions to
3381	// COMPLETE. - In response: set if the execution state is COMPLETE. - In
3382	// create/update request: never set
3383	CompletionTime *Timestamp `json:"completionTime,omitempty"`
3384
3385	// CreationTime: The time when the step was created. - In response:
3386	// always set - In create/update request: never set
3387	CreationTime *Timestamp `json:"creationTime,omitempty"`
3388
3389	// Description: A description of this tool For example: mvn clean
3390	// package -D skipTests=true - In response: present if set by
3391	// create/update request - In create/update request: optional
3392	Description string `json:"description,omitempty"`
3393
3394	// DeviceUsageDuration: How much the device resource is used to perform
3395	// the test. This is the device usage used for billing purpose, which is
3396	// different from the run_duration, for example, infrastructure failure
3397	// won't be charged for device usage. PRECONDITION_FAILED will be
3398	// returned if one attempts to set a device_usage on a step which
3399	// already has this field set. - In response: present if previously set.
3400	// - In create request: optional - In update request: optional
3401	DeviceUsageDuration *Duration `json:"deviceUsageDuration,omitempty"`
3402
3403	// DimensionValue: If the execution containing this step has any
3404	// dimension_definition set, then this field allows the child to specify
3405	// the values of the dimensions. The keys must exactly match the
3406	// dimension_definition of the execution. For example, if the execution
3407	// has `dimension_definition = ['attempt', 'device']` then a step must
3408	// define values for those dimensions, eg. `dimension_value =
3409	// ['attempt': '1', 'device': 'Nexus 6']` If a step does not participate
3410	// in one dimension of the matrix, the value for that dimension should
3411	// be empty string. For example, if one of the tests is executed by a
3412	// runner which does not support retries, the step could have
3413	// `dimension_value = ['attempt': '', 'device': 'Nexus 6']` If the step
3414	// does not participate in any dimensions of the matrix, it may leave
3415	// dimension_value unset. A PRECONDITION_FAILED will be returned if any
3416	// of the keys do not exist in the dimension_definition of the
3417	// execution. A PRECONDITION_FAILED will be returned if another step in
3418	// this execution already has the same name and dimension_value, but
3419	// differs on other data fields, for example, step field is different. A
3420	// PRECONDITION_FAILED will be returned if dimension_value is set, and
3421	// there is a dimension_definition in the execution which is not
3422	// specified as one of the keys. - In response: present if set by create
3423	// - In create request: optional - In update request: never set
3424	DimensionValue []*StepDimensionValueEntry `json:"dimensionValue,omitempty"`
3425
3426	// HasImages: Whether any of the outputs of this step are images whose
3427	// thumbnails can be fetched with ListThumbnails. - In response: always
3428	// set - In create/update request: never set
3429	HasImages bool `json:"hasImages,omitempty"`
3430
3431	// Labels: Arbitrary user-supplied key/value pairs that are associated
3432	// with the step. Users are responsible for managing the key namespace
3433	// such that keys don't accidentally collide. An INVALID_ARGUMENT will
3434	// be returned if the number of labels exceeds 100 or if the length of
3435	// any of the keys or values exceeds 100 characters. - In response:
3436	// always set - In create request: optional - In update request:
3437	// optional; any new key/value pair will be added to the map, and any
3438	// new value for an existing key will update that key's value
3439	Labels []*StepLabelsEntry `json:"labels,omitempty"`
3440
3441	// MultiStep: Details when multiple steps are run with the same
3442	// configuration as a group. These details can be used identify which
3443	// group this step is part of. It also identifies the groups 'primary
3444	// step' which indexes all the group members. - In response: present if
3445	// previously set. - In create request: optional, set iff this step was
3446	// performed more than once. - In update request: optional
3447	MultiStep *MultiStep `json:"multiStep,omitempty"`
3448
3449	// Name: A short human-readable name to display in the UI. Maximum of
3450	// 100 characters. For example: Clean build A PRECONDITION_FAILED will
3451	// be returned upon creating a new step if it shares its name and
3452	// dimension_value with an existing step. If two steps represent a
3453	// similar action, but have different dimension values, they should
3454	// share the same name. For instance, if the same set of tests is run on
3455	// two different platforms, the two steps should have the same name. -
3456	// In response: always set - In create request: always set - In update
3457	// request: never set
3458	Name string `json:"name,omitempty"`
3459
3460	// Outcome: Classification of the result, for example into SUCCESS or
3461	// FAILURE - In response: present if set by create/update request - In
3462	// create/update request: optional
3463	Outcome *Outcome `json:"outcome,omitempty"`
3464
3465	// RunDuration: How long it took for this step to run. If unset, this is
3466	// set to the difference between creation_time and completion_time when
3467	// the step is set to the COMPLETE state. In some cases, it is
3468	// appropriate to set this value separately: For instance, if a step is
3469	// created, but the operation it represents is queued for a few minutes
3470	// before it executes, it would be appropriate not to include the time
3471	// spent queued in its run_duration. PRECONDITION_FAILED will be
3472	// returned if one attempts to set a run_duration on a step which
3473	// already has this field set. - In response: present if previously set;
3474	// always present on COMPLETE step - In create request: optional - In
3475	// update request: optional
3476	RunDuration *Duration `json:"runDuration,omitempty"`
3477
3478	// State: The initial state is IN_PROGRESS. The only legal state
3479	// transitions are * IN_PROGRESS -> COMPLETE A PRECONDITION_FAILED will
3480	// be returned if an invalid transition is requested. It is valid to
3481	// create Step with a state set to COMPLETE. The state can only be set
3482	// to COMPLETE once. A PRECONDITION_FAILED will be returned if the state
3483	// is set to COMPLETE multiple times. - In response: always set - In
3484	// create/update request: optional
3485	//
3486	// Possible values:
3487	//   "unknownState" - Should never be in this state. Exists for proto
3488	// deserialization backward compatibility.
3489	//   "pending" - The Execution/Step is created, ready to run, but not
3490	// running yet. If an Execution/Step is created without initial state,
3491	// it is assumed that the Execution/Step is in PENDING state.
3492	//   "inProgress" - The Execution/Step is in progress.
3493	//   "complete" - The finalized, immutable state. Steps/Executions in
3494	// this state cannot be modified.
3495	State string `json:"state,omitempty"`
3496
3497	// StepId: A unique identifier within a Execution for this Step. Returns
3498	// INVALID_ARGUMENT if this field is set or overwritten by the caller. -
3499	// In response: always set - In create/update request: never set
3500	StepId string `json:"stepId,omitempty"`
3501
3502	// TestExecutionStep: An execution of a test runner.
3503	TestExecutionStep *TestExecutionStep `json:"testExecutionStep,omitempty"`
3504
3505	// ToolExecutionStep: An execution of a tool (used for steps we don't
3506	// explicitly support).
3507	ToolExecutionStep *ToolExecutionStep `json:"toolExecutionStep,omitempty"`
3508
3509	// ServerResponse contains the HTTP response code and headers from the
3510	// server.
3511	googleapi.ServerResponse `json:"-"`
3512
3513	// ForceSendFields is a list of field names (e.g. "CompletionTime") to
3514	// unconditionally include in API requests. By default, fields with
3515	// empty or default values are omitted from API requests. However, any
3516	// non-pointer, non-interface field appearing in ForceSendFields will be
3517	// sent to the server regardless of whether the field is empty or not.
3518	// This may be used to include empty fields in Patch requests.
3519	ForceSendFields []string `json:"-"`
3520
3521	// NullFields is a list of field names (e.g. "CompletionTime") to
3522	// include in API requests with the JSON null value. By default, fields
3523	// with empty values are omitted from API requests. However, any field
3524	// with an empty value appearing in NullFields will be sent to the
3525	// server as null. It is an error if a field in this list has a
3526	// non-empty value. This may be used to include null fields in Patch
3527	// requests.
3528	NullFields []string `json:"-"`
3529}
3530
3531func (s *Step) MarshalJSON() ([]byte, error) {
3532	type NoMethod Step
3533	raw := NoMethod(*s)
3534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3535}
3536
3537type StepDimensionValueEntry struct {
3538	Key string `json:"key,omitempty"`
3539
3540	Value string `json:"value,omitempty"`
3541
3542	// ForceSendFields is a list of field names (e.g. "Key") to
3543	// unconditionally include in API requests. By default, fields with
3544	// empty or default values are omitted from API requests. However, any
3545	// non-pointer, non-interface field appearing in ForceSendFields will be
3546	// sent to the server regardless of whether the field is empty or not.
3547	// This may be used to include empty fields in Patch requests.
3548	ForceSendFields []string `json:"-"`
3549
3550	// NullFields is a list of field names (e.g. "Key") to include in API
3551	// requests with the JSON null value. By default, fields with empty
3552	// values are omitted from API requests. However, any field with an
3553	// empty value appearing in NullFields will be sent to the server as
3554	// null. It is an error if a field in this list has a non-empty value.
3555	// This may be used to include null fields in Patch requests.
3556	NullFields []string `json:"-"`
3557}
3558
3559func (s *StepDimensionValueEntry) MarshalJSON() ([]byte, error) {
3560	type NoMethod StepDimensionValueEntry
3561	raw := NoMethod(*s)
3562	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3563}
3564
3565type StepLabelsEntry struct {
3566	Key string `json:"key,omitempty"`
3567
3568	Value string `json:"value,omitempty"`
3569
3570	// ForceSendFields is a list of field names (e.g. "Key") to
3571	// unconditionally include in API requests. By default, fields with
3572	// empty or default values are omitted from API requests. However, any
3573	// non-pointer, non-interface field appearing in ForceSendFields will be
3574	// sent to the server regardless of whether the field is empty or not.
3575	// This may be used to include empty fields in Patch requests.
3576	ForceSendFields []string `json:"-"`
3577
3578	// NullFields is a list of field names (e.g. "Key") to include in API
3579	// requests with the JSON null value. By default, fields with empty
3580	// values are omitted from API requests. However, any field with an
3581	// empty value appearing in NullFields will be sent to the server as
3582	// null. It is an error if a field in this list has a non-empty value.
3583	// This may be used to include null fields in Patch requests.
3584	NullFields []string `json:"-"`
3585}
3586
3587func (s *StepLabelsEntry) MarshalJSON() ([]byte, error) {
3588	type NoMethod StepLabelsEntry
3589	raw := NoMethod(*s)
3590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3591}
3592
3593// StepSummary: Lightweight summary of a step within this execution.
3594type StepSummary struct {
3595}
3596
3597// SuccessDetail: Details for an outcome with a SUCCESS outcome summary.
3598// LINT.IfChange
3599type SuccessDetail struct {
3600	// OtherNativeCrash: If a native process other than the app crashed.
3601	OtherNativeCrash bool `json:"otherNativeCrash,omitempty"`
3602
3603	// ForceSendFields is a list of field names (e.g. "OtherNativeCrash") to
3604	// unconditionally include in API requests. By default, fields with
3605	// empty or default values are omitted from API requests. However, any
3606	// non-pointer, non-interface field appearing in ForceSendFields will be
3607	// sent to the server regardless of whether the field is empty or not.
3608	// This may be used to include empty fields in Patch requests.
3609	ForceSendFields []string `json:"-"`
3610
3611	// NullFields is a list of field names (e.g. "OtherNativeCrash") to
3612	// include in API requests with the JSON null value. By default, fields
3613	// with empty values are omitted from API requests. However, any field
3614	// with an empty value appearing in NullFields will be sent to the
3615	// server as null. It is an error if a field in this list has a
3616	// non-empty value. This may be used to include null fields in Patch
3617	// requests.
3618	NullFields []string `json:"-"`
3619}
3620
3621func (s *SuccessDetail) MarshalJSON() ([]byte, error) {
3622	type NoMethod SuccessDetail
3623	raw := NoMethod(*s)
3624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3625}
3626
3627// SuggestionClusterProto: A set of similar suggestions that we suspect
3628// are closely related. This proto and most of the nested protos are
3629// branched from
3630// foxandcrown.prelaunchreport.service.SuggestionClusterProto, replacing
3631// PLR's dependencies with FTL's.
3632type SuggestionClusterProto struct {
3633	// Category: Category in which these types of suggestions should appear.
3634	// Always set.
3635	//
3636	// Possible values:
3637	//   "unknownCategory"
3638	//   "contentLabeling"
3639	//   "touchTargetSize"
3640	//   "lowContrast"
3641	//   "implementation"
3642	Category string `json:"category,omitempty"`
3643
3644	// Suggestions: A sequence of suggestions. All of the suggestions within
3645	// a cluster must have the same SuggestionPriority and belong to the
3646	// same SuggestionCategory. Suggestions with the same screenshot URL
3647	// should be adjacent.
3648	Suggestions []*SuggestionProto `json:"suggestions,omitempty"`
3649
3650	// ForceSendFields is a list of field names (e.g. "Category") to
3651	// unconditionally include in API requests. By default, fields with
3652	// empty or default values are omitted from API requests. However, any
3653	// non-pointer, non-interface field appearing in ForceSendFields will be
3654	// sent to the server regardless of whether the field is empty or not.
3655	// This may be used to include empty fields in Patch requests.
3656	ForceSendFields []string `json:"-"`
3657
3658	// NullFields is a list of field names (e.g. "Category") to include in
3659	// API requests with the JSON null value. By default, fields with empty
3660	// values are omitted from API requests. However, any field with an
3661	// empty value appearing in NullFields will be sent to the server as
3662	// null. It is an error if a field in this list has a non-empty value.
3663	// This may be used to include null fields in Patch requests.
3664	NullFields []string `json:"-"`
3665}
3666
3667func (s *SuggestionClusterProto) MarshalJSON() ([]byte, error) {
3668	type NoMethod SuggestionClusterProto
3669	raw := NoMethod(*s)
3670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3671}
3672
3673type SuggestionProto struct {
3674	// HelpUrl: Reference to a help center article concerning this type of
3675	// suggestion. Always set.
3676	HelpUrl string `json:"helpUrl,omitempty"`
3677
3678	// LongMessage: Message, in the user's language, explaining the
3679	// suggestion, which may contain markup. Always set.
3680	LongMessage *SafeHtmlProto `json:"longMessage,omitempty"`
3681
3682	// Priority: Relative importance of a suggestion. Always set.
3683	//
3684	// Possible values:
3685	//   "unknownPriority"
3686	//   "error"
3687	//   "warning"
3688	//   "info"
3689	Priority string `json:"priority,omitempty"`
3690
3691	// PseudoResourceId: A somewhat human readable identifier of the source
3692	// view, if it does not have a resource_name. This is a path within the
3693	// accessibility hierarchy, an element with resource name; similar to an
3694	// XPath.
3695	PseudoResourceId string `json:"pseudoResourceId,omitempty"`
3696
3697	// Region: Region within the screenshot that is relevant to this
3698	// suggestion. Optional.
3699	Region *RegionProto `json:"region,omitempty"`
3700
3701	// ResourceName: Reference to a view element, identified by its resource
3702	// name, if it has one.
3703	ResourceName string `json:"resourceName,omitempty"`
3704
3705	// ScreenId: ID of the screen for the suggestion. It is used for getting
3706	// the corresponding screenshot path. For example, screen_id "1"
3707	// corresponds to "1.png" file in GCS. Always set.
3708	ScreenId string `json:"screenId,omitempty"`
3709
3710	// SecondaryPriority: Relative importance of a suggestion as compared
3711	// with other suggestions that have the same priority and category. This
3712	// is a meaningless value that can be used to order suggestions that are
3713	// in the same category and have the same priority. The larger values
3714	// have higher priority (i.e., are more important). Optional.
3715	SecondaryPriority float64 `json:"secondaryPriority,omitempty"`
3716
3717	// ShortMessage: Concise message, in the user's language, representing
3718	// the suggestion, which may contain markup. Always set.
3719	ShortMessage *SafeHtmlProto `json:"shortMessage,omitempty"`
3720
3721	// Title: General title for the suggestion, in the user's language,
3722	// without markup. Always set.
3723	Title string `json:"title,omitempty"`
3724
3725	// ForceSendFields is a list of field names (e.g. "HelpUrl") to
3726	// unconditionally include in API requests. By default, fields with
3727	// empty or default values are omitted from API requests. However, any
3728	// non-pointer, non-interface field appearing in ForceSendFields will be
3729	// sent to the server regardless of whether the field is empty or not.
3730	// This may be used to include empty fields in Patch requests.
3731	ForceSendFields []string `json:"-"`
3732
3733	// NullFields is a list of field names (e.g. "HelpUrl") to include in
3734	// API requests with the JSON null value. By default, fields with empty
3735	// values are omitted from API requests. However, any field with an
3736	// empty value appearing in NullFields will be sent to the server as
3737	// null. It is an error if a field in this list has a non-empty value.
3738	// This may be used to include null fields in Patch requests.
3739	NullFields []string `json:"-"`
3740}
3741
3742func (s *SuggestionProto) MarshalJSON() ([]byte, error) {
3743	type NoMethod SuggestionProto
3744	raw := NoMethod(*s)
3745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3746}
3747
3748func (s *SuggestionProto) UnmarshalJSON(data []byte) error {
3749	type NoMethod SuggestionProto
3750	var s1 struct {
3751		SecondaryPriority gensupport.JSONFloat64 `json:"secondaryPriority"`
3752		*NoMethod
3753	}
3754	s1.NoMethod = (*NoMethod)(s)
3755	if err := json.Unmarshal(data, &s1); err != nil {
3756		return err
3757	}
3758	s.SecondaryPriority = float64(s1.SecondaryPriority)
3759	return nil
3760}
3761
3762type TestCase struct {
3763	// ElapsedTime: The elapsed run time of the test case. Required.
3764	ElapsedTime *Duration `json:"elapsedTime,omitempty"`
3765
3766	// EndTime: The end time of the test case.
3767	EndTime *Timestamp `json:"endTime,omitempty"`
3768
3769	// SkippedMessage: Why the test case was skipped. Present only for
3770	// skipped test case
3771	SkippedMessage string `json:"skippedMessage,omitempty"`
3772
3773	// StackTraces: The stack trace details if the test case failed or
3774	// encountered an error. The maximum size of the stack traces is 100KiB,
3775	// beyond which the stack track will be truncated. Zero if the test case
3776	// passed.
3777	StackTraces []*StackTrace `json:"stackTraces,omitempty"`
3778
3779	// StartTime: The start time of the test case.
3780	StartTime *Timestamp `json:"startTime,omitempty"`
3781
3782	// Status: The status of the test case. Required.
3783	//
3784	// Possible values:
3785	//   "passed" - Test passed.
3786	//   "failed" - Test failed.
3787	//   "error" - Test encountered an error
3788	//   "skipped" - Test skipped
3789	//   "flaky" - Test flaked. Present only for rollup test cases; test
3790	// cases from steps that were run with the same configuration had both
3791	// failure and success outcomes.
3792	Status string `json:"status,omitempty"`
3793
3794	// TestCaseId: A unique identifier within a Step for this Test Case.
3795	TestCaseId string `json:"testCaseId,omitempty"`
3796
3797	// TestCaseReference: Test case reference, e.g. name, class name and
3798	// test suite name. Required.
3799	TestCaseReference *TestCaseReference `json:"testCaseReference,omitempty"`
3800
3801	// ToolOutputs: References to opaque files of any format output by the
3802	// tool execution. @OutputOnly
3803	ToolOutputs []*ToolOutputReference `json:"toolOutputs,omitempty"`
3804
3805	// ServerResponse contains the HTTP response code and headers from the
3806	// server.
3807	googleapi.ServerResponse `json:"-"`
3808
3809	// ForceSendFields is a list of field names (e.g. "ElapsedTime") to
3810	// unconditionally include in API requests. By default, fields with
3811	// empty or default values are omitted from API requests. However, any
3812	// non-pointer, non-interface field appearing in ForceSendFields will be
3813	// sent to the server regardless of whether the field is empty or not.
3814	// This may be used to include empty fields in Patch requests.
3815	ForceSendFields []string `json:"-"`
3816
3817	// NullFields is a list of field names (e.g. "ElapsedTime") to include
3818	// in API requests with the JSON null value. By default, fields with
3819	// empty values are omitted from API requests. However, any field with
3820	// an empty value appearing in NullFields will be sent to the server as
3821	// null. It is an error if a field in this list has a non-empty value.
3822	// This may be used to include null fields in Patch requests.
3823	NullFields []string `json:"-"`
3824}
3825
3826func (s *TestCase) MarshalJSON() ([]byte, error) {
3827	type NoMethod TestCase
3828	raw := NoMethod(*s)
3829	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3830}
3831
3832// TestCaseReference: A reference to a test case. Test case references
3833// are canonically ordered lexicographically by these three factors: *
3834// First, by test_suite_name. * Second, by class_name. * Third, by name.
3835type TestCaseReference struct {
3836	// ClassName: The name of the class.
3837	ClassName string `json:"className,omitempty"`
3838
3839	// Name: The name of the test case. Required.
3840	Name string `json:"name,omitempty"`
3841
3842	// TestSuiteName: The name of the test suite to which this test case
3843	// belongs.
3844	TestSuiteName string `json:"testSuiteName,omitempty"`
3845
3846	// ForceSendFields is a list of field names (e.g. "ClassName") to
3847	// unconditionally include in API requests. By default, fields with
3848	// empty or default values are omitted from API requests. However, any
3849	// non-pointer, non-interface field appearing in ForceSendFields will be
3850	// sent to the server regardless of whether the field is empty or not.
3851	// This may be used to include empty fields in Patch requests.
3852	ForceSendFields []string `json:"-"`
3853
3854	// NullFields is a list of field names (e.g. "ClassName") to include in
3855	// API requests with the JSON null value. By default, fields with empty
3856	// values are omitted from API requests. However, any field with an
3857	// empty value appearing in NullFields will be sent to the server as
3858	// null. It is an error if a field in this list has a non-empty value.
3859	// This may be used to include null fields in Patch requests.
3860	NullFields []string `json:"-"`
3861}
3862
3863func (s *TestCaseReference) MarshalJSON() ([]byte, error) {
3864	type NoMethod TestCaseReference
3865	raw := NoMethod(*s)
3866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3867}
3868
3869// TestExecutionStep: A step that represents running tests. It accepts
3870// ant-junit xml files which will be parsed into structured test results
3871// by the service. Xml file paths are updated in order to append more
3872// files, however they can't be deleted. Users can also add test results
3873// manually by using the test_result field.
3874type TestExecutionStep struct {
3875	// TestIssues: Issues observed during the test execution. For example,
3876	// if the mobile app under test crashed during the test, the error
3877	// message and the stack trace content can be recorded here to assist
3878	// debugging. - In response: present if set by create or update - In
3879	// create/update request: optional
3880	TestIssues []*TestIssue `json:"testIssues,omitempty"`
3881
3882	// TestSuiteOverviews: List of test suite overview contents. This could
3883	// be parsed from xUnit XML log by server, or uploaded directly by user.
3884	// This references should only be called when test suites are fully
3885	// parsed or uploaded. The maximum allowed number of test suite
3886	// overviews per step is 1000. - In response: always set - In create
3887	// request: optional - In update request: never (use
3888	// publishXunitXmlFiles custom method instead)
3889	TestSuiteOverviews []*TestSuiteOverview `json:"testSuiteOverviews,omitempty"`
3890
3891	// TestTiming: The timing break down of the test execution. - In
3892	// response: present if set by create or update - In create/update
3893	// request: optional
3894	TestTiming *TestTiming `json:"testTiming,omitempty"`
3895
3896	// ToolExecution: Represents the execution of the test runner. The exit
3897	// code of this tool will be used to determine if the test passed. - In
3898	// response: always set - In create/update request: optional
3899	ToolExecution *ToolExecution `json:"toolExecution,omitempty"`
3900
3901	// ForceSendFields is a list of field names (e.g. "TestIssues") to
3902	// unconditionally include in API requests. By default, fields with
3903	// empty or default values are omitted from API requests. However, any
3904	// non-pointer, non-interface field appearing in ForceSendFields will be
3905	// sent to the server regardless of whether the field is empty or not.
3906	// This may be used to include empty fields in Patch requests.
3907	ForceSendFields []string `json:"-"`
3908
3909	// NullFields is a list of field names (e.g. "TestIssues") to include in
3910	// API requests with the JSON null value. By default, fields with empty
3911	// values are omitted from API requests. However, any field with an
3912	// empty value appearing in NullFields will be sent to the server as
3913	// null. It is an error if a field in this list has a non-empty value.
3914	// This may be used to include null fields in Patch requests.
3915	NullFields []string `json:"-"`
3916}
3917
3918func (s *TestExecutionStep) MarshalJSON() ([]byte, error) {
3919	type NoMethod TestExecutionStep
3920	raw := NoMethod(*s)
3921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3922}
3923
3924// TestIssue: An issue detected occurring during a test execution.
3925type TestIssue struct {
3926	// Category: Category of issue. Required.
3927	//
3928	// Possible values:
3929	//   "unspecifiedCategory" - Default unspecified category. Do not use.
3930	// For versioning only.
3931	//   "common" - Issue is not specific to a particular test kind (e.g., a
3932	// native crash).
3933	//   "robo" - Issue is specific to Robo run.
3934	Category string `json:"category,omitempty"`
3935
3936	// ErrorMessage: A brief human-readable message describing the issue.
3937	// Required.
3938	ErrorMessage string `json:"errorMessage,omitempty"`
3939
3940	// Severity: Severity of issue. Required.
3941	//
3942	// Possible values:
3943	//   "unspecifiedSeverity" - Default unspecified severity. Do not use.
3944	// For versioning only.
3945	//   "info" - Non critical issue, providing users with some info about
3946	// the test run.
3947	//   "suggestion" - Non critical issue, providing users with some hints
3948	// on improving their testing experience, e.g., suggesting to use Game
3949	// Loops.
3950	//   "warning" - Potentially critical issue.
3951	//   "severe" - Critical issue.
3952	Severity string `json:"severity,omitempty"`
3953
3954	// StackTrace: Deprecated in favor of stack trace fields inside specific
3955	// warnings.
3956	StackTrace *StackTrace `json:"stackTrace,omitempty"`
3957
3958	// Type: Type of issue. Required.
3959	//
3960	// Possible values:
3961	//   "unspecifiedType" - Default unspecified type. Do not use. For
3962	// versioning only.
3963	//   "fatalException" - Issue is a fatal exception.
3964	//   "nativeCrash" - Issue is a native crash.
3965	//   "anr" - Issue is an ANR crash.
3966	//   "unusedRoboDirective" - Issue is an unused robo directive.
3967	//   "compatibleWithOrchestrator" - Issue is a suggestion to use
3968	// orchestrator.
3969	//   "launcherActivityNotFound" - Issue with finding a launcher activity
3970	//   "startActivityNotFound" - Issue with resolving a user-provided
3971	// intent to start an activity
3972	//   "incompleteRoboScriptExecution" - A Robo script was not fully
3973	// executed.
3974	//   "completeRoboScriptExecution" - A Robo script was fully and
3975	// successfully executed.
3976	//   "failedToInstall" - The APK failed to install.
3977	//   "availableDeepLinks" - The app-under-test has deep links, but none
3978	// were provided to Robo.
3979	//   "nonSdkApiUsageViolation" - App accessed a non-sdk Api.
3980	//   "nonSdkApiUsageReport" - App accessed a non-sdk Api (new detailed
3981	// report)
3982	//   "encounteredNonAndroidUiWidgetScreen" - Robo crawl encountered at
3983	// least one screen with elements that are not Android UI widgets.
3984	//   "encounteredLoginScreen" - Robo crawl encountered at least one
3985	// probable login screen.
3986	//   "performedGoogleLogin" - Robo signed in with Google.
3987	//   "iosException" - iOS App crashed with an exception.
3988	//   "iosCrash" - iOS App crashed without an exception (e.g. killed).
3989	//   "performedMonkeyActions" - Robo crawl involved performing some
3990	// monkey actions.
3991	//   "usedRoboDirective" - Robo crawl used a Robo directive.
3992	//   "usedRoboIgnoreDirective" - Robo crawl used a Robo directive to
3993	// ignore an UI element.
3994	//   "insufficientCoverage" - Robo did not crawl some potentially
3995	// important parts of the app.
3996	//   "inAppPurchases" - Robo crawl involved some in-app purchases.
3997	//   "crashDialogError" - Crash dialog was detected during the test
3998	// execution
3999	//   "uiElementsTooDeep" - UI element depth is greater than the
4000	// threshold
4001	//   "blankScreen" - Blank screen is found in the Robo crawl
4002	//   "overlappingUiElements" - Overlapping UI elements are found in the
4003	// Robo crawl
4004	//   "unityException" - An uncaught Unity exception was detected (these
4005	// don't crash apps).
4006	//   "deviceOutOfMemory" - Device running out of memory was detected
4007	//   "logcatCollectionError" - Problems detected while collecting logcat
4008	Type string `json:"type,omitempty"`
4009
4010	// Warning: Warning message with additional details of the issue. Should
4011	// always be a message from com.google.devtools.toolresults.v1.warnings
4012	Warning *Any `json:"warning,omitempty"`
4013
4014	// ForceSendFields is a list of field names (e.g. "Category") to
4015	// unconditionally include in API requests. By default, fields with
4016	// empty or default values are omitted from API requests. However, any
4017	// non-pointer, non-interface field appearing in ForceSendFields will be
4018	// sent to the server regardless of whether the field is empty or not.
4019	// This may be used to include empty fields in Patch requests.
4020	ForceSendFields []string `json:"-"`
4021
4022	// NullFields is a list of field names (e.g. "Category") to include in
4023	// API requests with the JSON null value. By default, fields with empty
4024	// values are omitted from API requests. However, any field with an
4025	// empty value appearing in NullFields will be sent to the server as
4026	// null. It is an error if a field in this list has a non-empty value.
4027	// This may be used to include null fields in Patch requests.
4028	NullFields []string `json:"-"`
4029}
4030
4031func (s *TestIssue) MarshalJSON() ([]byte, error) {
4032	type NoMethod TestIssue
4033	raw := NoMethod(*s)
4034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4035}
4036
4037// TestSuiteOverview: A summary of a test suite result either parsed
4038// from XML or uploaded directly by a user. Note: the API related
4039// comments are for StepService only. This message is also being used in
4040// ExecutionService in a read only mode for the corresponding step.
4041type TestSuiteOverview struct {
4042	// ElapsedTime: Elapsed time of test suite.
4043	ElapsedTime *Duration `json:"elapsedTime,omitempty"`
4044
4045	// ErrorCount: Number of test cases in error, typically set by the
4046	// service by parsing the xml_source. - In create/response: always set -
4047	// In update request: never
4048	ErrorCount int64 `json:"errorCount,omitempty"`
4049
4050	// FailureCount: Number of failed test cases, typically set by the
4051	// service by parsing the xml_source. May also be set by the user. - In
4052	// create/response: always set - In update request: never
4053	FailureCount int64 `json:"failureCount,omitempty"`
4054
4055	// FlakyCount: Number of flaky test cases, set by the service by rolling
4056	// up flaky test attempts. Present only for rollup test suite overview
4057	// at environment level. A step cannot have flaky test cases.
4058	FlakyCount int64 `json:"flakyCount,omitempty"`
4059
4060	// Name: The name of the test suite. - In create/response: always set -
4061	// In update request: never
4062	Name string `json:"name,omitempty"`
4063
4064	// SkippedCount: Number of test cases not run, typically set by the
4065	// service by parsing the xml_source. - In create/response: always set -
4066	// In update request: never
4067	SkippedCount int64 `json:"skippedCount,omitempty"`
4068
4069	// TotalCount: Number of test cases, typically set by the service by
4070	// parsing the xml_source. - In create/response: always set - In update
4071	// request: never
4072	TotalCount int64 `json:"totalCount,omitempty"`
4073
4074	// XmlSource: If this test suite was parsed from XML, this is the URI
4075	// where the original XML file is stored. Note: Multiple test suites can
4076	// share the same xml_source Returns INVALID_ARGUMENT if the uri format
4077	// is not supported. - In create/response: optional - In update request:
4078	// never
4079	XmlSource *FileReference `json:"xmlSource,omitempty"`
4080
4081	// ForceSendFields is a list of field names (e.g. "ElapsedTime") to
4082	// unconditionally include in API requests. By default, fields with
4083	// empty or default values are omitted from API requests. However, any
4084	// non-pointer, non-interface field appearing in ForceSendFields will be
4085	// sent to the server regardless of whether the field is empty or not.
4086	// This may be used to include empty fields in Patch requests.
4087	ForceSendFields []string `json:"-"`
4088
4089	// NullFields is a list of field names (e.g. "ElapsedTime") to include
4090	// in API requests with the JSON null value. By default, fields with
4091	// empty values are omitted from API requests. However, any field with
4092	// an empty value appearing in NullFields will be sent to the server as
4093	// null. It is an error if a field in this list has a non-empty value.
4094	// This may be used to include null fields in Patch requests.
4095	NullFields []string `json:"-"`
4096}
4097
4098func (s *TestSuiteOverview) MarshalJSON() ([]byte, error) {
4099	type NoMethod TestSuiteOverview
4100	raw := NoMethod(*s)
4101	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4102}
4103
4104// TestTiming: Testing timing break down to know phases.
4105type TestTiming struct {
4106	// TestProcessDuration: How long it took to run the test process. - In
4107	// response: present if previously set. - In create/update request:
4108	// optional
4109	TestProcessDuration *Duration `json:"testProcessDuration,omitempty"`
4110
4111	// ForceSendFields is a list of field names (e.g. "TestProcessDuration")
4112	// to unconditionally include in API requests. By default, fields with
4113	// empty or default values are omitted from API requests. However, any
4114	// non-pointer, non-interface field appearing in ForceSendFields will be
4115	// sent to the server regardless of whether the field is empty or not.
4116	// This may be used to include empty fields in Patch requests.
4117	ForceSendFields []string `json:"-"`
4118
4119	// NullFields is a list of field names (e.g. "TestProcessDuration") to
4120	// include in API requests with the JSON null value. By default, fields
4121	// with empty values are omitted from API requests. However, any field
4122	// with an empty value appearing in NullFields will be sent to the
4123	// server as null. It is an error if a field in this list has a
4124	// non-empty value. This may be used to include null fields in Patch
4125	// requests.
4126	NullFields []string `json:"-"`
4127}
4128
4129func (s *TestTiming) MarshalJSON() ([]byte, error) {
4130	type NoMethod TestTiming
4131	raw := NoMethod(*s)
4132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4133}
4134
4135// Thumbnail: A single thumbnail, with its size and format.
4136type Thumbnail struct {
4137	// ContentType: The thumbnail's content type, i.e. "image/png". Always
4138	// set.
4139	ContentType string `json:"contentType,omitempty"`
4140
4141	// Data: The thumbnail file itself. That is, the bytes here are
4142	// precisely the bytes that make up the thumbnail file; they can be
4143	// served as an image as-is (with the appropriate content type.) Always
4144	// set.
4145	Data string `json:"data,omitempty"`
4146
4147	// HeightPx: The height of the thumbnail, in pixels. Always set.
4148	HeightPx int64 `json:"heightPx,omitempty"`
4149
4150	// WidthPx: The width of the thumbnail, in pixels. Always set.
4151	WidthPx int64 `json:"widthPx,omitempty"`
4152
4153	// ForceSendFields is a list of field names (e.g. "ContentType") to
4154	// unconditionally include in API requests. By default, fields with
4155	// empty or default values are omitted from API requests. However, any
4156	// non-pointer, non-interface field appearing in ForceSendFields will be
4157	// sent to the server regardless of whether the field is empty or not.
4158	// This may be used to include empty fields in Patch requests.
4159	ForceSendFields []string `json:"-"`
4160
4161	// NullFields is a list of field names (e.g. "ContentType") to include
4162	// in API requests with the JSON null value. By default, fields with
4163	// empty values are omitted from API requests. However, any field with
4164	// an empty value appearing in NullFields will be sent to the server as
4165	// null. It is an error if a field in this list has a non-empty value.
4166	// This may be used to include null fields in Patch requests.
4167	NullFields []string `json:"-"`
4168}
4169
4170func (s *Thumbnail) MarshalJSON() ([]byte, error) {
4171	type NoMethod Thumbnail
4172	raw := NoMethod(*s)
4173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4174}
4175
4176// Timestamp: A Timestamp represents a point in time independent of any
4177// time zone or local calendar, encoded as a count of seconds and
4178// fractions of seconds at nanosecond resolution. The count is relative
4179// to an epoch at UTC midnight on January 1, 1970, in the proleptic
4180// Gregorian calendar which extends the Gregorian calendar backwards to
4181// year one. All minutes are 60 seconds long. Leap seconds are "smeared"
4182// so that no leap second table is needed for interpretation, using a
4183// 24-hour linear smear (https://developers.google.com/time/smear). The
4184// range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
4185// By restricting to that range, we ensure that we can convert to and
4186// from RFC 3339 (https://www.ietf.org/rfc/rfc3339.txt) date strings.
4187type Timestamp struct {
4188	// Nanos: Non-negative fractions of a second at nanosecond resolution.
4189	// Negative second values with fractions must still have non-negative
4190	// nanos values that count forward in time. Must be from 0 to
4191	// 999,999,999 inclusive.
4192	Nanos int64 `json:"nanos,omitempty"`
4193
4194	// Seconds: Represents seconds of UTC time since Unix epoch
4195	// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
4196	// 9999-12-31T23:59:59Z inclusive.
4197	Seconds int64 `json:"seconds,omitempty,string"`
4198
4199	// ForceSendFields is a list of field names (e.g. "Nanos") to
4200	// unconditionally include in API requests. By default, fields with
4201	// empty or default values are omitted from API requests. However, any
4202	// non-pointer, non-interface field appearing in ForceSendFields will be
4203	// sent to the server regardless of whether the field is empty or not.
4204	// This may be used to include empty fields in Patch requests.
4205	ForceSendFields []string `json:"-"`
4206
4207	// NullFields is a list of field names (e.g. "Nanos") to include in API
4208	// requests with the JSON null value. By default, fields with empty
4209	// values are omitted from API requests. However, any field with an
4210	// empty value appearing in NullFields will be sent to the server as
4211	// null. It is an error if a field in this list has a non-empty value.
4212	// This may be used to include null fields in Patch requests.
4213	NullFields []string `json:"-"`
4214}
4215
4216func (s *Timestamp) MarshalJSON() ([]byte, error) {
4217	type NoMethod Timestamp
4218	raw := NoMethod(*s)
4219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4220}
4221
4222// ToolExecution: An execution of an arbitrary tool. It could be a test
4223// runner or a tool copying artifacts or deploying code.
4224type ToolExecution struct {
4225	// CommandLineArguments: The full tokenized command line including the
4226	// program name (equivalent to argv in a C program). - In response:
4227	// present if set by create request - In create request: optional - In
4228	// update request: never set
4229	CommandLineArguments []string `json:"commandLineArguments,omitempty"`
4230
4231	// ExitCode: Tool execution exit code. This field will be set once the
4232	// tool has exited. - In response: present if set by create/update
4233	// request - In create request: optional - In update request: optional,
4234	// a FAILED_PRECONDITION error will be returned if an exit_code is
4235	// already set.
4236	ExitCode *ToolExitCode `json:"exitCode,omitempty"`
4237
4238	// ToolLogs: References to any plain text logs output the tool
4239	// execution. This field can be set before the tool has exited in order
4240	// to be able to have access to a live view of the logs while the tool
4241	// is running. The maximum allowed number of tool logs per step is 1000.
4242	// - In response: present if set by create/update request - In create
4243	// request: optional - In update request: optional, any value provided
4244	// will be appended to the existing list
4245	ToolLogs []*FileReference `json:"toolLogs,omitempty"`
4246
4247	// ToolOutputs: References to opaque files of any format output by the
4248	// tool execution. The maximum allowed number of tool outputs per step
4249	// is 1000. - In response: present if set by create/update request - In
4250	// create request: optional - In update request: optional, any value
4251	// provided will be appended to the existing list
4252	ToolOutputs []*ToolOutputReference `json:"toolOutputs,omitempty"`
4253
4254	// ForceSendFields is a list of field names (e.g.
4255	// "CommandLineArguments") to unconditionally include in API requests.
4256	// By default, fields with empty or default values are omitted from API
4257	// requests. However, any non-pointer, non-interface field appearing in
4258	// ForceSendFields will be sent to the server regardless of whether the
4259	// field is empty or not. This may be used to include empty fields in
4260	// Patch requests.
4261	ForceSendFields []string `json:"-"`
4262
4263	// NullFields is a list of field names (e.g. "CommandLineArguments") to
4264	// include in API requests with the JSON null value. By default, fields
4265	// with empty values are omitted from API requests. However, any field
4266	// with an empty value appearing in NullFields will be sent to the
4267	// server as null. It is an error if a field in this list has a
4268	// non-empty value. This may be used to include null fields in Patch
4269	// requests.
4270	NullFields []string `json:"-"`
4271}
4272
4273func (s *ToolExecution) MarshalJSON() ([]byte, error) {
4274	type NoMethod ToolExecution
4275	raw := NoMethod(*s)
4276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4277}
4278
4279// ToolExecutionStep: Generic tool step to be used for binaries we do
4280// not explicitly support. For example: running cp to copy artifacts
4281// from one location to another.
4282type ToolExecutionStep struct {
4283	// ToolExecution: A Tool execution. - In response: present if set by
4284	// create/update request - In create/update request: optional
4285	ToolExecution *ToolExecution `json:"toolExecution,omitempty"`
4286
4287	// ForceSendFields is a list of field names (e.g. "ToolExecution") to
4288	// unconditionally include in API requests. By default, fields with
4289	// empty or default values are omitted from API requests. However, any
4290	// non-pointer, non-interface field appearing in ForceSendFields will be
4291	// sent to the server regardless of whether the field is empty or not.
4292	// This may be used to include empty fields in Patch requests.
4293	ForceSendFields []string `json:"-"`
4294
4295	// NullFields is a list of field names (e.g. "ToolExecution") to include
4296	// in API requests with the JSON null value. By default, fields with
4297	// empty values are omitted from API requests. However, any field with
4298	// an empty value appearing in NullFields will be sent to the server as
4299	// null. It is an error if a field in this list has a non-empty value.
4300	// This may be used to include null fields in Patch requests.
4301	NullFields []string `json:"-"`
4302}
4303
4304func (s *ToolExecutionStep) MarshalJSON() ([]byte, error) {
4305	type NoMethod ToolExecutionStep
4306	raw := NoMethod(*s)
4307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4308}
4309
4310// ToolExitCode: Exit code from a tool execution.
4311type ToolExitCode struct {
4312	// Number: Tool execution exit code. A value of 0 means that the
4313	// execution was successful. - In response: always set - In
4314	// create/update request: always set
4315	Number int64 `json:"number,omitempty"`
4316
4317	// ForceSendFields is a list of field names (e.g. "Number") to
4318	// unconditionally include in API requests. By default, fields with
4319	// empty or default values are omitted from API requests. However, any
4320	// non-pointer, non-interface field appearing in ForceSendFields will be
4321	// sent to the server regardless of whether the field is empty or not.
4322	// This may be used to include empty fields in Patch requests.
4323	ForceSendFields []string `json:"-"`
4324
4325	// NullFields is a list of field names (e.g. "Number") to include in API
4326	// requests with the JSON null value. By default, fields with empty
4327	// values are omitted from API requests. However, any field with an
4328	// empty value appearing in NullFields will be sent to the server as
4329	// null. It is an error if a field in this list has a non-empty value.
4330	// This may be used to include null fields in Patch requests.
4331	NullFields []string `json:"-"`
4332}
4333
4334func (s *ToolExitCode) MarshalJSON() ([]byte, error) {
4335	type NoMethod ToolExitCode
4336	raw := NoMethod(*s)
4337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4338}
4339
4340// ToolOutputReference: A reference to a ToolExecution output file.
4341type ToolOutputReference struct {
4342	// CreationTime: The creation time of the file. - In response: present
4343	// if set by create/update request - In create/update request: optional
4344	CreationTime *Timestamp `json:"creationTime,omitempty"`
4345
4346	// Output: A FileReference to an output file. - In response: always set
4347	// - In create/update request: always set
4348	Output *FileReference `json:"output,omitempty"`
4349
4350	// TestCase: The test case to which this output file belongs. - In
4351	// response: present if set by create/update request - In create/update
4352	// request: optional
4353	TestCase *TestCaseReference `json:"testCase,omitempty"`
4354
4355	// ForceSendFields is a list of field names (e.g. "CreationTime") to
4356	// unconditionally include in API requests. By default, fields with
4357	// empty or default values are omitted from API requests. However, any
4358	// non-pointer, non-interface field appearing in ForceSendFields will be
4359	// sent to the server regardless of whether the field is empty or not.
4360	// This may be used to include empty fields in Patch requests.
4361	ForceSendFields []string `json:"-"`
4362
4363	// NullFields is a list of field names (e.g. "CreationTime") to include
4364	// in API requests with the JSON null value. By default, fields with
4365	// empty values are omitted from API requests. However, any field with
4366	// an empty value appearing in NullFields will be sent to the server as
4367	// null. It is an error if a field in this list has a non-empty value.
4368	// This may be used to include null fields in Patch requests.
4369	NullFields []string `json:"-"`
4370}
4371
4372func (s *ToolOutputReference) MarshalJSON() ([]byte, error) {
4373	type NoMethod ToolOutputReference
4374	raw := NoMethod(*s)
4375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4376}
4377
4378// UIElementTooDeep: A warning that the screen hierarchy is deeper than
4379// the recommended threshold.
4380type UIElementTooDeep struct {
4381	// Depth: The depth of the screen element
4382	Depth int64 `json:"depth,omitempty"`
4383
4384	// ScreenId: The screen id of the element
4385	ScreenId string `json:"screenId,omitempty"`
4386
4387	// ScreenStateId: The screen state id of the element
4388	ScreenStateId string `json:"screenStateId,omitempty"`
4389
4390	// ForceSendFields is a list of field names (e.g. "Depth") to
4391	// unconditionally include in API requests. By default, fields with
4392	// empty or default values are omitted from API requests. However, any
4393	// non-pointer, non-interface field appearing in ForceSendFields will be
4394	// sent to the server regardless of whether the field is empty or not.
4395	// This may be used to include empty fields in Patch requests.
4396	ForceSendFields []string `json:"-"`
4397
4398	// NullFields is a list of field names (e.g. "Depth") to include in API
4399	// requests with the JSON null value. By default, fields with empty
4400	// values are omitted from API requests. However, any field with an
4401	// empty value appearing in NullFields will be sent to the server as
4402	// null. It is an error if a field in this list has a non-empty value.
4403	// This may be used to include null fields in Patch requests.
4404	NullFields []string `json:"-"`
4405}
4406
4407func (s *UIElementTooDeep) MarshalJSON() ([]byte, error) {
4408	type NoMethod UIElementTooDeep
4409	raw := NoMethod(*s)
4410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4411}
4412
4413// UnspecifiedWarning: Default unspecified warning.
4414type UnspecifiedWarning struct {
4415}
4416
4417// UnusedRoboDirective: Additional details of an unused robodirective.
4418type UnusedRoboDirective struct {
4419	// ResourceName: The name of the resource that was unused.
4420	ResourceName string `json:"resourceName,omitempty"`
4421
4422	// ForceSendFields is a list of field names (e.g. "ResourceName") to
4423	// unconditionally include in API requests. By default, fields with
4424	// empty or default values are omitted from API requests. However, any
4425	// non-pointer, non-interface field appearing in ForceSendFields will be
4426	// sent to the server regardless of whether the field is empty or not.
4427	// This may be used to include empty fields in Patch requests.
4428	ForceSendFields []string `json:"-"`
4429
4430	// NullFields is a list of field names (e.g. "ResourceName") to include
4431	// in API requests with the JSON null value. By default, fields with
4432	// empty values are omitted from API requests. However, any field with
4433	// an empty value appearing in NullFields will be sent to the server as
4434	// null. It is an error if a field in this list has a non-empty value.
4435	// This may be used to include null fields in Patch requests.
4436	NullFields []string `json:"-"`
4437}
4438
4439func (s *UnusedRoboDirective) MarshalJSON() ([]byte, error) {
4440	type NoMethod UnusedRoboDirective
4441	raw := NoMethod(*s)
4442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4443}
4444
4445// UpgradeInsight: This insight is a recommendation to upgrade a given
4446// library to the specified version, in order to avoid dependencies on
4447// non-SDK APIs.
4448type UpgradeInsight struct {
4449	// PackageName: The name of the package to be upgraded.
4450	PackageName string `json:"packageName,omitempty"`
4451
4452	// UpgradeToVersion: The suggested version to upgrade to. Optional: In
4453	// case we are not sure which version solves this problem
4454	UpgradeToVersion string `json:"upgradeToVersion,omitempty"`
4455
4456	// ForceSendFields is a list of field names (e.g. "PackageName") to
4457	// unconditionally include in API requests. By default, fields with
4458	// empty or default values are omitted from API requests. However, any
4459	// non-pointer, non-interface field appearing in ForceSendFields will be
4460	// sent to the server regardless of whether the field is empty or not.
4461	// This may be used to include empty fields in Patch requests.
4462	ForceSendFields []string `json:"-"`
4463
4464	// NullFields is a list of field names (e.g. "PackageName") to include
4465	// in API requests with the JSON null value. By default, fields with
4466	// empty values are omitted from API requests. However, any field with
4467	// an empty value appearing in NullFields will be sent to the server as
4468	// null. It is an error if a field in this list has a non-empty value.
4469	// This may be used to include null fields in Patch requests.
4470	NullFields []string `json:"-"`
4471}
4472
4473func (s *UpgradeInsight) MarshalJSON() ([]byte, error) {
4474	type NoMethod UpgradeInsight
4475	raw := NoMethod(*s)
4476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4477}
4478
4479// UsedRoboDirective: Additional details of a used Robo directive.
4480type UsedRoboDirective struct {
4481	// ResourceName: The name of the resource that was used.
4482	ResourceName string `json:"resourceName,omitempty"`
4483
4484	// ForceSendFields is a list of field names (e.g. "ResourceName") to
4485	// unconditionally include in API requests. By default, fields with
4486	// empty or default values are omitted from API requests. However, any
4487	// non-pointer, non-interface field appearing in ForceSendFields will be
4488	// sent to the server regardless of whether the field is empty or not.
4489	// This may be used to include empty fields in Patch requests.
4490	ForceSendFields []string `json:"-"`
4491
4492	// NullFields is a list of field names (e.g. "ResourceName") to include
4493	// in API requests with the JSON null value. By default, fields with
4494	// empty values are omitted from API requests. However, any field with
4495	// an empty value appearing in NullFields will be sent to the server as
4496	// null. It is an error if a field in this list has a non-empty value.
4497	// This may be used to include null fields in Patch requests.
4498	NullFields []string `json:"-"`
4499}
4500
4501func (s *UsedRoboDirective) MarshalJSON() ([]byte, error) {
4502	type NoMethod UsedRoboDirective
4503	raw := NoMethod(*s)
4504	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4505}
4506
4507// UsedRoboIgnoreDirective: Additional details of a used Robo directive
4508// with an ignore action. Note: This is a different scenario than unused
4509// directive.
4510type UsedRoboIgnoreDirective struct {
4511	// ResourceName: The name of the resource that was ignored.
4512	ResourceName string `json:"resourceName,omitempty"`
4513
4514	// ForceSendFields is a list of field names (e.g. "ResourceName") to
4515	// unconditionally include in API requests. By default, fields with
4516	// empty or default values are omitted from API requests. However, any
4517	// non-pointer, non-interface field appearing in ForceSendFields will be
4518	// sent to the server regardless of whether the field is empty or not.
4519	// This may be used to include empty fields in Patch requests.
4520	ForceSendFields []string `json:"-"`
4521
4522	// NullFields is a list of field names (e.g. "ResourceName") to include
4523	// in API requests with the JSON null value. By default, fields with
4524	// empty values are omitted from API requests. However, any field with
4525	// an empty value appearing in NullFields will be sent to the server as
4526	// null. It is an error if a field in this list has a non-empty value.
4527	// This may be used to include null fields in Patch requests.
4528	NullFields []string `json:"-"`
4529}
4530
4531func (s *UsedRoboIgnoreDirective) MarshalJSON() ([]byte, error) {
4532	type NoMethod UsedRoboIgnoreDirective
4533	raw := NoMethod(*s)
4534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4535}
4536
4537// method id "toolresults.projects.getSettings":
4538
4539type ProjectsGetSettingsCall struct {
4540	s            *Service
4541	projectId    string
4542	urlParams_   gensupport.URLParams
4543	ifNoneMatch_ string
4544	ctx_         context.Context
4545	header_      http.Header
4546}
4547
4548// GetSettings: Gets the Tool Results settings for a project. May return
4549// any of the following canonical error codes: - PERMISSION_DENIED - if
4550// the user is not authorized to read from project
4551//
4552// - projectId: A Project id.
4553func (r *ProjectsService) GetSettings(projectId string) *ProjectsGetSettingsCall {
4554	c := &ProjectsGetSettingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4555	c.projectId = projectId
4556	return c
4557}
4558
4559// Fields allows partial responses to be retrieved. See
4560// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4561// for more information.
4562func (c *ProjectsGetSettingsCall) Fields(s ...googleapi.Field) *ProjectsGetSettingsCall {
4563	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4564	return c
4565}
4566
4567// IfNoneMatch sets the optional parameter which makes the operation
4568// fail if the object's ETag matches the given value. This is useful for
4569// getting updates only after the object has changed since the last
4570// request. Use googleapi.IsNotModified to check whether the response
4571// error from Do is the result of In-None-Match.
4572func (c *ProjectsGetSettingsCall) IfNoneMatch(entityTag string) *ProjectsGetSettingsCall {
4573	c.ifNoneMatch_ = entityTag
4574	return c
4575}
4576
4577// Context sets the context to be used in this call's Do method. Any
4578// pending HTTP request will be aborted if the provided context is
4579// canceled.
4580func (c *ProjectsGetSettingsCall) Context(ctx context.Context) *ProjectsGetSettingsCall {
4581	c.ctx_ = ctx
4582	return c
4583}
4584
4585// Header returns an http.Header that can be modified by the caller to
4586// add HTTP headers to the request.
4587func (c *ProjectsGetSettingsCall) Header() http.Header {
4588	if c.header_ == nil {
4589		c.header_ = make(http.Header)
4590	}
4591	return c.header_
4592}
4593
4594func (c *ProjectsGetSettingsCall) doRequest(alt string) (*http.Response, error) {
4595	reqHeaders := make(http.Header)
4596	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
4597	for k, v := range c.header_ {
4598		reqHeaders[k] = v
4599	}
4600	reqHeaders.Set("User-Agent", c.s.userAgent())
4601	if c.ifNoneMatch_ != "" {
4602		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4603	}
4604	var body io.Reader = nil
4605	c.urlParams_.Set("alt", alt)
4606	c.urlParams_.Set("prettyPrint", "false")
4607	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/settings")
4608	urls += "?" + c.urlParams_.Encode()
4609	req, err := http.NewRequest("GET", urls, body)
4610	if err != nil {
4611		return nil, err
4612	}
4613	req.Header = reqHeaders
4614	googleapi.Expand(req.URL, map[string]string{
4615		"projectId": c.projectId,
4616	})
4617	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4618}
4619
4620// Do executes the "toolresults.projects.getSettings" call.
4621// Exactly one of *ProjectSettings or error will be non-nil. Any non-2xx
4622// status code is an error. Response headers are in either
4623// *ProjectSettings.ServerResponse.Header or (if a response was returned
4624// at all) in error.(*googleapi.Error).Header. Use
4625// googleapi.IsNotModified to check whether the returned error was
4626// because http.StatusNotModified was returned.
4627func (c *ProjectsGetSettingsCall) Do(opts ...googleapi.CallOption) (*ProjectSettings, error) {
4628	gensupport.SetOptions(c.urlParams_, opts...)
4629	res, err := c.doRequest("json")
4630	if res != nil && res.StatusCode == http.StatusNotModified {
4631		if res.Body != nil {
4632			res.Body.Close()
4633		}
4634		return nil, &googleapi.Error{
4635			Code:   res.StatusCode,
4636			Header: res.Header,
4637		}
4638	}
4639	if err != nil {
4640		return nil, err
4641	}
4642	defer googleapi.CloseBody(res)
4643	if err := googleapi.CheckResponse(res); err != nil {
4644		return nil, err
4645	}
4646	ret := &ProjectSettings{
4647		ServerResponse: googleapi.ServerResponse{
4648			Header:         res.Header,
4649			HTTPStatusCode: res.StatusCode,
4650		},
4651	}
4652	target := &ret
4653	if err := gensupport.DecodeResponse(target, res); err != nil {
4654		return nil, err
4655	}
4656	return ret, nil
4657	// {
4658	//   "description": "Gets the Tool Results settings for a project. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read from project",
4659	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/settings",
4660	//   "httpMethod": "GET",
4661	//   "id": "toolresults.projects.getSettings",
4662	//   "parameterOrder": [
4663	//     "projectId"
4664	//   ],
4665	//   "parameters": {
4666	//     "projectId": {
4667	//       "description": "A Project id. Required.",
4668	//       "location": "path",
4669	//       "required": true,
4670	//       "type": "string"
4671	//     }
4672	//   },
4673	//   "path": "toolresults/v1beta3/projects/{projectId}/settings",
4674	//   "response": {
4675	//     "$ref": "ProjectSettings"
4676	//   },
4677	//   "scopes": [
4678	//     "https://www.googleapis.com/auth/cloud-platform"
4679	//   ]
4680	// }
4681
4682}
4683
4684// method id "toolresults.projects.initializeSettings":
4685
4686type ProjectsInitializeSettingsCall struct {
4687	s          *Service
4688	projectId  string
4689	urlParams_ gensupport.URLParams
4690	ctx_       context.Context
4691	header_    http.Header
4692}
4693
4694// InitializeSettings: Creates resources for settings which have not yet
4695// been set. Currently, this creates a single resource: a Google Cloud
4696// Storage bucket, to be used as the default bucket for this project.
4697// The bucket is created in an FTL-own storage project. Except for in
4698// rare cases, calling this method in parallel from multiple clients
4699// will only create a single bucket. In order to avoid unnecessary
4700// storage charges, the bucket is configured to automatically delete
4701// objects older than 90 days. The bucket is created with the following
4702// permissions: - Owner access for owners of central storage project
4703// (FTL-owned) - Writer access for owners/editors of customer project -
4704// Reader access for viewers of customer project The default ACL on
4705// objects created in the bucket is: - Owner access for owners of
4706// central storage project - Reader access for owners/editors/viewers of
4707// customer project See Google Cloud Storage documentation for more
4708// details. If there is already a default bucket set and the project can
4709// access the bucket, this call does nothing. However, if the project
4710// doesn't have the permission to access the bucket or the bucket is
4711// deleted, a new bucket will be created. May return any canonical error
4712// codes, including the following: - PERMISSION_DENIED - if the user is
4713// not authorized to write to project - Any error code raised by Google
4714// Cloud Storage
4715//
4716// - projectId: A Project id.
4717func (r *ProjectsService) InitializeSettings(projectId string) *ProjectsInitializeSettingsCall {
4718	c := &ProjectsInitializeSettingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4719	c.projectId = projectId
4720	return c
4721}
4722
4723// Fields allows partial responses to be retrieved. See
4724// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4725// for more information.
4726func (c *ProjectsInitializeSettingsCall) Fields(s ...googleapi.Field) *ProjectsInitializeSettingsCall {
4727	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4728	return c
4729}
4730
4731// Context sets the context to be used in this call's Do method. Any
4732// pending HTTP request will be aborted if the provided context is
4733// canceled.
4734func (c *ProjectsInitializeSettingsCall) Context(ctx context.Context) *ProjectsInitializeSettingsCall {
4735	c.ctx_ = ctx
4736	return c
4737}
4738
4739// Header returns an http.Header that can be modified by the caller to
4740// add HTTP headers to the request.
4741func (c *ProjectsInitializeSettingsCall) Header() http.Header {
4742	if c.header_ == nil {
4743		c.header_ = make(http.Header)
4744	}
4745	return c.header_
4746}
4747
4748func (c *ProjectsInitializeSettingsCall) doRequest(alt string) (*http.Response, error) {
4749	reqHeaders := make(http.Header)
4750	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
4751	for k, v := range c.header_ {
4752		reqHeaders[k] = v
4753	}
4754	reqHeaders.Set("User-Agent", c.s.userAgent())
4755	var body io.Reader = nil
4756	c.urlParams_.Set("alt", alt)
4757	c.urlParams_.Set("prettyPrint", "false")
4758	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}:initializeSettings")
4759	urls += "?" + c.urlParams_.Encode()
4760	req, err := http.NewRequest("POST", urls, body)
4761	if err != nil {
4762		return nil, err
4763	}
4764	req.Header = reqHeaders
4765	googleapi.Expand(req.URL, map[string]string{
4766		"projectId": c.projectId,
4767	})
4768	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4769}
4770
4771// Do executes the "toolresults.projects.initializeSettings" call.
4772// Exactly one of *ProjectSettings or error will be non-nil. Any non-2xx
4773// status code is an error. Response headers are in either
4774// *ProjectSettings.ServerResponse.Header or (if a response was returned
4775// at all) in error.(*googleapi.Error).Header. Use
4776// googleapi.IsNotModified to check whether the returned error was
4777// because http.StatusNotModified was returned.
4778func (c *ProjectsInitializeSettingsCall) Do(opts ...googleapi.CallOption) (*ProjectSettings, error) {
4779	gensupport.SetOptions(c.urlParams_, opts...)
4780	res, err := c.doRequest("json")
4781	if res != nil && res.StatusCode == http.StatusNotModified {
4782		if res.Body != nil {
4783			res.Body.Close()
4784		}
4785		return nil, &googleapi.Error{
4786			Code:   res.StatusCode,
4787			Header: res.Header,
4788		}
4789	}
4790	if err != nil {
4791		return nil, err
4792	}
4793	defer googleapi.CloseBody(res)
4794	if err := googleapi.CheckResponse(res); err != nil {
4795		return nil, err
4796	}
4797	ret := &ProjectSettings{
4798		ServerResponse: googleapi.ServerResponse{
4799			Header:         res.Header,
4800			HTTPStatusCode: res.StatusCode,
4801		},
4802	}
4803	target := &ret
4804	if err := gensupport.DecodeResponse(target, res); err != nil {
4805		return nil, err
4806	}
4807	return ret, nil
4808	// {
4809	//   "description": "Creates resources for settings which have not yet been set. Currently, this creates a single resource: a Google Cloud Storage bucket, to be used as the default bucket for this project. The bucket is created in an FTL-own storage project. Except for in rare cases, calling this method in parallel from multiple clients will only create a single bucket. In order to avoid unnecessary storage charges, the bucket is configured to automatically delete objects older than 90 days. The bucket is created with the following permissions: - Owner access for owners of central storage project (FTL-owned) - Writer access for owners/editors of customer project - Reader access for viewers of customer project The default ACL on objects created in the bucket is: - Owner access for owners of central storage project - Reader access for owners/editors/viewers of customer project See Google Cloud Storage documentation for more details. If there is already a default bucket set and the project can access the bucket, this call does nothing. However, if the project doesn't have the permission to access the bucket or the bucket is deleted, a new bucket will be created. May return any canonical error codes, including the following: - PERMISSION_DENIED - if the user is not authorized to write to project - Any error code raised by Google Cloud Storage",
4810	//   "flatPath": "toolresults/v1beta3/projects/{projectId}:initializeSettings",
4811	//   "httpMethod": "POST",
4812	//   "id": "toolresults.projects.initializeSettings",
4813	//   "parameterOrder": [
4814	//     "projectId"
4815	//   ],
4816	//   "parameters": {
4817	//     "projectId": {
4818	//       "description": "A Project id. Required.",
4819	//       "location": "path",
4820	//       "required": true,
4821	//       "type": "string"
4822	//     }
4823	//   },
4824	//   "path": "toolresults/v1beta3/projects/{projectId}:initializeSettings",
4825	//   "response": {
4826	//     "$ref": "ProjectSettings"
4827	//   },
4828	//   "scopes": [
4829	//     "https://www.googleapis.com/auth/cloud-platform"
4830	//   ]
4831	// }
4832
4833}
4834
4835// method id "toolresults.projects.histories.create":
4836
4837type ProjectsHistoriesCreateCall struct {
4838	s          *Service
4839	projectId  string
4840	history    *History
4841	urlParams_ gensupport.URLParams
4842	ctx_       context.Context
4843	header_    http.Header
4844}
4845
4846// Create: Creates a History. The returned History will have the id set.
4847// May return any of the following canonical error codes: -
4848// PERMISSION_DENIED - if the user is not authorized to write to project
4849// - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the
4850// containing project does not exist
4851//
4852// - projectId: A Project id.
4853func (r *ProjectsHistoriesService) Create(projectId string, history *History) *ProjectsHistoriesCreateCall {
4854	c := &ProjectsHistoriesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4855	c.projectId = projectId
4856	c.history = history
4857	return c
4858}
4859
4860// RequestId sets the optional parameter "requestId": A unique request
4861// ID for server to detect duplicated requests. For example, a UUID.
4862// Optional, but strongly recommended.
4863func (c *ProjectsHistoriesCreateCall) RequestId(requestId string) *ProjectsHistoriesCreateCall {
4864	c.urlParams_.Set("requestId", requestId)
4865	return c
4866}
4867
4868// Fields allows partial responses to be retrieved. See
4869// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4870// for more information.
4871func (c *ProjectsHistoriesCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesCreateCall {
4872	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4873	return c
4874}
4875
4876// Context sets the context to be used in this call's Do method. Any
4877// pending HTTP request will be aborted if the provided context is
4878// canceled.
4879func (c *ProjectsHistoriesCreateCall) Context(ctx context.Context) *ProjectsHistoriesCreateCall {
4880	c.ctx_ = ctx
4881	return c
4882}
4883
4884// Header returns an http.Header that can be modified by the caller to
4885// add HTTP headers to the request.
4886func (c *ProjectsHistoriesCreateCall) Header() http.Header {
4887	if c.header_ == nil {
4888		c.header_ = make(http.Header)
4889	}
4890	return c.header_
4891}
4892
4893func (c *ProjectsHistoriesCreateCall) doRequest(alt string) (*http.Response, error) {
4894	reqHeaders := make(http.Header)
4895	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
4896	for k, v := range c.header_ {
4897		reqHeaders[k] = v
4898	}
4899	reqHeaders.Set("User-Agent", c.s.userAgent())
4900	var body io.Reader = nil
4901	body, err := googleapi.WithoutDataWrapper.JSONReader(c.history)
4902	if err != nil {
4903		return nil, err
4904	}
4905	reqHeaders.Set("Content-Type", "application/json")
4906	c.urlParams_.Set("alt", alt)
4907	c.urlParams_.Set("prettyPrint", "false")
4908	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories")
4909	urls += "?" + c.urlParams_.Encode()
4910	req, err := http.NewRequest("POST", urls, body)
4911	if err != nil {
4912		return nil, err
4913	}
4914	req.Header = reqHeaders
4915	googleapi.Expand(req.URL, map[string]string{
4916		"projectId": c.projectId,
4917	})
4918	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4919}
4920
4921// Do executes the "toolresults.projects.histories.create" call.
4922// Exactly one of *History or error will be non-nil. Any non-2xx status
4923// code is an error. Response headers are in either
4924// *History.ServerResponse.Header or (if a response was returned at all)
4925// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4926// check whether the returned error was because http.StatusNotModified
4927// was returned.
4928func (c *ProjectsHistoriesCreateCall) Do(opts ...googleapi.CallOption) (*History, error) {
4929	gensupport.SetOptions(c.urlParams_, opts...)
4930	res, err := c.doRequest("json")
4931	if res != nil && res.StatusCode == http.StatusNotModified {
4932		if res.Body != nil {
4933			res.Body.Close()
4934		}
4935		return nil, &googleapi.Error{
4936			Code:   res.StatusCode,
4937			Header: res.Header,
4938		}
4939	}
4940	if err != nil {
4941		return nil, err
4942	}
4943	defer googleapi.CloseBody(res)
4944	if err := googleapi.CheckResponse(res); err != nil {
4945		return nil, err
4946	}
4947	ret := &History{
4948		ServerResponse: googleapi.ServerResponse{
4949			Header:         res.Header,
4950			HTTPStatusCode: res.StatusCode,
4951		},
4952	}
4953	target := &ret
4954	if err := gensupport.DecodeResponse(target, res); err != nil {
4955		return nil, err
4956	}
4957	return ret, nil
4958	// {
4959	//   "description": "Creates a History. The returned History will have the id set. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing project does not exist",
4960	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories",
4961	//   "httpMethod": "POST",
4962	//   "id": "toolresults.projects.histories.create",
4963	//   "parameterOrder": [
4964	//     "projectId"
4965	//   ],
4966	//   "parameters": {
4967	//     "projectId": {
4968	//       "description": "A Project id. Required.",
4969	//       "location": "path",
4970	//       "required": true,
4971	//       "type": "string"
4972	//     },
4973	//     "requestId": {
4974	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID. Optional, but strongly recommended.",
4975	//       "location": "query",
4976	//       "type": "string"
4977	//     }
4978	//   },
4979	//   "path": "toolresults/v1beta3/projects/{projectId}/histories",
4980	//   "request": {
4981	//     "$ref": "History"
4982	//   },
4983	//   "response": {
4984	//     "$ref": "History"
4985	//   },
4986	//   "scopes": [
4987	//     "https://www.googleapis.com/auth/cloud-platform"
4988	//   ]
4989	// }
4990
4991}
4992
4993// method id "toolresults.projects.histories.get":
4994
4995type ProjectsHistoriesGetCall struct {
4996	s            *Service
4997	projectId    string
4998	historyId    string
4999	urlParams_   gensupport.URLParams
5000	ifNoneMatch_ string
5001	ctx_         context.Context
5002	header_      http.Header
5003}
5004
5005// Get: Gets a History. May return any of the following canonical error
5006// codes: - PERMISSION_DENIED - if the user is not authorized to read
5007// project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND
5008// - if the History does not exist
5009//
5010// - historyId: A History id.
5011// - projectId: A Project id.
5012func (r *ProjectsHistoriesService) Get(projectId string, historyId string) *ProjectsHistoriesGetCall {
5013	c := &ProjectsHistoriesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5014	c.projectId = projectId
5015	c.historyId = historyId
5016	return c
5017}
5018
5019// Fields allows partial responses to be retrieved. See
5020// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5021// for more information.
5022func (c *ProjectsHistoriesGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesGetCall {
5023	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5024	return c
5025}
5026
5027// IfNoneMatch sets the optional parameter which makes the operation
5028// fail if the object's ETag matches the given value. This is useful for
5029// getting updates only after the object has changed since the last
5030// request. Use googleapi.IsNotModified to check whether the response
5031// error from Do is the result of In-None-Match.
5032func (c *ProjectsHistoriesGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesGetCall {
5033	c.ifNoneMatch_ = entityTag
5034	return c
5035}
5036
5037// Context sets the context to be used in this call's Do method. Any
5038// pending HTTP request will be aborted if the provided context is
5039// canceled.
5040func (c *ProjectsHistoriesGetCall) Context(ctx context.Context) *ProjectsHistoriesGetCall {
5041	c.ctx_ = ctx
5042	return c
5043}
5044
5045// Header returns an http.Header that can be modified by the caller to
5046// add HTTP headers to the request.
5047func (c *ProjectsHistoriesGetCall) Header() http.Header {
5048	if c.header_ == nil {
5049		c.header_ = make(http.Header)
5050	}
5051	return c.header_
5052}
5053
5054func (c *ProjectsHistoriesGetCall) doRequest(alt string) (*http.Response, error) {
5055	reqHeaders := make(http.Header)
5056	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
5057	for k, v := range c.header_ {
5058		reqHeaders[k] = v
5059	}
5060	reqHeaders.Set("User-Agent", c.s.userAgent())
5061	if c.ifNoneMatch_ != "" {
5062		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5063	}
5064	var body io.Reader = nil
5065	c.urlParams_.Set("alt", alt)
5066	c.urlParams_.Set("prettyPrint", "false")
5067	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}")
5068	urls += "?" + c.urlParams_.Encode()
5069	req, err := http.NewRequest("GET", urls, body)
5070	if err != nil {
5071		return nil, err
5072	}
5073	req.Header = reqHeaders
5074	googleapi.Expand(req.URL, map[string]string{
5075		"projectId": c.projectId,
5076		"historyId": c.historyId,
5077	})
5078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5079}
5080
5081// Do executes the "toolresults.projects.histories.get" call.
5082// Exactly one of *History or error will be non-nil. Any non-2xx status
5083// code is an error. Response headers are in either
5084// *History.ServerResponse.Header or (if a response was returned at all)
5085// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5086// check whether the returned error was because http.StatusNotModified
5087// was returned.
5088func (c *ProjectsHistoriesGetCall) Do(opts ...googleapi.CallOption) (*History, error) {
5089	gensupport.SetOptions(c.urlParams_, opts...)
5090	res, err := c.doRequest("json")
5091	if res != nil && res.StatusCode == http.StatusNotModified {
5092		if res.Body != nil {
5093			res.Body.Close()
5094		}
5095		return nil, &googleapi.Error{
5096			Code:   res.StatusCode,
5097			Header: res.Header,
5098		}
5099	}
5100	if err != nil {
5101		return nil, err
5102	}
5103	defer googleapi.CloseBody(res)
5104	if err := googleapi.CheckResponse(res); err != nil {
5105		return nil, err
5106	}
5107	ret := &History{
5108		ServerResponse: googleapi.ServerResponse{
5109			Header:         res.Header,
5110			HTTPStatusCode: res.StatusCode,
5111		},
5112	}
5113	target := &ret
5114	if err := gensupport.DecodeResponse(target, res); err != nil {
5115		return nil, err
5116	}
5117	return ret, nil
5118	// {
5119	//   "description": "Gets a History. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the History does not exist",
5120	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}",
5121	//   "httpMethod": "GET",
5122	//   "id": "toolresults.projects.histories.get",
5123	//   "parameterOrder": [
5124	//     "projectId",
5125	//     "historyId"
5126	//   ],
5127	//   "parameters": {
5128	//     "historyId": {
5129	//       "description": "A History id. Required.",
5130	//       "location": "path",
5131	//       "required": true,
5132	//       "type": "string"
5133	//     },
5134	//     "projectId": {
5135	//       "description": "A Project id. Required.",
5136	//       "location": "path",
5137	//       "required": true,
5138	//       "type": "string"
5139	//     }
5140	//   },
5141	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}",
5142	//   "response": {
5143	//     "$ref": "History"
5144	//   },
5145	//   "scopes": [
5146	//     "https://www.googleapis.com/auth/cloud-platform"
5147	//   ]
5148	// }
5149
5150}
5151
5152// method id "toolresults.projects.histories.list":
5153
5154type ProjectsHistoriesListCall struct {
5155	s            *Service
5156	projectId    string
5157	urlParams_   gensupport.URLParams
5158	ifNoneMatch_ string
5159	ctx_         context.Context
5160	header_      http.Header
5161}
5162
5163// List: Lists Histories for a given Project. The histories are sorted
5164// by modification time in descending order. The history_id key will be
5165// used to order the history with the same modification time. May return
5166// any of the following canonical error codes: - PERMISSION_DENIED - if
5167// the user is not authorized to read project - INVALID_ARGUMENT - if
5168// the request is malformed - NOT_FOUND - if the History does not exist
5169//
5170// - projectId: A Project id.
5171func (r *ProjectsHistoriesService) List(projectId string) *ProjectsHistoriesListCall {
5172	c := &ProjectsHistoriesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5173	c.projectId = projectId
5174	return c
5175}
5176
5177// FilterByName sets the optional parameter "filterByName": If set, only
5178// return histories with the given name.
5179func (c *ProjectsHistoriesListCall) FilterByName(filterByName string) *ProjectsHistoriesListCall {
5180	c.urlParams_.Set("filterByName", filterByName)
5181	return c
5182}
5183
5184// PageSize sets the optional parameter "pageSize": The maximum number
5185// of Histories to fetch. Default value: 20. The server will use this
5186// default if the field is not set or has a value of 0. Any value
5187// greater than 100 will be treated as 100.
5188func (c *ProjectsHistoriesListCall) PageSize(pageSize int64) *ProjectsHistoriesListCall {
5189	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
5190	return c
5191}
5192
5193// PageToken sets the optional parameter "pageToken": A continuation
5194// token to resume the query at the next item.
5195func (c *ProjectsHistoriesListCall) PageToken(pageToken string) *ProjectsHistoriesListCall {
5196	c.urlParams_.Set("pageToken", pageToken)
5197	return c
5198}
5199
5200// Fields allows partial responses to be retrieved. See
5201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5202// for more information.
5203func (c *ProjectsHistoriesListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesListCall {
5204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5205	return c
5206}
5207
5208// IfNoneMatch sets the optional parameter which makes the operation
5209// fail if the object's ETag matches the given value. This is useful for
5210// getting updates only after the object has changed since the last
5211// request. Use googleapi.IsNotModified to check whether the response
5212// error from Do is the result of In-None-Match.
5213func (c *ProjectsHistoriesListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesListCall {
5214	c.ifNoneMatch_ = entityTag
5215	return c
5216}
5217
5218// Context sets the context to be used in this call's Do method. Any
5219// pending HTTP request will be aborted if the provided context is
5220// canceled.
5221func (c *ProjectsHistoriesListCall) Context(ctx context.Context) *ProjectsHistoriesListCall {
5222	c.ctx_ = ctx
5223	return c
5224}
5225
5226// Header returns an http.Header that can be modified by the caller to
5227// add HTTP headers to the request.
5228func (c *ProjectsHistoriesListCall) Header() http.Header {
5229	if c.header_ == nil {
5230		c.header_ = make(http.Header)
5231	}
5232	return c.header_
5233}
5234
5235func (c *ProjectsHistoriesListCall) doRequest(alt string) (*http.Response, error) {
5236	reqHeaders := make(http.Header)
5237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
5238	for k, v := range c.header_ {
5239		reqHeaders[k] = v
5240	}
5241	reqHeaders.Set("User-Agent", c.s.userAgent())
5242	if c.ifNoneMatch_ != "" {
5243		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5244	}
5245	var body io.Reader = nil
5246	c.urlParams_.Set("alt", alt)
5247	c.urlParams_.Set("prettyPrint", "false")
5248	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories")
5249	urls += "?" + c.urlParams_.Encode()
5250	req, err := http.NewRequest("GET", urls, body)
5251	if err != nil {
5252		return nil, err
5253	}
5254	req.Header = reqHeaders
5255	googleapi.Expand(req.URL, map[string]string{
5256		"projectId": c.projectId,
5257	})
5258	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5259}
5260
5261// Do executes the "toolresults.projects.histories.list" call.
5262// Exactly one of *ListHistoriesResponse or error will be non-nil. Any
5263// non-2xx status code is an error. Response headers are in either
5264// *ListHistoriesResponse.ServerResponse.Header or (if a response was
5265// returned at all) in error.(*googleapi.Error).Header. Use
5266// googleapi.IsNotModified to check whether the returned error was
5267// because http.StatusNotModified was returned.
5268func (c *ProjectsHistoriesListCall) Do(opts ...googleapi.CallOption) (*ListHistoriesResponse, error) {
5269	gensupport.SetOptions(c.urlParams_, opts...)
5270	res, err := c.doRequest("json")
5271	if res != nil && res.StatusCode == http.StatusNotModified {
5272		if res.Body != nil {
5273			res.Body.Close()
5274		}
5275		return nil, &googleapi.Error{
5276			Code:   res.StatusCode,
5277			Header: res.Header,
5278		}
5279	}
5280	if err != nil {
5281		return nil, err
5282	}
5283	defer googleapi.CloseBody(res)
5284	if err := googleapi.CheckResponse(res); err != nil {
5285		return nil, err
5286	}
5287	ret := &ListHistoriesResponse{
5288		ServerResponse: googleapi.ServerResponse{
5289			Header:         res.Header,
5290			HTTPStatusCode: res.StatusCode,
5291		},
5292	}
5293	target := &ret
5294	if err := gensupport.DecodeResponse(target, res); err != nil {
5295		return nil, err
5296	}
5297	return ret, nil
5298	// {
5299	//   "description": "Lists Histories for a given Project. The histories are sorted by modification time in descending order. The history_id key will be used to order the history with the same modification time. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the History does not exist",
5300	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories",
5301	//   "httpMethod": "GET",
5302	//   "id": "toolresults.projects.histories.list",
5303	//   "parameterOrder": [
5304	//     "projectId"
5305	//   ],
5306	//   "parameters": {
5307	//     "filterByName": {
5308	//       "description": "If set, only return histories with the given name. Optional.",
5309	//       "location": "query",
5310	//       "type": "string"
5311	//     },
5312	//     "pageSize": {
5313	//       "description": "The maximum number of Histories to fetch. Default value: 20. The server will use this default if the field is not set or has a value of 0. Any value greater than 100 will be treated as 100. Optional.",
5314	//       "format": "int32",
5315	//       "location": "query",
5316	//       "type": "integer"
5317	//     },
5318	//     "pageToken": {
5319	//       "description": "A continuation token to resume the query at the next item. Optional.",
5320	//       "location": "query",
5321	//       "type": "string"
5322	//     },
5323	//     "projectId": {
5324	//       "description": "A Project id. Required.",
5325	//       "location": "path",
5326	//       "required": true,
5327	//       "type": "string"
5328	//     }
5329	//   },
5330	//   "path": "toolresults/v1beta3/projects/{projectId}/histories",
5331	//   "response": {
5332	//     "$ref": "ListHistoriesResponse"
5333	//   },
5334	//   "scopes": [
5335	//     "https://www.googleapis.com/auth/cloud-platform"
5336	//   ]
5337	// }
5338
5339}
5340
5341// Pages invokes f for each page of results.
5342// A non-nil error returned from f will halt the iteration.
5343// The provided context supersedes any context provided to the Context method.
5344func (c *ProjectsHistoriesListCall) Pages(ctx context.Context, f func(*ListHistoriesResponse) error) error {
5345	c.ctx_ = ctx
5346	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5347	for {
5348		x, err := c.Do()
5349		if err != nil {
5350			return err
5351		}
5352		if err := f(x); err != nil {
5353			return err
5354		}
5355		if x.NextPageToken == "" {
5356			return nil
5357		}
5358		c.PageToken(x.NextPageToken)
5359	}
5360}
5361
5362// method id "toolresults.projects.histories.executions.create":
5363
5364type ProjectsHistoriesExecutionsCreateCall struct {
5365	s          *Service
5366	projectId  string
5367	historyId  string
5368	execution  *Execution
5369	urlParams_ gensupport.URLParams
5370	ctx_       context.Context
5371	header_    http.Header
5372}
5373
5374// Create: Creates an Execution. The returned Execution will have the id
5375// set. May return any of the following canonical error codes: -
5376// PERMISSION_DENIED - if the user is not authorized to write to project
5377// - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the
5378// containing History does not exist
5379//
5380// - historyId: A History id.
5381// - projectId: A Project id.
5382func (r *ProjectsHistoriesExecutionsService) Create(projectId string, historyId string, execution *Execution) *ProjectsHistoriesExecutionsCreateCall {
5383	c := &ProjectsHistoriesExecutionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5384	c.projectId = projectId
5385	c.historyId = historyId
5386	c.execution = execution
5387	return c
5388}
5389
5390// RequestId sets the optional parameter "requestId": A unique request
5391// ID for server to detect duplicated requests. For example, a UUID.
5392// Optional, but strongly recommended.
5393func (c *ProjectsHistoriesExecutionsCreateCall) RequestId(requestId string) *ProjectsHistoriesExecutionsCreateCall {
5394	c.urlParams_.Set("requestId", requestId)
5395	return c
5396}
5397
5398// Fields allows partial responses to be retrieved. See
5399// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5400// for more information.
5401func (c *ProjectsHistoriesExecutionsCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsCreateCall {
5402	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5403	return c
5404}
5405
5406// Context sets the context to be used in this call's Do method. Any
5407// pending HTTP request will be aborted if the provided context is
5408// canceled.
5409func (c *ProjectsHistoriesExecutionsCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsCreateCall {
5410	c.ctx_ = ctx
5411	return c
5412}
5413
5414// Header returns an http.Header that can be modified by the caller to
5415// add HTTP headers to the request.
5416func (c *ProjectsHistoriesExecutionsCreateCall) Header() http.Header {
5417	if c.header_ == nil {
5418		c.header_ = make(http.Header)
5419	}
5420	return c.header_
5421}
5422
5423func (c *ProjectsHistoriesExecutionsCreateCall) doRequest(alt string) (*http.Response, error) {
5424	reqHeaders := make(http.Header)
5425	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
5426	for k, v := range c.header_ {
5427		reqHeaders[k] = v
5428	}
5429	reqHeaders.Set("User-Agent", c.s.userAgent())
5430	var body io.Reader = nil
5431	body, err := googleapi.WithoutDataWrapper.JSONReader(c.execution)
5432	if err != nil {
5433		return nil, err
5434	}
5435	reqHeaders.Set("Content-Type", "application/json")
5436	c.urlParams_.Set("alt", alt)
5437	c.urlParams_.Set("prettyPrint", "false")
5438	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions")
5439	urls += "?" + c.urlParams_.Encode()
5440	req, err := http.NewRequest("POST", urls, body)
5441	if err != nil {
5442		return nil, err
5443	}
5444	req.Header = reqHeaders
5445	googleapi.Expand(req.URL, map[string]string{
5446		"projectId": c.projectId,
5447		"historyId": c.historyId,
5448	})
5449	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5450}
5451
5452// Do executes the "toolresults.projects.histories.executions.create" call.
5453// Exactly one of *Execution or error will be non-nil. Any non-2xx
5454// status code is an error. Response headers are in either
5455// *Execution.ServerResponse.Header or (if a response was returned at
5456// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5457// to check whether the returned error was because
5458// http.StatusNotModified was returned.
5459func (c *ProjectsHistoriesExecutionsCreateCall) Do(opts ...googleapi.CallOption) (*Execution, error) {
5460	gensupport.SetOptions(c.urlParams_, opts...)
5461	res, err := c.doRequest("json")
5462	if res != nil && res.StatusCode == http.StatusNotModified {
5463		if res.Body != nil {
5464			res.Body.Close()
5465		}
5466		return nil, &googleapi.Error{
5467			Code:   res.StatusCode,
5468			Header: res.Header,
5469		}
5470	}
5471	if err != nil {
5472		return nil, err
5473	}
5474	defer googleapi.CloseBody(res)
5475	if err := googleapi.CheckResponse(res); err != nil {
5476		return nil, err
5477	}
5478	ret := &Execution{
5479		ServerResponse: googleapi.ServerResponse{
5480			Header:         res.Header,
5481			HTTPStatusCode: res.StatusCode,
5482		},
5483	}
5484	target := &ret
5485	if err := gensupport.DecodeResponse(target, res); err != nil {
5486		return nil, err
5487	}
5488	return ret, nil
5489	// {
5490	//   "description": "Creates an Execution. The returned Execution will have the id set. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing History does not exist",
5491	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions",
5492	//   "httpMethod": "POST",
5493	//   "id": "toolresults.projects.histories.executions.create",
5494	//   "parameterOrder": [
5495	//     "projectId",
5496	//     "historyId"
5497	//   ],
5498	//   "parameters": {
5499	//     "historyId": {
5500	//       "description": "A History id. Required.",
5501	//       "location": "path",
5502	//       "required": true,
5503	//       "type": "string"
5504	//     },
5505	//     "projectId": {
5506	//       "description": "A Project id. Required.",
5507	//       "location": "path",
5508	//       "required": true,
5509	//       "type": "string"
5510	//     },
5511	//     "requestId": {
5512	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID. Optional, but strongly recommended.",
5513	//       "location": "query",
5514	//       "type": "string"
5515	//     }
5516	//   },
5517	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions",
5518	//   "request": {
5519	//     "$ref": "Execution"
5520	//   },
5521	//   "response": {
5522	//     "$ref": "Execution"
5523	//   },
5524	//   "scopes": [
5525	//     "https://www.googleapis.com/auth/cloud-platform"
5526	//   ]
5527	// }
5528
5529}
5530
5531// method id "toolresults.projects.histories.executions.get":
5532
5533type ProjectsHistoriesExecutionsGetCall struct {
5534	s            *Service
5535	projectId    string
5536	historyId    string
5537	executionId  string
5538	urlParams_   gensupport.URLParams
5539	ifNoneMatch_ string
5540	ctx_         context.Context
5541	header_      http.Header
5542}
5543
5544// Get: Gets an Execution. May return any of the following canonical
5545// error codes: - PERMISSION_DENIED - if the user is not authorized to
5546// write to project - INVALID_ARGUMENT - if the request is malformed -
5547// NOT_FOUND - if the Execution does not exist
5548//
5549// - executionId: An Execution id.
5550// - historyId: A History id.
5551// - projectId: A Project id.
5552func (r *ProjectsHistoriesExecutionsService) Get(projectId string, historyId string, executionId string) *ProjectsHistoriesExecutionsGetCall {
5553	c := &ProjectsHistoriesExecutionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5554	c.projectId = projectId
5555	c.historyId = historyId
5556	c.executionId = executionId
5557	return c
5558}
5559
5560// Fields allows partial responses to be retrieved. See
5561// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5562// for more information.
5563func (c *ProjectsHistoriesExecutionsGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsGetCall {
5564	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5565	return c
5566}
5567
5568// IfNoneMatch sets the optional parameter which makes the operation
5569// fail if the object's ETag matches the given value. This is useful for
5570// getting updates only after the object has changed since the last
5571// request. Use googleapi.IsNotModified to check whether the response
5572// error from Do is the result of In-None-Match.
5573func (c *ProjectsHistoriesExecutionsGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsGetCall {
5574	c.ifNoneMatch_ = entityTag
5575	return c
5576}
5577
5578// Context sets the context to be used in this call's Do method. Any
5579// pending HTTP request will be aborted if the provided context is
5580// canceled.
5581func (c *ProjectsHistoriesExecutionsGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsGetCall {
5582	c.ctx_ = ctx
5583	return c
5584}
5585
5586// Header returns an http.Header that can be modified by the caller to
5587// add HTTP headers to the request.
5588func (c *ProjectsHistoriesExecutionsGetCall) Header() http.Header {
5589	if c.header_ == nil {
5590		c.header_ = make(http.Header)
5591	}
5592	return c.header_
5593}
5594
5595func (c *ProjectsHistoriesExecutionsGetCall) doRequest(alt string) (*http.Response, error) {
5596	reqHeaders := make(http.Header)
5597	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
5598	for k, v := range c.header_ {
5599		reqHeaders[k] = v
5600	}
5601	reqHeaders.Set("User-Agent", c.s.userAgent())
5602	if c.ifNoneMatch_ != "" {
5603		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5604	}
5605	var body io.Reader = nil
5606	c.urlParams_.Set("alt", alt)
5607	c.urlParams_.Set("prettyPrint", "false")
5608	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}")
5609	urls += "?" + c.urlParams_.Encode()
5610	req, err := http.NewRequest("GET", urls, body)
5611	if err != nil {
5612		return nil, err
5613	}
5614	req.Header = reqHeaders
5615	googleapi.Expand(req.URL, map[string]string{
5616		"projectId":   c.projectId,
5617		"historyId":   c.historyId,
5618		"executionId": c.executionId,
5619	})
5620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5621}
5622
5623// Do executes the "toolresults.projects.histories.executions.get" call.
5624// Exactly one of *Execution or error will be non-nil. Any non-2xx
5625// status code is an error. Response headers are in either
5626// *Execution.ServerResponse.Header or (if a response was returned at
5627// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5628// to check whether the returned error was because
5629// http.StatusNotModified was returned.
5630func (c *ProjectsHistoriesExecutionsGetCall) Do(opts ...googleapi.CallOption) (*Execution, error) {
5631	gensupport.SetOptions(c.urlParams_, opts...)
5632	res, err := c.doRequest("json")
5633	if res != nil && res.StatusCode == http.StatusNotModified {
5634		if res.Body != nil {
5635			res.Body.Close()
5636		}
5637		return nil, &googleapi.Error{
5638			Code:   res.StatusCode,
5639			Header: res.Header,
5640		}
5641	}
5642	if err != nil {
5643		return nil, err
5644	}
5645	defer googleapi.CloseBody(res)
5646	if err := googleapi.CheckResponse(res); err != nil {
5647		return nil, err
5648	}
5649	ret := &Execution{
5650		ServerResponse: googleapi.ServerResponse{
5651			Header:         res.Header,
5652			HTTPStatusCode: res.StatusCode,
5653		},
5654	}
5655	target := &ret
5656	if err := gensupport.DecodeResponse(target, res); err != nil {
5657		return nil, err
5658	}
5659	return ret, nil
5660	// {
5661	//   "description": "Gets an Execution. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Execution does not exist",
5662	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}",
5663	//   "httpMethod": "GET",
5664	//   "id": "toolresults.projects.histories.executions.get",
5665	//   "parameterOrder": [
5666	//     "projectId",
5667	//     "historyId",
5668	//     "executionId"
5669	//   ],
5670	//   "parameters": {
5671	//     "executionId": {
5672	//       "description": "An Execution id. Required.",
5673	//       "location": "path",
5674	//       "required": true,
5675	//       "type": "string"
5676	//     },
5677	//     "historyId": {
5678	//       "description": "A History id. Required.",
5679	//       "location": "path",
5680	//       "required": true,
5681	//       "type": "string"
5682	//     },
5683	//     "projectId": {
5684	//       "description": "A Project id. Required.",
5685	//       "location": "path",
5686	//       "required": true,
5687	//       "type": "string"
5688	//     }
5689	//   },
5690	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}",
5691	//   "response": {
5692	//     "$ref": "Execution"
5693	//   },
5694	//   "scopes": [
5695	//     "https://www.googleapis.com/auth/cloud-platform"
5696	//   ]
5697	// }
5698
5699}
5700
5701// method id "toolresults.projects.histories.executions.list":
5702
5703type ProjectsHistoriesExecutionsListCall struct {
5704	s            *Service
5705	projectId    string
5706	historyId    string
5707	urlParams_   gensupport.URLParams
5708	ifNoneMatch_ string
5709	ctx_         context.Context
5710	header_      http.Header
5711}
5712
5713// List: Lists Executions for a given History. The executions are sorted
5714// by creation_time in descending order. The execution_id key will be
5715// used to order the executions with the same creation_time. May return
5716// any of the following canonical error codes: - PERMISSION_DENIED - if
5717// the user is not authorized to read project - INVALID_ARGUMENT - if
5718// the request is malformed - NOT_FOUND - if the containing History does
5719// not exist
5720//
5721// - historyId: A History id.
5722// - projectId: A Project id.
5723func (r *ProjectsHistoriesExecutionsService) List(projectId string, historyId string) *ProjectsHistoriesExecutionsListCall {
5724	c := &ProjectsHistoriesExecutionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5725	c.projectId = projectId
5726	c.historyId = historyId
5727	return c
5728}
5729
5730// PageSize sets the optional parameter "pageSize": The maximum number
5731// of Executions to fetch. Default value: 25. The server will use this
5732// default if the field is not set or has a value of 0.
5733func (c *ProjectsHistoriesExecutionsListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsListCall {
5734	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
5735	return c
5736}
5737
5738// PageToken sets the optional parameter "pageToken": A continuation
5739// token to resume the query at the next item.
5740func (c *ProjectsHistoriesExecutionsListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsListCall {
5741	c.urlParams_.Set("pageToken", pageToken)
5742	return c
5743}
5744
5745// Fields allows partial responses to be retrieved. See
5746// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5747// for more information.
5748func (c *ProjectsHistoriesExecutionsListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsListCall {
5749	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5750	return c
5751}
5752
5753// IfNoneMatch sets the optional parameter which makes the operation
5754// fail if the object's ETag matches the given value. This is useful for
5755// getting updates only after the object has changed since the last
5756// request. Use googleapi.IsNotModified to check whether the response
5757// error from Do is the result of In-None-Match.
5758func (c *ProjectsHistoriesExecutionsListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsListCall {
5759	c.ifNoneMatch_ = entityTag
5760	return c
5761}
5762
5763// Context sets the context to be used in this call's Do method. Any
5764// pending HTTP request will be aborted if the provided context is
5765// canceled.
5766func (c *ProjectsHistoriesExecutionsListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsListCall {
5767	c.ctx_ = ctx
5768	return c
5769}
5770
5771// Header returns an http.Header that can be modified by the caller to
5772// add HTTP headers to the request.
5773func (c *ProjectsHistoriesExecutionsListCall) Header() http.Header {
5774	if c.header_ == nil {
5775		c.header_ = make(http.Header)
5776	}
5777	return c.header_
5778}
5779
5780func (c *ProjectsHistoriesExecutionsListCall) doRequest(alt string) (*http.Response, error) {
5781	reqHeaders := make(http.Header)
5782	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
5783	for k, v := range c.header_ {
5784		reqHeaders[k] = v
5785	}
5786	reqHeaders.Set("User-Agent", c.s.userAgent())
5787	if c.ifNoneMatch_ != "" {
5788		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5789	}
5790	var body io.Reader = nil
5791	c.urlParams_.Set("alt", alt)
5792	c.urlParams_.Set("prettyPrint", "false")
5793	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions")
5794	urls += "?" + c.urlParams_.Encode()
5795	req, err := http.NewRequest("GET", urls, body)
5796	if err != nil {
5797		return nil, err
5798	}
5799	req.Header = reqHeaders
5800	googleapi.Expand(req.URL, map[string]string{
5801		"projectId": c.projectId,
5802		"historyId": c.historyId,
5803	})
5804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5805}
5806
5807// Do executes the "toolresults.projects.histories.executions.list" call.
5808// Exactly one of *ListExecutionsResponse or error will be non-nil. Any
5809// non-2xx status code is an error. Response headers are in either
5810// *ListExecutionsResponse.ServerResponse.Header or (if a response was
5811// returned at all) in error.(*googleapi.Error).Header. Use
5812// googleapi.IsNotModified to check whether the returned error was
5813// because http.StatusNotModified was returned.
5814func (c *ProjectsHistoriesExecutionsListCall) Do(opts ...googleapi.CallOption) (*ListExecutionsResponse, error) {
5815	gensupport.SetOptions(c.urlParams_, opts...)
5816	res, err := c.doRequest("json")
5817	if res != nil && res.StatusCode == http.StatusNotModified {
5818		if res.Body != nil {
5819			res.Body.Close()
5820		}
5821		return nil, &googleapi.Error{
5822			Code:   res.StatusCode,
5823			Header: res.Header,
5824		}
5825	}
5826	if err != nil {
5827		return nil, err
5828	}
5829	defer googleapi.CloseBody(res)
5830	if err := googleapi.CheckResponse(res); err != nil {
5831		return nil, err
5832	}
5833	ret := &ListExecutionsResponse{
5834		ServerResponse: googleapi.ServerResponse{
5835			Header:         res.Header,
5836			HTTPStatusCode: res.StatusCode,
5837		},
5838	}
5839	target := &ret
5840	if err := gensupport.DecodeResponse(target, res); err != nil {
5841		return nil, err
5842	}
5843	return ret, nil
5844	// {
5845	//   "description": "Lists Executions for a given History. The executions are sorted by creation_time in descending order. The execution_id key will be used to order the executions with the same creation_time. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing History does not exist",
5846	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions",
5847	//   "httpMethod": "GET",
5848	//   "id": "toolresults.projects.histories.executions.list",
5849	//   "parameterOrder": [
5850	//     "projectId",
5851	//     "historyId"
5852	//   ],
5853	//   "parameters": {
5854	//     "historyId": {
5855	//       "description": "A History id. Required.",
5856	//       "location": "path",
5857	//       "required": true,
5858	//       "type": "string"
5859	//     },
5860	//     "pageSize": {
5861	//       "description": "The maximum number of Executions to fetch. Default value: 25. The server will use this default if the field is not set or has a value of 0. Optional.",
5862	//       "format": "int32",
5863	//       "location": "query",
5864	//       "type": "integer"
5865	//     },
5866	//     "pageToken": {
5867	//       "description": "A continuation token to resume the query at the next item. Optional.",
5868	//       "location": "query",
5869	//       "type": "string"
5870	//     },
5871	//     "projectId": {
5872	//       "description": "A Project id. Required.",
5873	//       "location": "path",
5874	//       "required": true,
5875	//       "type": "string"
5876	//     }
5877	//   },
5878	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions",
5879	//   "response": {
5880	//     "$ref": "ListExecutionsResponse"
5881	//   },
5882	//   "scopes": [
5883	//     "https://www.googleapis.com/auth/cloud-platform"
5884	//   ]
5885	// }
5886
5887}
5888
5889// Pages invokes f for each page of results.
5890// A non-nil error returned from f will halt the iteration.
5891// The provided context supersedes any context provided to the Context method.
5892func (c *ProjectsHistoriesExecutionsListCall) Pages(ctx context.Context, f func(*ListExecutionsResponse) error) error {
5893	c.ctx_ = ctx
5894	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5895	for {
5896		x, err := c.Do()
5897		if err != nil {
5898			return err
5899		}
5900		if err := f(x); err != nil {
5901			return err
5902		}
5903		if x.NextPageToken == "" {
5904			return nil
5905		}
5906		c.PageToken(x.NextPageToken)
5907	}
5908}
5909
5910// method id "toolresults.projects.histories.executions.patch":
5911
5912type ProjectsHistoriesExecutionsPatchCall struct {
5913	s           *Service
5914	projectId   string
5915	historyId   string
5916	executionId string
5917	execution   *Execution
5918	urlParams_  gensupport.URLParams
5919	ctx_        context.Context
5920	header_     http.Header
5921}
5922
5923// Patch: Updates an existing Execution with the supplied partial
5924// entity. May return any of the following canonical error codes: -
5925// PERMISSION_DENIED - if the user is not authorized to write to project
5926// - INVALID_ARGUMENT - if the request is malformed -
5927// FAILED_PRECONDITION - if the requested state transition is illegal -
5928// NOT_FOUND - if the containing History does not exist
5929//
5930// - executionId: .
5931// - historyId: .
5932// - projectId: A Project id.
5933func (r *ProjectsHistoriesExecutionsService) Patch(projectId string, historyId string, executionId string, execution *Execution) *ProjectsHistoriesExecutionsPatchCall {
5934	c := &ProjectsHistoriesExecutionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5935	c.projectId = projectId
5936	c.historyId = historyId
5937	c.executionId = executionId
5938	c.execution = execution
5939	return c
5940}
5941
5942// RequestId sets the optional parameter "requestId": A unique request
5943// ID for server to detect duplicated requests. For example, a UUID.
5944// Optional, but strongly recommended.
5945func (c *ProjectsHistoriesExecutionsPatchCall) RequestId(requestId string) *ProjectsHistoriesExecutionsPatchCall {
5946	c.urlParams_.Set("requestId", requestId)
5947	return c
5948}
5949
5950// Fields allows partial responses to be retrieved. See
5951// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5952// for more information.
5953func (c *ProjectsHistoriesExecutionsPatchCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsPatchCall {
5954	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5955	return c
5956}
5957
5958// Context sets the context to be used in this call's Do method. Any
5959// pending HTTP request will be aborted if the provided context is
5960// canceled.
5961func (c *ProjectsHistoriesExecutionsPatchCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsPatchCall {
5962	c.ctx_ = ctx
5963	return c
5964}
5965
5966// Header returns an http.Header that can be modified by the caller to
5967// add HTTP headers to the request.
5968func (c *ProjectsHistoriesExecutionsPatchCall) Header() http.Header {
5969	if c.header_ == nil {
5970		c.header_ = make(http.Header)
5971	}
5972	return c.header_
5973}
5974
5975func (c *ProjectsHistoriesExecutionsPatchCall) doRequest(alt string) (*http.Response, error) {
5976	reqHeaders := make(http.Header)
5977	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
5978	for k, v := range c.header_ {
5979		reqHeaders[k] = v
5980	}
5981	reqHeaders.Set("User-Agent", c.s.userAgent())
5982	var body io.Reader = nil
5983	body, err := googleapi.WithoutDataWrapper.JSONReader(c.execution)
5984	if err != nil {
5985		return nil, err
5986	}
5987	reqHeaders.Set("Content-Type", "application/json")
5988	c.urlParams_.Set("alt", alt)
5989	c.urlParams_.Set("prettyPrint", "false")
5990	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}")
5991	urls += "?" + c.urlParams_.Encode()
5992	req, err := http.NewRequest("PATCH", urls, body)
5993	if err != nil {
5994		return nil, err
5995	}
5996	req.Header = reqHeaders
5997	googleapi.Expand(req.URL, map[string]string{
5998		"projectId":   c.projectId,
5999		"historyId":   c.historyId,
6000		"executionId": c.executionId,
6001	})
6002	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6003}
6004
6005// Do executes the "toolresults.projects.histories.executions.patch" call.
6006// Exactly one of *Execution or error will be non-nil. Any non-2xx
6007// status code is an error. Response headers are in either
6008// *Execution.ServerResponse.Header or (if a response was returned at
6009// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6010// to check whether the returned error was because
6011// http.StatusNotModified was returned.
6012func (c *ProjectsHistoriesExecutionsPatchCall) Do(opts ...googleapi.CallOption) (*Execution, error) {
6013	gensupport.SetOptions(c.urlParams_, opts...)
6014	res, err := c.doRequest("json")
6015	if res != nil && res.StatusCode == http.StatusNotModified {
6016		if res.Body != nil {
6017			res.Body.Close()
6018		}
6019		return nil, &googleapi.Error{
6020			Code:   res.StatusCode,
6021			Header: res.Header,
6022		}
6023	}
6024	if err != nil {
6025		return nil, err
6026	}
6027	defer googleapi.CloseBody(res)
6028	if err := googleapi.CheckResponse(res); err != nil {
6029		return nil, err
6030	}
6031	ret := &Execution{
6032		ServerResponse: googleapi.ServerResponse{
6033			Header:         res.Header,
6034			HTTPStatusCode: res.StatusCode,
6035		},
6036	}
6037	target := &ret
6038	if err := gensupport.DecodeResponse(target, res); err != nil {
6039		return nil, err
6040	}
6041	return ret, nil
6042	// {
6043	//   "description": "Updates an existing Execution with the supplied partial entity. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal - NOT_FOUND - if the containing History does not exist",
6044	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}",
6045	//   "httpMethod": "PATCH",
6046	//   "id": "toolresults.projects.histories.executions.patch",
6047	//   "parameterOrder": [
6048	//     "projectId",
6049	//     "historyId",
6050	//     "executionId"
6051	//   ],
6052	//   "parameters": {
6053	//     "executionId": {
6054	//       "description": "Required.",
6055	//       "location": "path",
6056	//       "required": true,
6057	//       "type": "string"
6058	//     },
6059	//     "historyId": {
6060	//       "description": "Required.",
6061	//       "location": "path",
6062	//       "required": true,
6063	//       "type": "string"
6064	//     },
6065	//     "projectId": {
6066	//       "description": "A Project id. Required.",
6067	//       "location": "path",
6068	//       "required": true,
6069	//       "type": "string"
6070	//     },
6071	//     "requestId": {
6072	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID. Optional, but strongly recommended.",
6073	//       "location": "query",
6074	//       "type": "string"
6075	//     }
6076	//   },
6077	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}",
6078	//   "request": {
6079	//     "$ref": "Execution"
6080	//   },
6081	//   "response": {
6082	//     "$ref": "Execution"
6083	//   },
6084	//   "scopes": [
6085	//     "https://www.googleapis.com/auth/cloud-platform"
6086	//   ]
6087	// }
6088
6089}
6090
6091// method id "toolresults.projects.histories.executions.clusters.get":
6092
6093type ProjectsHistoriesExecutionsClustersGetCall struct {
6094	s            *Service
6095	projectId    string
6096	historyId    string
6097	executionId  string
6098	clusterId    string
6099	urlParams_   gensupport.URLParams
6100	ifNoneMatch_ string
6101	ctx_         context.Context
6102	header_      http.Header
6103}
6104
6105// Get: Retrieves a single screenshot cluster by its ID
6106//
6107// - clusterId: A Cluster id.
6108// - executionId: An Execution id.
6109// - historyId: A History id.
6110// - projectId: A Project id.
6111func (r *ProjectsHistoriesExecutionsClustersService) Get(projectId string, historyId string, executionId string, clusterId string) *ProjectsHistoriesExecutionsClustersGetCall {
6112	c := &ProjectsHistoriesExecutionsClustersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6113	c.projectId = projectId
6114	c.historyId = historyId
6115	c.executionId = executionId
6116	c.clusterId = clusterId
6117	return c
6118}
6119
6120// Fields allows partial responses to be retrieved. See
6121// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6122// for more information.
6123func (c *ProjectsHistoriesExecutionsClustersGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsClustersGetCall {
6124	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6125	return c
6126}
6127
6128// IfNoneMatch sets the optional parameter which makes the operation
6129// fail if the object's ETag matches the given value. This is useful for
6130// getting updates only after the object has changed since the last
6131// request. Use googleapi.IsNotModified to check whether the response
6132// error from Do is the result of In-None-Match.
6133func (c *ProjectsHistoriesExecutionsClustersGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsClustersGetCall {
6134	c.ifNoneMatch_ = entityTag
6135	return c
6136}
6137
6138// Context sets the context to be used in this call's Do method. Any
6139// pending HTTP request will be aborted if the provided context is
6140// canceled.
6141func (c *ProjectsHistoriesExecutionsClustersGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsClustersGetCall {
6142	c.ctx_ = ctx
6143	return c
6144}
6145
6146// Header returns an http.Header that can be modified by the caller to
6147// add HTTP headers to the request.
6148func (c *ProjectsHistoriesExecutionsClustersGetCall) Header() http.Header {
6149	if c.header_ == nil {
6150		c.header_ = make(http.Header)
6151	}
6152	return c.header_
6153}
6154
6155func (c *ProjectsHistoriesExecutionsClustersGetCall) doRequest(alt string) (*http.Response, error) {
6156	reqHeaders := make(http.Header)
6157	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
6158	for k, v := range c.header_ {
6159		reqHeaders[k] = v
6160	}
6161	reqHeaders.Set("User-Agent", c.s.userAgent())
6162	if c.ifNoneMatch_ != "" {
6163		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6164	}
6165	var body io.Reader = nil
6166	c.urlParams_.Set("alt", alt)
6167	c.urlParams_.Set("prettyPrint", "false")
6168	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters/{clusterId}")
6169	urls += "?" + c.urlParams_.Encode()
6170	req, err := http.NewRequest("GET", urls, body)
6171	if err != nil {
6172		return nil, err
6173	}
6174	req.Header = reqHeaders
6175	googleapi.Expand(req.URL, map[string]string{
6176		"projectId":   c.projectId,
6177		"historyId":   c.historyId,
6178		"executionId": c.executionId,
6179		"clusterId":   c.clusterId,
6180	})
6181	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6182}
6183
6184// Do executes the "toolresults.projects.histories.executions.clusters.get" call.
6185// Exactly one of *ScreenshotCluster or error will be non-nil. Any
6186// non-2xx status code is an error. Response headers are in either
6187// *ScreenshotCluster.ServerResponse.Header or (if a response was
6188// returned at all) in error.(*googleapi.Error).Header. Use
6189// googleapi.IsNotModified to check whether the returned error was
6190// because http.StatusNotModified was returned.
6191func (c *ProjectsHistoriesExecutionsClustersGetCall) Do(opts ...googleapi.CallOption) (*ScreenshotCluster, error) {
6192	gensupport.SetOptions(c.urlParams_, opts...)
6193	res, err := c.doRequest("json")
6194	if res != nil && res.StatusCode == http.StatusNotModified {
6195		if res.Body != nil {
6196			res.Body.Close()
6197		}
6198		return nil, &googleapi.Error{
6199			Code:   res.StatusCode,
6200			Header: res.Header,
6201		}
6202	}
6203	if err != nil {
6204		return nil, err
6205	}
6206	defer googleapi.CloseBody(res)
6207	if err := googleapi.CheckResponse(res); err != nil {
6208		return nil, err
6209	}
6210	ret := &ScreenshotCluster{
6211		ServerResponse: googleapi.ServerResponse{
6212			Header:         res.Header,
6213			HTTPStatusCode: res.StatusCode,
6214		},
6215	}
6216	target := &ret
6217	if err := gensupport.DecodeResponse(target, res); err != nil {
6218		return nil, err
6219	}
6220	return ret, nil
6221	// {
6222	//   "description": "Retrieves a single screenshot cluster by its ID",
6223	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters/{clusterId}",
6224	//   "httpMethod": "GET",
6225	//   "id": "toolresults.projects.histories.executions.clusters.get",
6226	//   "parameterOrder": [
6227	//     "projectId",
6228	//     "historyId",
6229	//     "executionId",
6230	//     "clusterId"
6231	//   ],
6232	//   "parameters": {
6233	//     "clusterId": {
6234	//       "description": "A Cluster id Required.",
6235	//       "location": "path",
6236	//       "required": true,
6237	//       "type": "string"
6238	//     },
6239	//     "executionId": {
6240	//       "description": "An Execution id. Required.",
6241	//       "location": "path",
6242	//       "required": true,
6243	//       "type": "string"
6244	//     },
6245	//     "historyId": {
6246	//       "description": "A History id. Required.",
6247	//       "location": "path",
6248	//       "required": true,
6249	//       "type": "string"
6250	//     },
6251	//     "projectId": {
6252	//       "description": "A Project id. Required.",
6253	//       "location": "path",
6254	//       "required": true,
6255	//       "type": "string"
6256	//     }
6257	//   },
6258	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters/{clusterId}",
6259	//   "response": {
6260	//     "$ref": "ScreenshotCluster"
6261	//   },
6262	//   "scopes": [
6263	//     "https://www.googleapis.com/auth/cloud-platform"
6264	//   ]
6265	// }
6266
6267}
6268
6269// method id "toolresults.projects.histories.executions.clusters.list":
6270
6271type ProjectsHistoriesExecutionsClustersListCall struct {
6272	s            *Service
6273	projectId    string
6274	historyId    string
6275	executionId  string
6276	urlParams_   gensupport.URLParams
6277	ifNoneMatch_ string
6278	ctx_         context.Context
6279	header_      http.Header
6280}
6281
6282// List: Lists Screenshot Clusters Returns the list of screenshot
6283// clusters corresponding to an execution. Screenshot clusters are
6284// created after the execution is finished. Clusters are created from a
6285// set of screenshots. Between any two screenshots, a matching score is
6286// calculated based off their metadata that determines how similar they
6287// are. Screenshots are placed in the cluster that has screens which
6288// have the highest matching scores.
6289//
6290// - executionId: An Execution id.
6291// - historyId: A History id.
6292// - projectId: A Project id.
6293func (r *ProjectsHistoriesExecutionsClustersService) List(projectId string, historyId string, executionId string) *ProjectsHistoriesExecutionsClustersListCall {
6294	c := &ProjectsHistoriesExecutionsClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6295	c.projectId = projectId
6296	c.historyId = historyId
6297	c.executionId = executionId
6298	return c
6299}
6300
6301// Fields allows partial responses to be retrieved. See
6302// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6303// for more information.
6304func (c *ProjectsHistoriesExecutionsClustersListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsClustersListCall {
6305	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6306	return c
6307}
6308
6309// IfNoneMatch sets the optional parameter which makes the operation
6310// fail if the object's ETag matches the given value. This is useful for
6311// getting updates only after the object has changed since the last
6312// request. Use googleapi.IsNotModified to check whether the response
6313// error from Do is the result of In-None-Match.
6314func (c *ProjectsHistoriesExecutionsClustersListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsClustersListCall {
6315	c.ifNoneMatch_ = entityTag
6316	return c
6317}
6318
6319// Context sets the context to be used in this call's Do method. Any
6320// pending HTTP request will be aborted if the provided context is
6321// canceled.
6322func (c *ProjectsHistoriesExecutionsClustersListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsClustersListCall {
6323	c.ctx_ = ctx
6324	return c
6325}
6326
6327// Header returns an http.Header that can be modified by the caller to
6328// add HTTP headers to the request.
6329func (c *ProjectsHistoriesExecutionsClustersListCall) Header() http.Header {
6330	if c.header_ == nil {
6331		c.header_ = make(http.Header)
6332	}
6333	return c.header_
6334}
6335
6336func (c *ProjectsHistoriesExecutionsClustersListCall) doRequest(alt string) (*http.Response, error) {
6337	reqHeaders := make(http.Header)
6338	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
6339	for k, v := range c.header_ {
6340		reqHeaders[k] = v
6341	}
6342	reqHeaders.Set("User-Agent", c.s.userAgent())
6343	if c.ifNoneMatch_ != "" {
6344		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6345	}
6346	var body io.Reader = nil
6347	c.urlParams_.Set("alt", alt)
6348	c.urlParams_.Set("prettyPrint", "false")
6349	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters")
6350	urls += "?" + c.urlParams_.Encode()
6351	req, err := http.NewRequest("GET", urls, body)
6352	if err != nil {
6353		return nil, err
6354	}
6355	req.Header = reqHeaders
6356	googleapi.Expand(req.URL, map[string]string{
6357		"projectId":   c.projectId,
6358		"historyId":   c.historyId,
6359		"executionId": c.executionId,
6360	})
6361	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6362}
6363
6364// Do executes the "toolresults.projects.histories.executions.clusters.list" call.
6365// Exactly one of *ListScreenshotClustersResponse or error will be
6366// non-nil. Any non-2xx status code is an error. Response headers are in
6367// either *ListScreenshotClustersResponse.ServerResponse.Header or (if a
6368// response was returned at all) in error.(*googleapi.Error).Header. Use
6369// googleapi.IsNotModified to check whether the returned error was
6370// because http.StatusNotModified was returned.
6371func (c *ProjectsHistoriesExecutionsClustersListCall) Do(opts ...googleapi.CallOption) (*ListScreenshotClustersResponse, error) {
6372	gensupport.SetOptions(c.urlParams_, opts...)
6373	res, err := c.doRequest("json")
6374	if res != nil && res.StatusCode == http.StatusNotModified {
6375		if res.Body != nil {
6376			res.Body.Close()
6377		}
6378		return nil, &googleapi.Error{
6379			Code:   res.StatusCode,
6380			Header: res.Header,
6381		}
6382	}
6383	if err != nil {
6384		return nil, err
6385	}
6386	defer googleapi.CloseBody(res)
6387	if err := googleapi.CheckResponse(res); err != nil {
6388		return nil, err
6389	}
6390	ret := &ListScreenshotClustersResponse{
6391		ServerResponse: googleapi.ServerResponse{
6392			Header:         res.Header,
6393			HTTPStatusCode: res.StatusCode,
6394		},
6395	}
6396	target := &ret
6397	if err := gensupport.DecodeResponse(target, res); err != nil {
6398		return nil, err
6399	}
6400	return ret, nil
6401	// {
6402	//   "description": "Lists Screenshot Clusters Returns the list of screenshot clusters corresponding to an execution. Screenshot clusters are created after the execution is finished. Clusters are created from a set of screenshots. Between any two screenshots, a matching score is calculated based off their metadata that determines how similar they are. Screenshots are placed in the cluster that has screens which have the highest matching scores.",
6403	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters",
6404	//   "httpMethod": "GET",
6405	//   "id": "toolresults.projects.histories.executions.clusters.list",
6406	//   "parameterOrder": [
6407	//     "projectId",
6408	//     "historyId",
6409	//     "executionId"
6410	//   ],
6411	//   "parameters": {
6412	//     "executionId": {
6413	//       "description": "An Execution id. Required.",
6414	//       "location": "path",
6415	//       "required": true,
6416	//       "type": "string"
6417	//     },
6418	//     "historyId": {
6419	//       "description": "A History id. Required.",
6420	//       "location": "path",
6421	//       "required": true,
6422	//       "type": "string"
6423	//     },
6424	//     "projectId": {
6425	//       "description": "A Project id. Required.",
6426	//       "location": "path",
6427	//       "required": true,
6428	//       "type": "string"
6429	//     }
6430	//   },
6431	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters",
6432	//   "response": {
6433	//     "$ref": "ListScreenshotClustersResponse"
6434	//   },
6435	//   "scopes": [
6436	//     "https://www.googleapis.com/auth/cloud-platform"
6437	//   ]
6438	// }
6439
6440}
6441
6442// method id "toolresults.projects.histories.executions.environments.get":
6443
6444type ProjectsHistoriesExecutionsEnvironmentsGetCall struct {
6445	s             *Service
6446	projectId     string
6447	historyId     string
6448	executionId   string
6449	environmentId string
6450	urlParams_    gensupport.URLParams
6451	ifNoneMatch_  string
6452	ctx_          context.Context
6453	header_       http.Header
6454}
6455
6456// Get: Gets an Environment. May return any of the following canonical
6457// error codes: - PERMISSION_DENIED - if the user is not authorized to
6458// read project - INVALID_ARGUMENT - if the request is malformed -
6459// NOT_FOUND - if the Environment does not exist
6460//
6461// - environmentId: An Environment id.
6462// - executionId: An Execution id.
6463// - historyId: A History id.
6464// - projectId: A Project id.
6465func (r *ProjectsHistoriesExecutionsEnvironmentsService) Get(projectId string, historyId string, executionId string, environmentId string) *ProjectsHistoriesExecutionsEnvironmentsGetCall {
6466	c := &ProjectsHistoriesExecutionsEnvironmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6467	c.projectId = projectId
6468	c.historyId = historyId
6469	c.executionId = executionId
6470	c.environmentId = environmentId
6471	return c
6472}
6473
6474// Fields allows partial responses to be retrieved. See
6475// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6476// for more information.
6477func (c *ProjectsHistoriesExecutionsEnvironmentsGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsEnvironmentsGetCall {
6478	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6479	return c
6480}
6481
6482// IfNoneMatch sets the optional parameter which makes the operation
6483// fail if the object's ETag matches the given value. This is useful for
6484// getting updates only after the object has changed since the last
6485// request. Use googleapi.IsNotModified to check whether the response
6486// error from Do is the result of In-None-Match.
6487func (c *ProjectsHistoriesExecutionsEnvironmentsGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsEnvironmentsGetCall {
6488	c.ifNoneMatch_ = entityTag
6489	return c
6490}
6491
6492// Context sets the context to be used in this call's Do method. Any
6493// pending HTTP request will be aborted if the provided context is
6494// canceled.
6495func (c *ProjectsHistoriesExecutionsEnvironmentsGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsEnvironmentsGetCall {
6496	c.ctx_ = ctx
6497	return c
6498}
6499
6500// Header returns an http.Header that can be modified by the caller to
6501// add HTTP headers to the request.
6502func (c *ProjectsHistoriesExecutionsEnvironmentsGetCall) Header() http.Header {
6503	if c.header_ == nil {
6504		c.header_ = make(http.Header)
6505	}
6506	return c.header_
6507}
6508
6509func (c *ProjectsHistoriesExecutionsEnvironmentsGetCall) doRequest(alt string) (*http.Response, error) {
6510	reqHeaders := make(http.Header)
6511	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
6512	for k, v := range c.header_ {
6513		reqHeaders[k] = v
6514	}
6515	reqHeaders.Set("User-Agent", c.s.userAgent())
6516	if c.ifNoneMatch_ != "" {
6517		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6518	}
6519	var body io.Reader = nil
6520	c.urlParams_.Set("alt", alt)
6521	c.urlParams_.Set("prettyPrint", "false")
6522	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments/{environmentId}")
6523	urls += "?" + c.urlParams_.Encode()
6524	req, err := http.NewRequest("GET", urls, body)
6525	if err != nil {
6526		return nil, err
6527	}
6528	req.Header = reqHeaders
6529	googleapi.Expand(req.URL, map[string]string{
6530		"projectId":     c.projectId,
6531		"historyId":     c.historyId,
6532		"executionId":   c.executionId,
6533		"environmentId": c.environmentId,
6534	})
6535	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6536}
6537
6538// Do executes the "toolresults.projects.histories.executions.environments.get" call.
6539// Exactly one of *Environment or error will be non-nil. Any non-2xx
6540// status code is an error. Response headers are in either
6541// *Environment.ServerResponse.Header or (if a response was returned at
6542// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6543// to check whether the returned error was because
6544// http.StatusNotModified was returned.
6545func (c *ProjectsHistoriesExecutionsEnvironmentsGetCall) Do(opts ...googleapi.CallOption) (*Environment, error) {
6546	gensupport.SetOptions(c.urlParams_, opts...)
6547	res, err := c.doRequest("json")
6548	if res != nil && res.StatusCode == http.StatusNotModified {
6549		if res.Body != nil {
6550			res.Body.Close()
6551		}
6552		return nil, &googleapi.Error{
6553			Code:   res.StatusCode,
6554			Header: res.Header,
6555		}
6556	}
6557	if err != nil {
6558		return nil, err
6559	}
6560	defer googleapi.CloseBody(res)
6561	if err := googleapi.CheckResponse(res); err != nil {
6562		return nil, err
6563	}
6564	ret := &Environment{
6565		ServerResponse: googleapi.ServerResponse{
6566			Header:         res.Header,
6567			HTTPStatusCode: res.StatusCode,
6568		},
6569	}
6570	target := &ret
6571	if err := gensupport.DecodeResponse(target, res); err != nil {
6572		return nil, err
6573	}
6574	return ret, nil
6575	// {
6576	//   "description": "Gets an Environment. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Environment does not exist",
6577	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments/{environmentId}",
6578	//   "httpMethod": "GET",
6579	//   "id": "toolresults.projects.histories.executions.environments.get",
6580	//   "parameterOrder": [
6581	//     "projectId",
6582	//     "historyId",
6583	//     "executionId",
6584	//     "environmentId"
6585	//   ],
6586	//   "parameters": {
6587	//     "environmentId": {
6588	//       "description": "Required. An Environment id.",
6589	//       "location": "path",
6590	//       "required": true,
6591	//       "type": "string"
6592	//     },
6593	//     "executionId": {
6594	//       "description": "Required. An Execution id.",
6595	//       "location": "path",
6596	//       "required": true,
6597	//       "type": "string"
6598	//     },
6599	//     "historyId": {
6600	//       "description": "Required. A History id.",
6601	//       "location": "path",
6602	//       "required": true,
6603	//       "type": "string"
6604	//     },
6605	//     "projectId": {
6606	//       "description": "Required. A Project id.",
6607	//       "location": "path",
6608	//       "required": true,
6609	//       "type": "string"
6610	//     }
6611	//   },
6612	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments/{environmentId}",
6613	//   "response": {
6614	//     "$ref": "Environment"
6615	//   },
6616	//   "scopes": [
6617	//     "https://www.googleapis.com/auth/cloud-platform"
6618	//   ]
6619	// }
6620
6621}
6622
6623// method id "toolresults.projects.histories.executions.environments.list":
6624
6625type ProjectsHistoriesExecutionsEnvironmentsListCall struct {
6626	s            *Service
6627	projectId    string
6628	historyId    string
6629	executionId  string
6630	urlParams_   gensupport.URLParams
6631	ifNoneMatch_ string
6632	ctx_         context.Context
6633	header_      http.Header
6634}
6635
6636// List: Lists Environments for a given Execution. The Environments are
6637// sorted by display name. May return any of the following canonical
6638// error codes: - PERMISSION_DENIED - if the user is not authorized to
6639// read project - INVALID_ARGUMENT - if the request is malformed -
6640// NOT_FOUND - if the containing Execution does not exist
6641//
6642// - executionId: An Execution id.
6643// - historyId: A History id.
6644// - projectId: A Project id.
6645func (r *ProjectsHistoriesExecutionsEnvironmentsService) List(projectId string, historyId string, executionId string) *ProjectsHistoriesExecutionsEnvironmentsListCall {
6646	c := &ProjectsHistoriesExecutionsEnvironmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6647	c.projectId = projectId
6648	c.historyId = historyId
6649	c.executionId = executionId
6650	return c
6651}
6652
6653// PageSize sets the optional parameter "pageSize": The maximum number
6654// of Environments to fetch. Default value: 25. The server will use this
6655// default if the field is not set or has a value of 0.
6656func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsEnvironmentsListCall {
6657	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
6658	return c
6659}
6660
6661// PageToken sets the optional parameter "pageToken": A continuation
6662// token to resume the query at the next item.
6663func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsEnvironmentsListCall {
6664	c.urlParams_.Set("pageToken", pageToken)
6665	return c
6666}
6667
6668// Fields allows partial responses to be retrieved. See
6669// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6670// for more information.
6671func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsEnvironmentsListCall {
6672	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6673	return c
6674}
6675
6676// IfNoneMatch sets the optional parameter which makes the operation
6677// fail if the object's ETag matches the given value. This is useful for
6678// getting updates only after the object has changed since the last
6679// request. Use googleapi.IsNotModified to check whether the response
6680// error from Do is the result of In-None-Match.
6681func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsEnvironmentsListCall {
6682	c.ifNoneMatch_ = entityTag
6683	return c
6684}
6685
6686// Context sets the context to be used in this call's Do method. Any
6687// pending HTTP request will be aborted if the provided context is
6688// canceled.
6689func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsEnvironmentsListCall {
6690	c.ctx_ = ctx
6691	return c
6692}
6693
6694// Header returns an http.Header that can be modified by the caller to
6695// add HTTP headers to the request.
6696func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) Header() http.Header {
6697	if c.header_ == nil {
6698		c.header_ = make(http.Header)
6699	}
6700	return c.header_
6701}
6702
6703func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) doRequest(alt string) (*http.Response, error) {
6704	reqHeaders := make(http.Header)
6705	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
6706	for k, v := range c.header_ {
6707		reqHeaders[k] = v
6708	}
6709	reqHeaders.Set("User-Agent", c.s.userAgent())
6710	if c.ifNoneMatch_ != "" {
6711		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6712	}
6713	var body io.Reader = nil
6714	c.urlParams_.Set("alt", alt)
6715	c.urlParams_.Set("prettyPrint", "false")
6716	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments")
6717	urls += "?" + c.urlParams_.Encode()
6718	req, err := http.NewRequest("GET", urls, body)
6719	if err != nil {
6720		return nil, err
6721	}
6722	req.Header = reqHeaders
6723	googleapi.Expand(req.URL, map[string]string{
6724		"projectId":   c.projectId,
6725		"historyId":   c.historyId,
6726		"executionId": c.executionId,
6727	})
6728	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6729}
6730
6731// Do executes the "toolresults.projects.histories.executions.environments.list" call.
6732// Exactly one of *ListEnvironmentsResponse or error will be non-nil.
6733// Any non-2xx status code is an error. Response headers are in either
6734// *ListEnvironmentsResponse.ServerResponse.Header or (if a response was
6735// returned at all) in error.(*googleapi.Error).Header. Use
6736// googleapi.IsNotModified to check whether the returned error was
6737// because http.StatusNotModified was returned.
6738func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) Do(opts ...googleapi.CallOption) (*ListEnvironmentsResponse, error) {
6739	gensupport.SetOptions(c.urlParams_, opts...)
6740	res, err := c.doRequest("json")
6741	if res != nil && res.StatusCode == http.StatusNotModified {
6742		if res.Body != nil {
6743			res.Body.Close()
6744		}
6745		return nil, &googleapi.Error{
6746			Code:   res.StatusCode,
6747			Header: res.Header,
6748		}
6749	}
6750	if err != nil {
6751		return nil, err
6752	}
6753	defer googleapi.CloseBody(res)
6754	if err := googleapi.CheckResponse(res); err != nil {
6755		return nil, err
6756	}
6757	ret := &ListEnvironmentsResponse{
6758		ServerResponse: googleapi.ServerResponse{
6759			Header:         res.Header,
6760			HTTPStatusCode: res.StatusCode,
6761		},
6762	}
6763	target := &ret
6764	if err := gensupport.DecodeResponse(target, res); err != nil {
6765		return nil, err
6766	}
6767	return ret, nil
6768	// {
6769	//   "description": "Lists Environments for a given Execution. The Environments are sorted by display name. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing Execution does not exist",
6770	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments",
6771	//   "httpMethod": "GET",
6772	//   "id": "toolresults.projects.histories.executions.environments.list",
6773	//   "parameterOrder": [
6774	//     "projectId",
6775	//     "historyId",
6776	//     "executionId"
6777	//   ],
6778	//   "parameters": {
6779	//     "executionId": {
6780	//       "description": "Required. An Execution id.",
6781	//       "location": "path",
6782	//       "required": true,
6783	//       "type": "string"
6784	//     },
6785	//     "historyId": {
6786	//       "description": "Required. A History id.",
6787	//       "location": "path",
6788	//       "required": true,
6789	//       "type": "string"
6790	//     },
6791	//     "pageSize": {
6792	//       "description": "The maximum number of Environments to fetch. Default value: 25. The server will use this default if the field is not set or has a value of 0.",
6793	//       "format": "int32",
6794	//       "location": "query",
6795	//       "type": "integer"
6796	//     },
6797	//     "pageToken": {
6798	//       "description": "A continuation token to resume the query at the next item.",
6799	//       "location": "query",
6800	//       "type": "string"
6801	//     },
6802	//     "projectId": {
6803	//       "description": "Required. A Project id.",
6804	//       "location": "path",
6805	//       "required": true,
6806	//       "type": "string"
6807	//     }
6808	//   },
6809	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments",
6810	//   "response": {
6811	//     "$ref": "ListEnvironmentsResponse"
6812	//   },
6813	//   "scopes": [
6814	//     "https://www.googleapis.com/auth/cloud-platform"
6815	//   ]
6816	// }
6817
6818}
6819
6820// Pages invokes f for each page of results.
6821// A non-nil error returned from f will halt the iteration.
6822// The provided context supersedes any context provided to the Context method.
6823func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) Pages(ctx context.Context, f func(*ListEnvironmentsResponse) error) error {
6824	c.ctx_ = ctx
6825	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
6826	for {
6827		x, err := c.Do()
6828		if err != nil {
6829			return err
6830		}
6831		if err := f(x); err != nil {
6832			return err
6833		}
6834		if x.NextPageToken == "" {
6835			return nil
6836		}
6837		c.PageToken(x.NextPageToken)
6838	}
6839}
6840
6841// method id "toolresults.projects.histories.executions.steps.accessibilityClusters":
6842
6843type ProjectsHistoriesExecutionsStepsAccessibilityClustersCall struct {
6844	s            *Service
6845	name         string
6846	urlParams_   gensupport.URLParams
6847	ifNoneMatch_ string
6848	ctx_         context.Context
6849	header_      http.Header
6850}
6851
6852// AccessibilityClusters: Lists accessibility clusters for a given Step
6853// May return any of the following canonical error codes: -
6854// PERMISSION_DENIED - if the user is not authorized to read project -
6855// INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION
6856// - if an argument in the request happens to be invalid; e.g. if the
6857// locale format is incorrect - NOT_FOUND - if the containing Step does
6858// not exist
6859//
6860// - name: A full resource name of the step. For example,
6861//   projects/my-project/histories/bh.1234567890abcdef/executions/
6862//   1234567890123456789/steps/bs.1234567890abcdef.
6863func (r *ProjectsHistoriesExecutionsStepsService) AccessibilityClusters(name string) *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall {
6864	c := &ProjectsHistoriesExecutionsStepsAccessibilityClustersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6865	c.name = name
6866	return c
6867}
6868
6869// Locale sets the optional parameter "locale": The accepted format is
6870// the canonical Unicode format with hyphen as a delimiter. Language
6871// must be lowercase, Language Script - Capitalized, Region - UPPERCASE.
6872// See http://www.unicode.org/reports/tr35/#Unicode_locale_identifier
6873// for details. Required.
6874func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) Locale(locale string) *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall {
6875	c.urlParams_.Set("locale", locale)
6876	return c
6877}
6878
6879// Fields allows partial responses to be retrieved. See
6880// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6881// for more information.
6882func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall {
6883	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6884	return c
6885}
6886
6887// IfNoneMatch sets the optional parameter which makes the operation
6888// fail if the object's ETag matches the given value. This is useful for
6889// getting updates only after the object has changed since the last
6890// request. Use googleapi.IsNotModified to check whether the response
6891// error from Do is the result of In-None-Match.
6892func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall {
6893	c.ifNoneMatch_ = entityTag
6894	return c
6895}
6896
6897// Context sets the context to be used in this call's Do method. Any
6898// pending HTTP request will be aborted if the provided context is
6899// canceled.
6900func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall {
6901	c.ctx_ = ctx
6902	return c
6903}
6904
6905// Header returns an http.Header that can be modified by the caller to
6906// add HTTP headers to the request.
6907func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) Header() http.Header {
6908	if c.header_ == nil {
6909		c.header_ = make(http.Header)
6910	}
6911	return c.header_
6912}
6913
6914func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) doRequest(alt string) (*http.Response, error) {
6915	reqHeaders := make(http.Header)
6916	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
6917	for k, v := range c.header_ {
6918		reqHeaders[k] = v
6919	}
6920	reqHeaders.Set("User-Agent", c.s.userAgent())
6921	if c.ifNoneMatch_ != "" {
6922		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6923	}
6924	var body io.Reader = nil
6925	c.urlParams_.Set("alt", alt)
6926	c.urlParams_.Set("prettyPrint", "false")
6927	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/{+name}:accessibilityClusters")
6928	urls += "?" + c.urlParams_.Encode()
6929	req, err := http.NewRequest("GET", urls, body)
6930	if err != nil {
6931		return nil, err
6932	}
6933	req.Header = reqHeaders
6934	googleapi.Expand(req.URL, map[string]string{
6935		"name": c.name,
6936	})
6937	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6938}
6939
6940// Do executes the "toolresults.projects.histories.executions.steps.accessibilityClusters" call.
6941// Exactly one of *ListStepAccessibilityClustersResponse or error will
6942// be non-nil. Any non-2xx status code is an error. Response headers are
6943// in either
6944// *ListStepAccessibilityClustersResponse.ServerResponse.Header or (if a
6945// response was returned at all) in error.(*googleapi.Error).Header. Use
6946// googleapi.IsNotModified to check whether the returned error was
6947// because http.StatusNotModified was returned.
6948func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) Do(opts ...googleapi.CallOption) (*ListStepAccessibilityClustersResponse, error) {
6949	gensupport.SetOptions(c.urlParams_, opts...)
6950	res, err := c.doRequest("json")
6951	if res != nil && res.StatusCode == http.StatusNotModified {
6952		if res.Body != nil {
6953			res.Body.Close()
6954		}
6955		return nil, &googleapi.Error{
6956			Code:   res.StatusCode,
6957			Header: res.Header,
6958		}
6959	}
6960	if err != nil {
6961		return nil, err
6962	}
6963	defer googleapi.CloseBody(res)
6964	if err := googleapi.CheckResponse(res); err != nil {
6965		return nil, err
6966	}
6967	ret := &ListStepAccessibilityClustersResponse{
6968		ServerResponse: googleapi.ServerResponse{
6969			Header:         res.Header,
6970			HTTPStatusCode: res.StatusCode,
6971		},
6972	}
6973	target := &ret
6974	if err := gensupport.DecodeResponse(target, res); err != nil {
6975		return nil, err
6976	}
6977	return ret, nil
6978	// {
6979	//   "description": "Lists accessibility clusters for a given Step May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if an argument in the request happens to be invalid; e.g. if the locale format is incorrect - NOT_FOUND - if the containing Step does not exist",
6980	//   "flatPath": "toolresults/v1beta3/projects/{projectsId}/histories/{historiesId}/executions/{executionsId}/steps/{stepsId}:accessibilityClusters",
6981	//   "httpMethod": "GET",
6982	//   "id": "toolresults.projects.histories.executions.steps.accessibilityClusters",
6983	//   "parameterOrder": [
6984	//     "name"
6985	//   ],
6986	//   "parameters": {
6987	//     "locale": {
6988	//       "description": "The accepted format is the canonical Unicode format with hyphen as a delimiter. Language must be lowercase, Language Script - Capitalized, Region - UPPERCASE. See http://www.unicode.org/reports/tr35/#Unicode_locale_identifier for details. Required.",
6989	//       "location": "query",
6990	//       "type": "string"
6991	//     },
6992	//     "name": {
6993	//       "description": "A full resource name of the step. For example, projects/my-project/histories/bh.1234567890abcdef/executions/ 1234567890123456789/steps/bs.1234567890abcdef Required.",
6994	//       "location": "path",
6995	//       "pattern": "^projects/[^/]+/histories/[^/]+/executions/[^/]+/steps/[^/]+$",
6996	//       "required": true,
6997	//       "type": "string"
6998	//     }
6999	//   },
7000	//   "path": "toolresults/v1beta3/{+name}:accessibilityClusters",
7001	//   "response": {
7002	//     "$ref": "ListStepAccessibilityClustersResponse"
7003	//   },
7004	//   "scopes": [
7005	//     "https://www.googleapis.com/auth/cloud-platform"
7006	//   ]
7007	// }
7008
7009}
7010
7011// method id "toolresults.projects.histories.executions.steps.create":
7012
7013type ProjectsHistoriesExecutionsStepsCreateCall struct {
7014	s           *Service
7015	projectId   string
7016	historyId   string
7017	executionId string
7018	step        *Step
7019	urlParams_  gensupport.URLParams
7020	ctx_        context.Context
7021	header_     http.Header
7022}
7023
7024// Create: Creates a Step. The returned Step will have the id set. May
7025// return any of the following canonical error codes: -
7026// PERMISSION_DENIED - if the user is not authorized to write to project
7027// - INVALID_ARGUMENT - if the request is malformed -
7028// FAILED_PRECONDITION - if the step is too large (more than 10Mib) -
7029// NOT_FOUND - if the containing Execution does not exist
7030//
7031// - executionId: An Execution id.
7032// - historyId: A History id.
7033// - projectId: A Project id.
7034func (r *ProjectsHistoriesExecutionsStepsService) Create(projectId string, historyId string, executionId string, step *Step) *ProjectsHistoriesExecutionsStepsCreateCall {
7035	c := &ProjectsHistoriesExecutionsStepsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7036	c.projectId = projectId
7037	c.historyId = historyId
7038	c.executionId = executionId
7039	c.step = step
7040	return c
7041}
7042
7043// RequestId sets the optional parameter "requestId": A unique request
7044// ID for server to detect duplicated requests. For example, a UUID.
7045// Optional, but strongly recommended.
7046func (c *ProjectsHistoriesExecutionsStepsCreateCall) RequestId(requestId string) *ProjectsHistoriesExecutionsStepsCreateCall {
7047	c.urlParams_.Set("requestId", requestId)
7048	return c
7049}
7050
7051// Fields allows partial responses to be retrieved. See
7052// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7053// for more information.
7054func (c *ProjectsHistoriesExecutionsStepsCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsCreateCall {
7055	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7056	return c
7057}
7058
7059// Context sets the context to be used in this call's Do method. Any
7060// pending HTTP request will be aborted if the provided context is
7061// canceled.
7062func (c *ProjectsHistoriesExecutionsStepsCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsCreateCall {
7063	c.ctx_ = ctx
7064	return c
7065}
7066
7067// Header returns an http.Header that can be modified by the caller to
7068// add HTTP headers to the request.
7069func (c *ProjectsHistoriesExecutionsStepsCreateCall) Header() http.Header {
7070	if c.header_ == nil {
7071		c.header_ = make(http.Header)
7072	}
7073	return c.header_
7074}
7075
7076func (c *ProjectsHistoriesExecutionsStepsCreateCall) doRequest(alt string) (*http.Response, error) {
7077	reqHeaders := make(http.Header)
7078	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
7079	for k, v := range c.header_ {
7080		reqHeaders[k] = v
7081	}
7082	reqHeaders.Set("User-Agent", c.s.userAgent())
7083	var body io.Reader = nil
7084	body, err := googleapi.WithoutDataWrapper.JSONReader(c.step)
7085	if err != nil {
7086		return nil, err
7087	}
7088	reqHeaders.Set("Content-Type", "application/json")
7089	c.urlParams_.Set("alt", alt)
7090	c.urlParams_.Set("prettyPrint", "false")
7091	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps")
7092	urls += "?" + c.urlParams_.Encode()
7093	req, err := http.NewRequest("POST", urls, body)
7094	if err != nil {
7095		return nil, err
7096	}
7097	req.Header = reqHeaders
7098	googleapi.Expand(req.URL, map[string]string{
7099		"projectId":   c.projectId,
7100		"historyId":   c.historyId,
7101		"executionId": c.executionId,
7102	})
7103	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7104}
7105
7106// Do executes the "toolresults.projects.histories.executions.steps.create" call.
7107// Exactly one of *Step or error will be non-nil. Any non-2xx status
7108// code is an error. Response headers are in either
7109// *Step.ServerResponse.Header or (if a response was returned at all) in
7110// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
7111// whether the returned error was because http.StatusNotModified was
7112// returned.
7113func (c *ProjectsHistoriesExecutionsStepsCreateCall) Do(opts ...googleapi.CallOption) (*Step, error) {
7114	gensupport.SetOptions(c.urlParams_, opts...)
7115	res, err := c.doRequest("json")
7116	if res != nil && res.StatusCode == http.StatusNotModified {
7117		if res.Body != nil {
7118			res.Body.Close()
7119		}
7120		return nil, &googleapi.Error{
7121			Code:   res.StatusCode,
7122			Header: res.Header,
7123		}
7124	}
7125	if err != nil {
7126		return nil, err
7127	}
7128	defer googleapi.CloseBody(res)
7129	if err := googleapi.CheckResponse(res); err != nil {
7130		return nil, err
7131	}
7132	ret := &Step{
7133		ServerResponse: googleapi.ServerResponse{
7134			Header:         res.Header,
7135			HTTPStatusCode: res.StatusCode,
7136		},
7137	}
7138	target := &ret
7139	if err := gensupport.DecodeResponse(target, res); err != nil {
7140		return nil, err
7141	}
7142	return ret, nil
7143	// {
7144	//   "description": "Creates a Step. The returned Step will have the id set. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the step is too large (more than 10Mib) - NOT_FOUND - if the containing Execution does not exist",
7145	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps",
7146	//   "httpMethod": "POST",
7147	//   "id": "toolresults.projects.histories.executions.steps.create",
7148	//   "parameterOrder": [
7149	//     "projectId",
7150	//     "historyId",
7151	//     "executionId"
7152	//   ],
7153	//   "parameters": {
7154	//     "executionId": {
7155	//       "description": "Required. An Execution id.",
7156	//       "location": "path",
7157	//       "required": true,
7158	//       "type": "string"
7159	//     },
7160	//     "historyId": {
7161	//       "description": "Required. A History id.",
7162	//       "location": "path",
7163	//       "required": true,
7164	//       "type": "string"
7165	//     },
7166	//     "projectId": {
7167	//       "description": "Required. A Project id.",
7168	//       "location": "path",
7169	//       "required": true,
7170	//       "type": "string"
7171	//     },
7172	//     "requestId": {
7173	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID. Optional, but strongly recommended.",
7174	//       "location": "query",
7175	//       "type": "string"
7176	//     }
7177	//   },
7178	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps",
7179	//   "request": {
7180	//     "$ref": "Step"
7181	//   },
7182	//   "response": {
7183	//     "$ref": "Step"
7184	//   },
7185	//   "scopes": [
7186	//     "https://www.googleapis.com/auth/cloud-platform"
7187	//   ]
7188	// }
7189
7190}
7191
7192// method id "toolresults.projects.histories.executions.steps.get":
7193
7194type ProjectsHistoriesExecutionsStepsGetCall struct {
7195	s            *Service
7196	projectId    string
7197	historyId    string
7198	executionId  string
7199	stepId       string
7200	urlParams_   gensupport.URLParams
7201	ifNoneMatch_ string
7202	ctx_         context.Context
7203	header_      http.Header
7204}
7205
7206// Get: Gets a Step. May return any of the following canonical error
7207// codes: - PERMISSION_DENIED - if the user is not authorized to read
7208// project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND
7209// - if the Step does not exist
7210//
7211// - executionId: A Execution id.
7212// - historyId: A History id.
7213// - projectId: A Project id.
7214// - stepId: A Step id.
7215func (r *ProjectsHistoriesExecutionsStepsService) Get(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsGetCall {
7216	c := &ProjectsHistoriesExecutionsStepsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7217	c.projectId = projectId
7218	c.historyId = historyId
7219	c.executionId = executionId
7220	c.stepId = stepId
7221	return c
7222}
7223
7224// Fields allows partial responses to be retrieved. See
7225// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7226// for more information.
7227func (c *ProjectsHistoriesExecutionsStepsGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsGetCall {
7228	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7229	return c
7230}
7231
7232// IfNoneMatch sets the optional parameter which makes the operation
7233// fail if the object's ETag matches the given value. This is useful for
7234// getting updates only after the object has changed since the last
7235// request. Use googleapi.IsNotModified to check whether the response
7236// error from Do is the result of In-None-Match.
7237func (c *ProjectsHistoriesExecutionsStepsGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsGetCall {
7238	c.ifNoneMatch_ = entityTag
7239	return c
7240}
7241
7242// Context sets the context to be used in this call's Do method. Any
7243// pending HTTP request will be aborted if the provided context is
7244// canceled.
7245func (c *ProjectsHistoriesExecutionsStepsGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsGetCall {
7246	c.ctx_ = ctx
7247	return c
7248}
7249
7250// Header returns an http.Header that can be modified by the caller to
7251// add HTTP headers to the request.
7252func (c *ProjectsHistoriesExecutionsStepsGetCall) Header() http.Header {
7253	if c.header_ == nil {
7254		c.header_ = make(http.Header)
7255	}
7256	return c.header_
7257}
7258
7259func (c *ProjectsHistoriesExecutionsStepsGetCall) doRequest(alt string) (*http.Response, error) {
7260	reqHeaders := make(http.Header)
7261	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
7262	for k, v := range c.header_ {
7263		reqHeaders[k] = v
7264	}
7265	reqHeaders.Set("User-Agent", c.s.userAgent())
7266	if c.ifNoneMatch_ != "" {
7267		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7268	}
7269	var body io.Reader = nil
7270	c.urlParams_.Set("alt", alt)
7271	c.urlParams_.Set("prettyPrint", "false")
7272	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}")
7273	urls += "?" + c.urlParams_.Encode()
7274	req, err := http.NewRequest("GET", urls, body)
7275	if err != nil {
7276		return nil, err
7277	}
7278	req.Header = reqHeaders
7279	googleapi.Expand(req.URL, map[string]string{
7280		"projectId":   c.projectId,
7281		"historyId":   c.historyId,
7282		"executionId": c.executionId,
7283		"stepId":      c.stepId,
7284	})
7285	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7286}
7287
7288// Do executes the "toolresults.projects.histories.executions.steps.get" call.
7289// Exactly one of *Step or error will be non-nil. Any non-2xx status
7290// code is an error. Response headers are in either
7291// *Step.ServerResponse.Header or (if a response was returned at all) in
7292// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
7293// whether the returned error was because http.StatusNotModified was
7294// returned.
7295func (c *ProjectsHistoriesExecutionsStepsGetCall) Do(opts ...googleapi.CallOption) (*Step, error) {
7296	gensupport.SetOptions(c.urlParams_, opts...)
7297	res, err := c.doRequest("json")
7298	if res != nil && res.StatusCode == http.StatusNotModified {
7299		if res.Body != nil {
7300			res.Body.Close()
7301		}
7302		return nil, &googleapi.Error{
7303			Code:   res.StatusCode,
7304			Header: res.Header,
7305		}
7306	}
7307	if err != nil {
7308		return nil, err
7309	}
7310	defer googleapi.CloseBody(res)
7311	if err := googleapi.CheckResponse(res); err != nil {
7312		return nil, err
7313	}
7314	ret := &Step{
7315		ServerResponse: googleapi.ServerResponse{
7316			Header:         res.Header,
7317			HTTPStatusCode: res.StatusCode,
7318		},
7319	}
7320	target := &ret
7321	if err := gensupport.DecodeResponse(target, res); err != nil {
7322		return nil, err
7323	}
7324	return ret, nil
7325	// {
7326	//   "description": "Gets a Step. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Step does not exist",
7327	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
7328	//   "httpMethod": "GET",
7329	//   "id": "toolresults.projects.histories.executions.steps.get",
7330	//   "parameterOrder": [
7331	//     "projectId",
7332	//     "historyId",
7333	//     "executionId",
7334	//     "stepId"
7335	//   ],
7336	//   "parameters": {
7337	//     "executionId": {
7338	//       "description": "A Execution id. Required.",
7339	//       "location": "path",
7340	//       "required": true,
7341	//       "type": "string"
7342	//     },
7343	//     "historyId": {
7344	//       "description": "A History id. Required.",
7345	//       "location": "path",
7346	//       "required": true,
7347	//       "type": "string"
7348	//     },
7349	//     "projectId": {
7350	//       "description": "A Project id. Required.",
7351	//       "location": "path",
7352	//       "required": true,
7353	//       "type": "string"
7354	//     },
7355	//     "stepId": {
7356	//       "description": "A Step id. Required.",
7357	//       "location": "path",
7358	//       "required": true,
7359	//       "type": "string"
7360	//     }
7361	//   },
7362	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
7363	//   "response": {
7364	//     "$ref": "Step"
7365	//   },
7366	//   "scopes": [
7367	//     "https://www.googleapis.com/auth/cloud-platform"
7368	//   ]
7369	// }
7370
7371}
7372
7373// method id "toolresults.projects.histories.executions.steps.getPerfMetricsSummary":
7374
7375type ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall struct {
7376	s            *Service
7377	projectId    string
7378	historyId    string
7379	executionId  string
7380	stepId       string
7381	urlParams_   gensupport.URLParams
7382	ifNoneMatch_ string
7383	ctx_         context.Context
7384	header_      http.Header
7385}
7386
7387// GetPerfMetricsSummary: Retrieves a PerfMetricsSummary. May return any
7388// of the following error code(s): - NOT_FOUND - The specified
7389// PerfMetricsSummary does not exist
7390//
7391// - executionId: A tool results execution ID.
7392// - historyId: A tool results history ID.
7393// - projectId: The cloud project.
7394// - stepId: A tool results step ID.
7395func (r *ProjectsHistoriesExecutionsStepsService) GetPerfMetricsSummary(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall {
7396	c := &ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7397	c.projectId = projectId
7398	c.historyId = historyId
7399	c.executionId = executionId
7400	c.stepId = stepId
7401	return c
7402}
7403
7404// Fields allows partial responses to be retrieved. See
7405// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7406// for more information.
7407func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall {
7408	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7409	return c
7410}
7411
7412// IfNoneMatch sets the optional parameter which makes the operation
7413// fail if the object's ETag matches the given value. This is useful for
7414// getting updates only after the object has changed since the last
7415// request. Use googleapi.IsNotModified to check whether the response
7416// error from Do is the result of In-None-Match.
7417func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall {
7418	c.ifNoneMatch_ = entityTag
7419	return c
7420}
7421
7422// Context sets the context to be used in this call's Do method. Any
7423// pending HTTP request will be aborted if the provided context is
7424// canceled.
7425func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall {
7426	c.ctx_ = ctx
7427	return c
7428}
7429
7430// Header returns an http.Header that can be modified by the caller to
7431// add HTTP headers to the request.
7432func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) Header() http.Header {
7433	if c.header_ == nil {
7434		c.header_ = make(http.Header)
7435	}
7436	return c.header_
7437}
7438
7439func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) doRequest(alt string) (*http.Response, error) {
7440	reqHeaders := make(http.Header)
7441	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
7442	for k, v := range c.header_ {
7443		reqHeaders[k] = v
7444	}
7445	reqHeaders.Set("User-Agent", c.s.userAgent())
7446	if c.ifNoneMatch_ != "" {
7447		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7448	}
7449	var body io.Reader = nil
7450	c.urlParams_.Set("alt", alt)
7451	c.urlParams_.Set("prettyPrint", "false")
7452	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary")
7453	urls += "?" + c.urlParams_.Encode()
7454	req, err := http.NewRequest("GET", urls, body)
7455	if err != nil {
7456		return nil, err
7457	}
7458	req.Header = reqHeaders
7459	googleapi.Expand(req.URL, map[string]string{
7460		"projectId":   c.projectId,
7461		"historyId":   c.historyId,
7462		"executionId": c.executionId,
7463		"stepId":      c.stepId,
7464	})
7465	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7466}
7467
7468// Do executes the "toolresults.projects.histories.executions.steps.getPerfMetricsSummary" call.
7469// Exactly one of *PerfMetricsSummary or error will be non-nil. Any
7470// non-2xx status code is an error. Response headers are in either
7471// *PerfMetricsSummary.ServerResponse.Header or (if a response was
7472// returned at all) in error.(*googleapi.Error).Header. Use
7473// googleapi.IsNotModified to check whether the returned error was
7474// because http.StatusNotModified was returned.
7475func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) Do(opts ...googleapi.CallOption) (*PerfMetricsSummary, error) {
7476	gensupport.SetOptions(c.urlParams_, opts...)
7477	res, err := c.doRequest("json")
7478	if res != nil && res.StatusCode == http.StatusNotModified {
7479		if res.Body != nil {
7480			res.Body.Close()
7481		}
7482		return nil, &googleapi.Error{
7483			Code:   res.StatusCode,
7484			Header: res.Header,
7485		}
7486	}
7487	if err != nil {
7488		return nil, err
7489	}
7490	defer googleapi.CloseBody(res)
7491	if err := googleapi.CheckResponse(res); err != nil {
7492		return nil, err
7493	}
7494	ret := &PerfMetricsSummary{
7495		ServerResponse: googleapi.ServerResponse{
7496			Header:         res.Header,
7497			HTTPStatusCode: res.StatusCode,
7498		},
7499	}
7500	target := &ret
7501	if err := gensupport.DecodeResponse(target, res); err != nil {
7502		return nil, err
7503	}
7504	return ret, nil
7505	// {
7506	//   "description": "Retrieves a PerfMetricsSummary. May return any of the following error code(s): - NOT_FOUND - The specified PerfMetricsSummary does not exist",
7507	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary",
7508	//   "httpMethod": "GET",
7509	//   "id": "toolresults.projects.histories.executions.steps.getPerfMetricsSummary",
7510	//   "parameterOrder": [
7511	//     "projectId",
7512	//     "historyId",
7513	//     "executionId",
7514	//     "stepId"
7515	//   ],
7516	//   "parameters": {
7517	//     "executionId": {
7518	//       "description": "A tool results execution ID.",
7519	//       "location": "path",
7520	//       "required": true,
7521	//       "type": "string"
7522	//     },
7523	//     "historyId": {
7524	//       "description": "A tool results history ID.",
7525	//       "location": "path",
7526	//       "required": true,
7527	//       "type": "string"
7528	//     },
7529	//     "projectId": {
7530	//       "description": "The cloud project",
7531	//       "location": "path",
7532	//       "required": true,
7533	//       "type": "string"
7534	//     },
7535	//     "stepId": {
7536	//       "description": "A tool results step ID.",
7537	//       "location": "path",
7538	//       "required": true,
7539	//       "type": "string"
7540	//     }
7541	//   },
7542	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary",
7543	//   "response": {
7544	//     "$ref": "PerfMetricsSummary"
7545	//   },
7546	//   "scopes": [
7547	//     "https://www.googleapis.com/auth/cloud-platform"
7548	//   ]
7549	// }
7550
7551}
7552
7553// method id "toolresults.projects.histories.executions.steps.list":
7554
7555type ProjectsHistoriesExecutionsStepsListCall struct {
7556	s            *Service
7557	projectId    string
7558	historyId    string
7559	executionId  string
7560	urlParams_   gensupport.URLParams
7561	ifNoneMatch_ string
7562	ctx_         context.Context
7563	header_      http.Header
7564}
7565
7566// List: Lists Steps for a given Execution. The steps are sorted by
7567// creation_time in descending order. The step_id key will be used to
7568// order the steps with the same creation_time. May return any of the
7569// following canonical error codes: - PERMISSION_DENIED - if the user is
7570// not authorized to read project - INVALID_ARGUMENT - if the request is
7571// malformed - FAILED_PRECONDITION - if an argument in the request
7572// happens to be invalid; e.g. if an attempt is made to list the
7573// children of a nonexistent Step - NOT_FOUND - if the containing
7574// Execution does not exist
7575//
7576// - executionId: A Execution id.
7577// - historyId: A History id.
7578// - projectId: A Project id.
7579func (r *ProjectsHistoriesExecutionsStepsService) List(projectId string, historyId string, executionId string) *ProjectsHistoriesExecutionsStepsListCall {
7580	c := &ProjectsHistoriesExecutionsStepsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7581	c.projectId = projectId
7582	c.historyId = historyId
7583	c.executionId = executionId
7584	return c
7585}
7586
7587// PageSize sets the optional parameter "pageSize": The maximum number
7588// of Steps to fetch. Default value: 25. The server will use this
7589// default if the field is not set or has a value of 0.
7590func (c *ProjectsHistoriesExecutionsStepsListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsStepsListCall {
7591	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
7592	return c
7593}
7594
7595// PageToken sets the optional parameter "pageToken": A continuation
7596// token to resume the query at the next item.
7597func (c *ProjectsHistoriesExecutionsStepsListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsStepsListCall {
7598	c.urlParams_.Set("pageToken", pageToken)
7599	return c
7600}
7601
7602// Fields allows partial responses to be retrieved. See
7603// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7604// for more information.
7605func (c *ProjectsHistoriesExecutionsStepsListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsListCall {
7606	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7607	return c
7608}
7609
7610// IfNoneMatch sets the optional parameter which makes the operation
7611// fail if the object's ETag matches the given value. This is useful for
7612// getting updates only after the object has changed since the last
7613// request. Use googleapi.IsNotModified to check whether the response
7614// error from Do is the result of In-None-Match.
7615func (c *ProjectsHistoriesExecutionsStepsListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsListCall {
7616	c.ifNoneMatch_ = entityTag
7617	return c
7618}
7619
7620// Context sets the context to be used in this call's Do method. Any
7621// pending HTTP request will be aborted if the provided context is
7622// canceled.
7623func (c *ProjectsHistoriesExecutionsStepsListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsListCall {
7624	c.ctx_ = ctx
7625	return c
7626}
7627
7628// Header returns an http.Header that can be modified by the caller to
7629// add HTTP headers to the request.
7630func (c *ProjectsHistoriesExecutionsStepsListCall) Header() http.Header {
7631	if c.header_ == nil {
7632		c.header_ = make(http.Header)
7633	}
7634	return c.header_
7635}
7636
7637func (c *ProjectsHistoriesExecutionsStepsListCall) doRequest(alt string) (*http.Response, error) {
7638	reqHeaders := make(http.Header)
7639	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
7640	for k, v := range c.header_ {
7641		reqHeaders[k] = v
7642	}
7643	reqHeaders.Set("User-Agent", c.s.userAgent())
7644	if c.ifNoneMatch_ != "" {
7645		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7646	}
7647	var body io.Reader = nil
7648	c.urlParams_.Set("alt", alt)
7649	c.urlParams_.Set("prettyPrint", "false")
7650	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps")
7651	urls += "?" + c.urlParams_.Encode()
7652	req, err := http.NewRequest("GET", urls, body)
7653	if err != nil {
7654		return nil, err
7655	}
7656	req.Header = reqHeaders
7657	googleapi.Expand(req.URL, map[string]string{
7658		"projectId":   c.projectId,
7659		"historyId":   c.historyId,
7660		"executionId": c.executionId,
7661	})
7662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7663}
7664
7665// Do executes the "toolresults.projects.histories.executions.steps.list" call.
7666// Exactly one of *ListStepsResponse or error will be non-nil. Any
7667// non-2xx status code is an error. Response headers are in either
7668// *ListStepsResponse.ServerResponse.Header or (if a response was
7669// returned at all) in error.(*googleapi.Error).Header. Use
7670// googleapi.IsNotModified to check whether the returned error was
7671// because http.StatusNotModified was returned.
7672func (c *ProjectsHistoriesExecutionsStepsListCall) Do(opts ...googleapi.CallOption) (*ListStepsResponse, error) {
7673	gensupport.SetOptions(c.urlParams_, opts...)
7674	res, err := c.doRequest("json")
7675	if res != nil && res.StatusCode == http.StatusNotModified {
7676		if res.Body != nil {
7677			res.Body.Close()
7678		}
7679		return nil, &googleapi.Error{
7680			Code:   res.StatusCode,
7681			Header: res.Header,
7682		}
7683	}
7684	if err != nil {
7685		return nil, err
7686	}
7687	defer googleapi.CloseBody(res)
7688	if err := googleapi.CheckResponse(res); err != nil {
7689		return nil, err
7690	}
7691	ret := &ListStepsResponse{
7692		ServerResponse: googleapi.ServerResponse{
7693			Header:         res.Header,
7694			HTTPStatusCode: res.StatusCode,
7695		},
7696	}
7697	target := &ret
7698	if err := gensupport.DecodeResponse(target, res); err != nil {
7699		return nil, err
7700	}
7701	return ret, nil
7702	// {
7703	//   "description": "Lists Steps for a given Execution. The steps are sorted by creation_time in descending order. The step_id key will be used to order the steps with the same creation_time. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if an argument in the request happens to be invalid; e.g. if an attempt is made to list the children of a nonexistent Step - NOT_FOUND - if the containing Execution does not exist",
7704	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps",
7705	//   "httpMethod": "GET",
7706	//   "id": "toolresults.projects.histories.executions.steps.list",
7707	//   "parameterOrder": [
7708	//     "projectId",
7709	//     "historyId",
7710	//     "executionId"
7711	//   ],
7712	//   "parameters": {
7713	//     "executionId": {
7714	//       "description": "A Execution id. Required.",
7715	//       "location": "path",
7716	//       "required": true,
7717	//       "type": "string"
7718	//     },
7719	//     "historyId": {
7720	//       "description": "A History id. Required.",
7721	//       "location": "path",
7722	//       "required": true,
7723	//       "type": "string"
7724	//     },
7725	//     "pageSize": {
7726	//       "description": "The maximum number of Steps to fetch. Default value: 25. The server will use this default if the field is not set or has a value of 0. Optional.",
7727	//       "format": "int32",
7728	//       "location": "query",
7729	//       "type": "integer"
7730	//     },
7731	//     "pageToken": {
7732	//       "description": "A continuation token to resume the query at the next item. Optional.",
7733	//       "location": "query",
7734	//       "type": "string"
7735	//     },
7736	//     "projectId": {
7737	//       "description": "A Project id. Required.",
7738	//       "location": "path",
7739	//       "required": true,
7740	//       "type": "string"
7741	//     }
7742	//   },
7743	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps",
7744	//   "response": {
7745	//     "$ref": "ListStepsResponse"
7746	//   },
7747	//   "scopes": [
7748	//     "https://www.googleapis.com/auth/cloud-platform"
7749	//   ]
7750	// }
7751
7752}
7753
7754// Pages invokes f for each page of results.
7755// A non-nil error returned from f will halt the iteration.
7756// The provided context supersedes any context provided to the Context method.
7757func (c *ProjectsHistoriesExecutionsStepsListCall) Pages(ctx context.Context, f func(*ListStepsResponse) error) error {
7758	c.ctx_ = ctx
7759	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7760	for {
7761		x, err := c.Do()
7762		if err != nil {
7763			return err
7764		}
7765		if err := f(x); err != nil {
7766			return err
7767		}
7768		if x.NextPageToken == "" {
7769			return nil
7770		}
7771		c.PageToken(x.NextPageToken)
7772	}
7773}
7774
7775// method id "toolresults.projects.histories.executions.steps.patch":
7776
7777type ProjectsHistoriesExecutionsStepsPatchCall struct {
7778	s           *Service
7779	projectId   string
7780	historyId   string
7781	executionId string
7782	stepId      string
7783	step        *Step
7784	urlParams_  gensupport.URLParams
7785	ctx_        context.Context
7786	header_     http.Header
7787}
7788
7789// Patch: Updates an existing Step with the supplied partial entity. May
7790// return any of the following canonical error codes: -
7791// PERMISSION_DENIED - if the user is not authorized to write project -
7792// INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION
7793// - if the requested state transition is illegal (e.g try to upload a
7794// duplicate xml file), if the updated step is too large (more than
7795// 10Mib) - NOT_FOUND - if the containing Execution does not exist
7796//
7797// - executionId: A Execution id.
7798// - historyId: A History id.
7799// - projectId: A Project id.
7800// - stepId: A Step id.
7801func (r *ProjectsHistoriesExecutionsStepsService) Patch(projectId string, historyId string, executionId string, stepId string, step *Step) *ProjectsHistoriesExecutionsStepsPatchCall {
7802	c := &ProjectsHistoriesExecutionsStepsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7803	c.projectId = projectId
7804	c.historyId = historyId
7805	c.executionId = executionId
7806	c.stepId = stepId
7807	c.step = step
7808	return c
7809}
7810
7811// RequestId sets the optional parameter "requestId": A unique request
7812// ID for server to detect duplicated requests. For example, a UUID.
7813// Optional, but strongly recommended.
7814func (c *ProjectsHistoriesExecutionsStepsPatchCall) RequestId(requestId string) *ProjectsHistoriesExecutionsStepsPatchCall {
7815	c.urlParams_.Set("requestId", requestId)
7816	return c
7817}
7818
7819// Fields allows partial responses to be retrieved. See
7820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7821// for more information.
7822func (c *ProjectsHistoriesExecutionsStepsPatchCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPatchCall {
7823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7824	return c
7825}
7826
7827// Context sets the context to be used in this call's Do method. Any
7828// pending HTTP request will be aborted if the provided context is
7829// canceled.
7830func (c *ProjectsHistoriesExecutionsStepsPatchCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPatchCall {
7831	c.ctx_ = ctx
7832	return c
7833}
7834
7835// Header returns an http.Header that can be modified by the caller to
7836// add HTTP headers to the request.
7837func (c *ProjectsHistoriesExecutionsStepsPatchCall) Header() http.Header {
7838	if c.header_ == nil {
7839		c.header_ = make(http.Header)
7840	}
7841	return c.header_
7842}
7843
7844func (c *ProjectsHistoriesExecutionsStepsPatchCall) doRequest(alt string) (*http.Response, error) {
7845	reqHeaders := make(http.Header)
7846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
7847	for k, v := range c.header_ {
7848		reqHeaders[k] = v
7849	}
7850	reqHeaders.Set("User-Agent", c.s.userAgent())
7851	var body io.Reader = nil
7852	body, err := googleapi.WithoutDataWrapper.JSONReader(c.step)
7853	if err != nil {
7854		return nil, err
7855	}
7856	reqHeaders.Set("Content-Type", "application/json")
7857	c.urlParams_.Set("alt", alt)
7858	c.urlParams_.Set("prettyPrint", "false")
7859	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}")
7860	urls += "?" + c.urlParams_.Encode()
7861	req, err := http.NewRequest("PATCH", urls, body)
7862	if err != nil {
7863		return nil, err
7864	}
7865	req.Header = reqHeaders
7866	googleapi.Expand(req.URL, map[string]string{
7867		"projectId":   c.projectId,
7868		"historyId":   c.historyId,
7869		"executionId": c.executionId,
7870		"stepId":      c.stepId,
7871	})
7872	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7873}
7874
7875// Do executes the "toolresults.projects.histories.executions.steps.patch" call.
7876// Exactly one of *Step or error will be non-nil. Any non-2xx status
7877// code is an error. Response headers are in either
7878// *Step.ServerResponse.Header or (if a response was returned at all) in
7879// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
7880// whether the returned error was because http.StatusNotModified was
7881// returned.
7882func (c *ProjectsHistoriesExecutionsStepsPatchCall) Do(opts ...googleapi.CallOption) (*Step, error) {
7883	gensupport.SetOptions(c.urlParams_, opts...)
7884	res, err := c.doRequest("json")
7885	if res != nil && res.StatusCode == http.StatusNotModified {
7886		if res.Body != nil {
7887			res.Body.Close()
7888		}
7889		return nil, &googleapi.Error{
7890			Code:   res.StatusCode,
7891			Header: res.Header,
7892		}
7893	}
7894	if err != nil {
7895		return nil, err
7896	}
7897	defer googleapi.CloseBody(res)
7898	if err := googleapi.CheckResponse(res); err != nil {
7899		return nil, err
7900	}
7901	ret := &Step{
7902		ServerResponse: googleapi.ServerResponse{
7903			Header:         res.Header,
7904			HTTPStatusCode: res.StatusCode,
7905		},
7906	}
7907	target := &ret
7908	if err := gensupport.DecodeResponse(target, res); err != nil {
7909		return nil, err
7910	}
7911	return ret, nil
7912	// {
7913	//   "description": "Updates an existing Step with the supplied partial entity. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal (e.g try to upload a duplicate xml file), if the updated step is too large (more than 10Mib) - NOT_FOUND - if the containing Execution does not exist",
7914	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
7915	//   "httpMethod": "PATCH",
7916	//   "id": "toolresults.projects.histories.executions.steps.patch",
7917	//   "parameterOrder": [
7918	//     "projectId",
7919	//     "historyId",
7920	//     "executionId",
7921	//     "stepId"
7922	//   ],
7923	//   "parameters": {
7924	//     "executionId": {
7925	//       "description": "A Execution id. Required.",
7926	//       "location": "path",
7927	//       "required": true,
7928	//       "type": "string"
7929	//     },
7930	//     "historyId": {
7931	//       "description": "A History id. Required.",
7932	//       "location": "path",
7933	//       "required": true,
7934	//       "type": "string"
7935	//     },
7936	//     "projectId": {
7937	//       "description": "A Project id. Required.",
7938	//       "location": "path",
7939	//       "required": true,
7940	//       "type": "string"
7941	//     },
7942	//     "requestId": {
7943	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID. Optional, but strongly recommended.",
7944	//       "location": "query",
7945	//       "type": "string"
7946	//     },
7947	//     "stepId": {
7948	//       "description": "A Step id. Required.",
7949	//       "location": "path",
7950	//       "required": true,
7951	//       "type": "string"
7952	//     }
7953	//   },
7954	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
7955	//   "request": {
7956	//     "$ref": "Step"
7957	//   },
7958	//   "response": {
7959	//     "$ref": "Step"
7960	//   },
7961	//   "scopes": [
7962	//     "https://www.googleapis.com/auth/cloud-platform"
7963	//   ]
7964	// }
7965
7966}
7967
7968// method id "toolresults.projects.histories.executions.steps.publishXunitXmlFiles":
7969
7970type ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall struct {
7971	s                           *Service
7972	projectId                   string
7973	historyId                   string
7974	executionId                 string
7975	stepId                      string
7976	publishxunitxmlfilesrequest *PublishXunitXmlFilesRequest
7977	urlParams_                  gensupport.URLParams
7978	ctx_                        context.Context
7979	header_                     http.Header
7980}
7981
7982// PublishXunitXmlFiles: Publish xml files to an existing Step. May
7983// return any of the following canonical error codes: -
7984// PERMISSION_DENIED - if the user is not authorized to write project -
7985// INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION
7986// - if the requested state transition is illegal, e.g try to upload a
7987// duplicate xml file or a file too large. - NOT_FOUND - if the
7988// containing Execution does not exist
7989//
7990// - executionId: A Execution id.
7991// - historyId: A History id.
7992// - projectId: A Project id.
7993// - stepId: A Step id. Note: This step must include a
7994//   TestExecutionStep.
7995func (r *ProjectsHistoriesExecutionsStepsService) PublishXunitXmlFiles(projectId string, historyId string, executionId string, stepId string, publishxunitxmlfilesrequest *PublishXunitXmlFilesRequest) *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall {
7996	c := &ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7997	c.projectId = projectId
7998	c.historyId = historyId
7999	c.executionId = executionId
8000	c.stepId = stepId
8001	c.publishxunitxmlfilesrequest = publishxunitxmlfilesrequest
8002	return c
8003}
8004
8005// Fields allows partial responses to be retrieved. See
8006// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8007// for more information.
8008func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall {
8009	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8010	return c
8011}
8012
8013// Context sets the context to be used in this call's Do method. Any
8014// pending HTTP request will be aborted if the provided context is
8015// canceled.
8016func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall {
8017	c.ctx_ = ctx
8018	return c
8019}
8020
8021// Header returns an http.Header that can be modified by the caller to
8022// add HTTP headers to the request.
8023func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) Header() http.Header {
8024	if c.header_ == nil {
8025		c.header_ = make(http.Header)
8026	}
8027	return c.header_
8028}
8029
8030func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) doRequest(alt string) (*http.Response, error) {
8031	reqHeaders := make(http.Header)
8032	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8033	for k, v := range c.header_ {
8034		reqHeaders[k] = v
8035	}
8036	reqHeaders.Set("User-Agent", c.s.userAgent())
8037	var body io.Reader = nil
8038	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publishxunitxmlfilesrequest)
8039	if err != nil {
8040		return nil, err
8041	}
8042	reqHeaders.Set("Content-Type", "application/json")
8043	c.urlParams_.Set("alt", alt)
8044	c.urlParams_.Set("prettyPrint", "false")
8045	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles")
8046	urls += "?" + c.urlParams_.Encode()
8047	req, err := http.NewRequest("POST", urls, body)
8048	if err != nil {
8049		return nil, err
8050	}
8051	req.Header = reqHeaders
8052	googleapi.Expand(req.URL, map[string]string{
8053		"projectId":   c.projectId,
8054		"historyId":   c.historyId,
8055		"executionId": c.executionId,
8056		"stepId":      c.stepId,
8057	})
8058	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8059}
8060
8061// Do executes the "toolresults.projects.histories.executions.steps.publishXunitXmlFiles" call.
8062// Exactly one of *Step or error will be non-nil. Any non-2xx status
8063// code is an error. Response headers are in either
8064// *Step.ServerResponse.Header or (if a response was returned at all) in
8065// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
8066// whether the returned error was because http.StatusNotModified was
8067// returned.
8068func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) Do(opts ...googleapi.CallOption) (*Step, error) {
8069	gensupport.SetOptions(c.urlParams_, opts...)
8070	res, err := c.doRequest("json")
8071	if res != nil && res.StatusCode == http.StatusNotModified {
8072		if res.Body != nil {
8073			res.Body.Close()
8074		}
8075		return nil, &googleapi.Error{
8076			Code:   res.StatusCode,
8077			Header: res.Header,
8078		}
8079	}
8080	if err != nil {
8081		return nil, err
8082	}
8083	defer googleapi.CloseBody(res)
8084	if err := googleapi.CheckResponse(res); err != nil {
8085		return nil, err
8086	}
8087	ret := &Step{
8088		ServerResponse: googleapi.ServerResponse{
8089			Header:         res.Header,
8090			HTTPStatusCode: res.StatusCode,
8091		},
8092	}
8093	target := &ret
8094	if err := gensupport.DecodeResponse(target, res); err != nil {
8095		return nil, err
8096	}
8097	return ret, nil
8098	// {
8099	//   "description": "Publish xml files to an existing Step. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal, e.g try to upload a duplicate xml file or a file too large. - NOT_FOUND - if the containing Execution does not exist",
8100	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles",
8101	//   "httpMethod": "POST",
8102	//   "id": "toolresults.projects.histories.executions.steps.publishXunitXmlFiles",
8103	//   "parameterOrder": [
8104	//     "projectId",
8105	//     "historyId",
8106	//     "executionId",
8107	//     "stepId"
8108	//   ],
8109	//   "parameters": {
8110	//     "executionId": {
8111	//       "description": "A Execution id. Required.",
8112	//       "location": "path",
8113	//       "required": true,
8114	//       "type": "string"
8115	//     },
8116	//     "historyId": {
8117	//       "description": "A History id. Required.",
8118	//       "location": "path",
8119	//       "required": true,
8120	//       "type": "string"
8121	//     },
8122	//     "projectId": {
8123	//       "description": "A Project id. Required.",
8124	//       "location": "path",
8125	//       "required": true,
8126	//       "type": "string"
8127	//     },
8128	//     "stepId": {
8129	//       "description": "A Step id. Note: This step must include a TestExecutionStep. Required.",
8130	//       "location": "path",
8131	//       "required": true,
8132	//       "type": "string"
8133	//     }
8134	//   },
8135	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles",
8136	//   "request": {
8137	//     "$ref": "PublishXunitXmlFilesRequest"
8138	//   },
8139	//   "response": {
8140	//     "$ref": "Step"
8141	//   },
8142	//   "scopes": [
8143	//     "https://www.googleapis.com/auth/cloud-platform"
8144	//   ]
8145	// }
8146
8147}
8148
8149// method id "toolresults.projects.histories.executions.steps.perfMetricsSummary.create":
8150
8151type ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall struct {
8152	s                  *Service
8153	projectId          string
8154	historyId          string
8155	executionId        string
8156	stepId             string
8157	perfmetricssummary *PerfMetricsSummary
8158	urlParams_         gensupport.URLParams
8159	ctx_               context.Context
8160	header_            http.Header
8161}
8162
8163// Create: Creates a PerfMetricsSummary resource. Returns the existing
8164// one if it has already been created. May return any of the following
8165// error code(s): - NOT_FOUND - The containing Step does not exist
8166//
8167// - executionId: A tool results execution ID.
8168// - historyId: A tool results history ID.
8169// - projectId: The cloud project.
8170// - stepId: A tool results step ID.
8171func (r *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService) Create(projectId string, historyId string, executionId string, stepId string, perfmetricssummary *PerfMetricsSummary) *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall {
8172	c := &ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8173	c.projectId = projectId
8174	c.historyId = historyId
8175	c.executionId = executionId
8176	c.stepId = stepId
8177	c.perfmetricssummary = perfmetricssummary
8178	return c
8179}
8180
8181// Fields allows partial responses to be retrieved. See
8182// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8183// for more information.
8184func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall {
8185	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8186	return c
8187}
8188
8189// Context sets the context to be used in this call's Do method. Any
8190// pending HTTP request will be aborted if the provided context is
8191// canceled.
8192func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall {
8193	c.ctx_ = ctx
8194	return c
8195}
8196
8197// Header returns an http.Header that can be modified by the caller to
8198// add HTTP headers to the request.
8199func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) Header() http.Header {
8200	if c.header_ == nil {
8201		c.header_ = make(http.Header)
8202	}
8203	return c.header_
8204}
8205
8206func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) doRequest(alt string) (*http.Response, error) {
8207	reqHeaders := make(http.Header)
8208	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8209	for k, v := range c.header_ {
8210		reqHeaders[k] = v
8211	}
8212	reqHeaders.Set("User-Agent", c.s.userAgent())
8213	var body io.Reader = nil
8214	body, err := googleapi.WithoutDataWrapper.JSONReader(c.perfmetricssummary)
8215	if err != nil {
8216		return nil, err
8217	}
8218	reqHeaders.Set("Content-Type", "application/json")
8219	c.urlParams_.Set("alt", alt)
8220	c.urlParams_.Set("prettyPrint", "false")
8221	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary")
8222	urls += "?" + c.urlParams_.Encode()
8223	req, err := http.NewRequest("POST", urls, body)
8224	if err != nil {
8225		return nil, err
8226	}
8227	req.Header = reqHeaders
8228	googleapi.Expand(req.URL, map[string]string{
8229		"projectId":   c.projectId,
8230		"historyId":   c.historyId,
8231		"executionId": c.executionId,
8232		"stepId":      c.stepId,
8233	})
8234	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8235}
8236
8237// Do executes the "toolresults.projects.histories.executions.steps.perfMetricsSummary.create" call.
8238// Exactly one of *PerfMetricsSummary or error will be non-nil. Any
8239// non-2xx status code is an error. Response headers are in either
8240// *PerfMetricsSummary.ServerResponse.Header or (if a response was
8241// returned at all) in error.(*googleapi.Error).Header. Use
8242// googleapi.IsNotModified to check whether the returned error was
8243// because http.StatusNotModified was returned.
8244func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) Do(opts ...googleapi.CallOption) (*PerfMetricsSummary, error) {
8245	gensupport.SetOptions(c.urlParams_, opts...)
8246	res, err := c.doRequest("json")
8247	if res != nil && res.StatusCode == http.StatusNotModified {
8248		if res.Body != nil {
8249			res.Body.Close()
8250		}
8251		return nil, &googleapi.Error{
8252			Code:   res.StatusCode,
8253			Header: res.Header,
8254		}
8255	}
8256	if err != nil {
8257		return nil, err
8258	}
8259	defer googleapi.CloseBody(res)
8260	if err := googleapi.CheckResponse(res); err != nil {
8261		return nil, err
8262	}
8263	ret := &PerfMetricsSummary{
8264		ServerResponse: googleapi.ServerResponse{
8265			Header:         res.Header,
8266			HTTPStatusCode: res.StatusCode,
8267		},
8268	}
8269	target := &ret
8270	if err := gensupport.DecodeResponse(target, res); err != nil {
8271		return nil, err
8272	}
8273	return ret, nil
8274	// {
8275	//   "description": "Creates a PerfMetricsSummary resource. Returns the existing one if it has already been created. May return any of the following error code(s): - NOT_FOUND - The containing Step does not exist",
8276	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary",
8277	//   "httpMethod": "POST",
8278	//   "id": "toolresults.projects.histories.executions.steps.perfMetricsSummary.create",
8279	//   "parameterOrder": [
8280	//     "projectId",
8281	//     "historyId",
8282	//     "executionId",
8283	//     "stepId"
8284	//   ],
8285	//   "parameters": {
8286	//     "executionId": {
8287	//       "description": "A tool results execution ID.",
8288	//       "location": "path",
8289	//       "required": true,
8290	//       "type": "string"
8291	//     },
8292	//     "historyId": {
8293	//       "description": "A tool results history ID.",
8294	//       "location": "path",
8295	//       "required": true,
8296	//       "type": "string"
8297	//     },
8298	//     "projectId": {
8299	//       "description": "The cloud project",
8300	//       "location": "path",
8301	//       "required": true,
8302	//       "type": "string"
8303	//     },
8304	//     "stepId": {
8305	//       "description": "A tool results step ID.",
8306	//       "location": "path",
8307	//       "required": true,
8308	//       "type": "string"
8309	//     }
8310	//   },
8311	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary",
8312	//   "request": {
8313	//     "$ref": "PerfMetricsSummary"
8314	//   },
8315	//   "response": {
8316	//     "$ref": "PerfMetricsSummary"
8317	//   },
8318	//   "scopes": [
8319	//     "https://www.googleapis.com/auth/cloud-platform"
8320	//   ]
8321	// }
8322
8323}
8324
8325// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.create":
8326
8327type ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall struct {
8328	s                *Service
8329	projectId        string
8330	historyId        string
8331	executionId      string
8332	stepId           string
8333	perfsampleseries *PerfSampleSeries
8334	urlParams_       gensupport.URLParams
8335	ctx_             context.Context
8336	header_          http.Header
8337}
8338
8339// Create: Creates a PerfSampleSeries. May return any of the following
8340// error code(s): - ALREADY_EXISTS - PerfMetricSummary already exists
8341// for the given Step - NOT_FOUND - The containing Step does not exist
8342//
8343// - executionId: A tool results execution ID.
8344// - historyId: A tool results history ID.
8345// - projectId: The cloud project.
8346// - stepId: A tool results step ID.
8347func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService) Create(projectId string, historyId string, executionId string, stepId string, perfsampleseries *PerfSampleSeries) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall {
8348	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8349	c.projectId = projectId
8350	c.historyId = historyId
8351	c.executionId = executionId
8352	c.stepId = stepId
8353	c.perfsampleseries = perfsampleseries
8354	return c
8355}
8356
8357// Fields allows partial responses to be retrieved. See
8358// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8359// for more information.
8360func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall {
8361	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8362	return c
8363}
8364
8365// Context sets the context to be used in this call's Do method. Any
8366// pending HTTP request will be aborted if the provided context is
8367// canceled.
8368func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall {
8369	c.ctx_ = ctx
8370	return c
8371}
8372
8373// Header returns an http.Header that can be modified by the caller to
8374// add HTTP headers to the request.
8375func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) Header() http.Header {
8376	if c.header_ == nil {
8377		c.header_ = make(http.Header)
8378	}
8379	return c.header_
8380}
8381
8382func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) doRequest(alt string) (*http.Response, error) {
8383	reqHeaders := make(http.Header)
8384	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8385	for k, v := range c.header_ {
8386		reqHeaders[k] = v
8387	}
8388	reqHeaders.Set("User-Agent", c.s.userAgent())
8389	var body io.Reader = nil
8390	body, err := googleapi.WithoutDataWrapper.JSONReader(c.perfsampleseries)
8391	if err != nil {
8392		return nil, err
8393	}
8394	reqHeaders.Set("Content-Type", "application/json")
8395	c.urlParams_.Set("alt", alt)
8396	c.urlParams_.Set("prettyPrint", "false")
8397	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries")
8398	urls += "?" + c.urlParams_.Encode()
8399	req, err := http.NewRequest("POST", urls, body)
8400	if err != nil {
8401		return nil, err
8402	}
8403	req.Header = reqHeaders
8404	googleapi.Expand(req.URL, map[string]string{
8405		"projectId":   c.projectId,
8406		"historyId":   c.historyId,
8407		"executionId": c.executionId,
8408		"stepId":      c.stepId,
8409	})
8410	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8411}
8412
8413// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.create" call.
8414// Exactly one of *PerfSampleSeries or error will be non-nil. Any
8415// non-2xx status code is an error. Response headers are in either
8416// *PerfSampleSeries.ServerResponse.Header or (if a response was
8417// returned at all) in error.(*googleapi.Error).Header. Use
8418// googleapi.IsNotModified to check whether the returned error was
8419// because http.StatusNotModified was returned.
8420func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) Do(opts ...googleapi.CallOption) (*PerfSampleSeries, error) {
8421	gensupport.SetOptions(c.urlParams_, opts...)
8422	res, err := c.doRequest("json")
8423	if res != nil && res.StatusCode == http.StatusNotModified {
8424		if res.Body != nil {
8425			res.Body.Close()
8426		}
8427		return nil, &googleapi.Error{
8428			Code:   res.StatusCode,
8429			Header: res.Header,
8430		}
8431	}
8432	if err != nil {
8433		return nil, err
8434	}
8435	defer googleapi.CloseBody(res)
8436	if err := googleapi.CheckResponse(res); err != nil {
8437		return nil, err
8438	}
8439	ret := &PerfSampleSeries{
8440		ServerResponse: googleapi.ServerResponse{
8441			Header:         res.Header,
8442			HTTPStatusCode: res.StatusCode,
8443		},
8444	}
8445	target := &ret
8446	if err := gensupport.DecodeResponse(target, res); err != nil {
8447		return nil, err
8448	}
8449	return ret, nil
8450	// {
8451	//   "description": "Creates a PerfSampleSeries. May return any of the following error code(s): - ALREADY_EXISTS - PerfMetricSummary already exists for the given Step - NOT_FOUND - The containing Step does not exist",
8452	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries",
8453	//   "httpMethod": "POST",
8454	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.create",
8455	//   "parameterOrder": [
8456	//     "projectId",
8457	//     "historyId",
8458	//     "executionId",
8459	//     "stepId"
8460	//   ],
8461	//   "parameters": {
8462	//     "executionId": {
8463	//       "description": "A tool results execution ID.",
8464	//       "location": "path",
8465	//       "required": true,
8466	//       "type": "string"
8467	//     },
8468	//     "historyId": {
8469	//       "description": "A tool results history ID.",
8470	//       "location": "path",
8471	//       "required": true,
8472	//       "type": "string"
8473	//     },
8474	//     "projectId": {
8475	//       "description": "The cloud project",
8476	//       "location": "path",
8477	//       "required": true,
8478	//       "type": "string"
8479	//     },
8480	//     "stepId": {
8481	//       "description": "A tool results step ID.",
8482	//       "location": "path",
8483	//       "required": true,
8484	//       "type": "string"
8485	//     }
8486	//   },
8487	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries",
8488	//   "request": {
8489	//     "$ref": "PerfSampleSeries"
8490	//   },
8491	//   "response": {
8492	//     "$ref": "PerfSampleSeries"
8493	//   },
8494	//   "scopes": [
8495	//     "https://www.googleapis.com/auth/cloud-platform"
8496	//   ]
8497	// }
8498
8499}
8500
8501// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.get":
8502
8503type ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall struct {
8504	s              *Service
8505	projectId      string
8506	historyId      string
8507	executionId    string
8508	stepId         string
8509	sampleSeriesId string
8510	urlParams_     gensupport.URLParams
8511	ifNoneMatch_   string
8512	ctx_           context.Context
8513	header_        http.Header
8514}
8515
8516// Get: Gets a PerfSampleSeries. May return any of the following error
8517// code(s): - NOT_FOUND - The specified PerfSampleSeries does not exist
8518//
8519// - executionId: A tool results execution ID.
8520// - historyId: A tool results history ID.
8521// - projectId: The cloud project.
8522// - sampleSeriesId: A sample series id.
8523// - stepId: A tool results step ID.
8524func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService) Get(projectId string, historyId string, executionId string, stepId string, sampleSeriesId string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall {
8525	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8526	c.projectId = projectId
8527	c.historyId = historyId
8528	c.executionId = executionId
8529	c.stepId = stepId
8530	c.sampleSeriesId = sampleSeriesId
8531	return c
8532}
8533
8534// Fields allows partial responses to be retrieved. See
8535// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8536// for more information.
8537func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall {
8538	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8539	return c
8540}
8541
8542// IfNoneMatch sets the optional parameter which makes the operation
8543// fail if the object's ETag matches the given value. This is useful for
8544// getting updates only after the object has changed since the last
8545// request. Use googleapi.IsNotModified to check whether the response
8546// error from Do is the result of In-None-Match.
8547func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall {
8548	c.ifNoneMatch_ = entityTag
8549	return c
8550}
8551
8552// Context sets the context to be used in this call's Do method. Any
8553// pending HTTP request will be aborted if the provided context is
8554// canceled.
8555func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall {
8556	c.ctx_ = ctx
8557	return c
8558}
8559
8560// Header returns an http.Header that can be modified by the caller to
8561// add HTTP headers to the request.
8562func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) Header() http.Header {
8563	if c.header_ == nil {
8564		c.header_ = make(http.Header)
8565	}
8566	return c.header_
8567}
8568
8569func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) doRequest(alt string) (*http.Response, error) {
8570	reqHeaders := make(http.Header)
8571	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8572	for k, v := range c.header_ {
8573		reqHeaders[k] = v
8574	}
8575	reqHeaders.Set("User-Agent", c.s.userAgent())
8576	if c.ifNoneMatch_ != "" {
8577		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8578	}
8579	var body io.Reader = nil
8580	c.urlParams_.Set("alt", alt)
8581	c.urlParams_.Set("prettyPrint", "false")
8582	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}")
8583	urls += "?" + c.urlParams_.Encode()
8584	req, err := http.NewRequest("GET", urls, body)
8585	if err != nil {
8586		return nil, err
8587	}
8588	req.Header = reqHeaders
8589	googleapi.Expand(req.URL, map[string]string{
8590		"projectId":      c.projectId,
8591		"historyId":      c.historyId,
8592		"executionId":    c.executionId,
8593		"stepId":         c.stepId,
8594		"sampleSeriesId": c.sampleSeriesId,
8595	})
8596	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8597}
8598
8599// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.get" call.
8600// Exactly one of *PerfSampleSeries or error will be non-nil. Any
8601// non-2xx status code is an error. Response headers are in either
8602// *PerfSampleSeries.ServerResponse.Header or (if a response was
8603// returned at all) in error.(*googleapi.Error).Header. Use
8604// googleapi.IsNotModified to check whether the returned error was
8605// because http.StatusNotModified was returned.
8606func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) Do(opts ...googleapi.CallOption) (*PerfSampleSeries, error) {
8607	gensupport.SetOptions(c.urlParams_, opts...)
8608	res, err := c.doRequest("json")
8609	if res != nil && res.StatusCode == http.StatusNotModified {
8610		if res.Body != nil {
8611			res.Body.Close()
8612		}
8613		return nil, &googleapi.Error{
8614			Code:   res.StatusCode,
8615			Header: res.Header,
8616		}
8617	}
8618	if err != nil {
8619		return nil, err
8620	}
8621	defer googleapi.CloseBody(res)
8622	if err := googleapi.CheckResponse(res); err != nil {
8623		return nil, err
8624	}
8625	ret := &PerfSampleSeries{
8626		ServerResponse: googleapi.ServerResponse{
8627			Header:         res.Header,
8628			HTTPStatusCode: res.StatusCode,
8629		},
8630	}
8631	target := &ret
8632	if err := gensupport.DecodeResponse(target, res); err != nil {
8633		return nil, err
8634	}
8635	return ret, nil
8636	// {
8637	//   "description": "Gets a PerfSampleSeries. May return any of the following error code(s): - NOT_FOUND - The specified PerfSampleSeries does not exist",
8638	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}",
8639	//   "httpMethod": "GET",
8640	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.get",
8641	//   "parameterOrder": [
8642	//     "projectId",
8643	//     "historyId",
8644	//     "executionId",
8645	//     "stepId",
8646	//     "sampleSeriesId"
8647	//   ],
8648	//   "parameters": {
8649	//     "executionId": {
8650	//       "description": "A tool results execution ID.",
8651	//       "location": "path",
8652	//       "required": true,
8653	//       "type": "string"
8654	//     },
8655	//     "historyId": {
8656	//       "description": "A tool results history ID.",
8657	//       "location": "path",
8658	//       "required": true,
8659	//       "type": "string"
8660	//     },
8661	//     "projectId": {
8662	//       "description": "The cloud project",
8663	//       "location": "path",
8664	//       "required": true,
8665	//       "type": "string"
8666	//     },
8667	//     "sampleSeriesId": {
8668	//       "description": "A sample series id",
8669	//       "location": "path",
8670	//       "required": true,
8671	//       "type": "string"
8672	//     },
8673	//     "stepId": {
8674	//       "description": "A tool results step ID.",
8675	//       "location": "path",
8676	//       "required": true,
8677	//       "type": "string"
8678	//     }
8679	//   },
8680	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}",
8681	//   "response": {
8682	//     "$ref": "PerfSampleSeries"
8683	//   },
8684	//   "scopes": [
8685	//     "https://www.googleapis.com/auth/cloud-platform"
8686	//   ]
8687	// }
8688
8689}
8690
8691// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.list":
8692
8693type ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall struct {
8694	s            *Service
8695	projectId    string
8696	historyId    string
8697	executionId  string
8698	stepId       string
8699	urlParams_   gensupport.URLParams
8700	ifNoneMatch_ string
8701	ctx_         context.Context
8702	header_      http.Header
8703}
8704
8705// List: Lists PerfSampleSeries for a given Step. The request provides
8706// an optional filter which specifies one or more PerfMetricsType to
8707// include in the result; if none returns all. The resulting
8708// PerfSampleSeries are sorted by ids. May return any of the following
8709// canonical error codes: - NOT_FOUND - The containing Step does not
8710// exist
8711//
8712// - executionId: A tool results execution ID.
8713// - historyId: A tool results history ID.
8714// - projectId: The cloud project.
8715// - stepId: A tool results step ID.
8716func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService) List(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
8717	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8718	c.projectId = projectId
8719	c.historyId = historyId
8720	c.executionId = executionId
8721	c.stepId = stepId
8722	return c
8723}
8724
8725// Filter sets the optional parameter "filter": Specify one or more
8726// PerfMetricType values such as CPU to filter the result
8727//
8728// Possible values:
8729//   "perfMetricTypeUnspecified"
8730//   "memory"
8731//   "cpu"
8732//   "network"
8733//   "graphics"
8734func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Filter(filter ...string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
8735	c.urlParams_.SetMulti("filter", append([]string{}, filter...))
8736	return c
8737}
8738
8739// Fields allows partial responses to be retrieved. See
8740// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8741// for more information.
8742func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
8743	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8744	return c
8745}
8746
8747// IfNoneMatch sets the optional parameter which makes the operation
8748// fail if the object's ETag matches the given value. This is useful for
8749// getting updates only after the object has changed since the last
8750// request. Use googleapi.IsNotModified to check whether the response
8751// error from Do is the result of In-None-Match.
8752func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
8753	c.ifNoneMatch_ = entityTag
8754	return c
8755}
8756
8757// Context sets the context to be used in this call's Do method. Any
8758// pending HTTP request will be aborted if the provided context is
8759// canceled.
8760func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
8761	c.ctx_ = ctx
8762	return c
8763}
8764
8765// Header returns an http.Header that can be modified by the caller to
8766// add HTTP headers to the request.
8767func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Header() http.Header {
8768	if c.header_ == nil {
8769		c.header_ = make(http.Header)
8770	}
8771	return c.header_
8772}
8773
8774func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) doRequest(alt string) (*http.Response, error) {
8775	reqHeaders := make(http.Header)
8776	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8777	for k, v := range c.header_ {
8778		reqHeaders[k] = v
8779	}
8780	reqHeaders.Set("User-Agent", c.s.userAgent())
8781	if c.ifNoneMatch_ != "" {
8782		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8783	}
8784	var body io.Reader = nil
8785	c.urlParams_.Set("alt", alt)
8786	c.urlParams_.Set("prettyPrint", "false")
8787	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries")
8788	urls += "?" + c.urlParams_.Encode()
8789	req, err := http.NewRequest("GET", urls, body)
8790	if err != nil {
8791		return nil, err
8792	}
8793	req.Header = reqHeaders
8794	googleapi.Expand(req.URL, map[string]string{
8795		"projectId":   c.projectId,
8796		"historyId":   c.historyId,
8797		"executionId": c.executionId,
8798		"stepId":      c.stepId,
8799	})
8800	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8801}
8802
8803// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.list" call.
8804// Exactly one of *ListPerfSampleSeriesResponse or error will be
8805// non-nil. Any non-2xx status code is an error. Response headers are in
8806// either *ListPerfSampleSeriesResponse.ServerResponse.Header or (if a
8807// response was returned at all) in error.(*googleapi.Error).Header. Use
8808// googleapi.IsNotModified to check whether the returned error was
8809// because http.StatusNotModified was returned.
8810func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Do(opts ...googleapi.CallOption) (*ListPerfSampleSeriesResponse, error) {
8811	gensupport.SetOptions(c.urlParams_, opts...)
8812	res, err := c.doRequest("json")
8813	if res != nil && res.StatusCode == http.StatusNotModified {
8814		if res.Body != nil {
8815			res.Body.Close()
8816		}
8817		return nil, &googleapi.Error{
8818			Code:   res.StatusCode,
8819			Header: res.Header,
8820		}
8821	}
8822	if err != nil {
8823		return nil, err
8824	}
8825	defer googleapi.CloseBody(res)
8826	if err := googleapi.CheckResponse(res); err != nil {
8827		return nil, err
8828	}
8829	ret := &ListPerfSampleSeriesResponse{
8830		ServerResponse: googleapi.ServerResponse{
8831			Header:         res.Header,
8832			HTTPStatusCode: res.StatusCode,
8833		},
8834	}
8835	target := &ret
8836	if err := gensupport.DecodeResponse(target, res); err != nil {
8837		return nil, err
8838	}
8839	return ret, nil
8840	// {
8841	//   "description": "Lists PerfSampleSeries for a given Step. The request provides an optional filter which specifies one or more PerfMetricsType to include in the result; if none returns all. The resulting PerfSampleSeries are sorted by ids. May return any of the following canonical error codes: - NOT_FOUND - The containing Step does not exist",
8842	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries",
8843	//   "httpMethod": "GET",
8844	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.list",
8845	//   "parameterOrder": [
8846	//     "projectId",
8847	//     "historyId",
8848	//     "executionId",
8849	//     "stepId"
8850	//   ],
8851	//   "parameters": {
8852	//     "executionId": {
8853	//       "description": "A tool results execution ID.",
8854	//       "location": "path",
8855	//       "required": true,
8856	//       "type": "string"
8857	//     },
8858	//     "filter": {
8859	//       "description": "Specify one or more PerfMetricType values such as CPU to filter the result",
8860	//       "enum": [
8861	//         "perfMetricTypeUnspecified",
8862	//         "memory",
8863	//         "cpu",
8864	//         "network",
8865	//         "graphics"
8866	//       ],
8867	//       "enumDescriptions": [
8868	//         "",
8869	//         "",
8870	//         "",
8871	//         "",
8872	//         ""
8873	//       ],
8874	//       "location": "query",
8875	//       "repeated": true,
8876	//       "type": "string"
8877	//     },
8878	//     "historyId": {
8879	//       "description": "A tool results history ID.",
8880	//       "location": "path",
8881	//       "required": true,
8882	//       "type": "string"
8883	//     },
8884	//     "projectId": {
8885	//       "description": "The cloud project",
8886	//       "location": "path",
8887	//       "required": true,
8888	//       "type": "string"
8889	//     },
8890	//     "stepId": {
8891	//       "description": "A tool results step ID.",
8892	//       "location": "path",
8893	//       "required": true,
8894	//       "type": "string"
8895	//     }
8896	//   },
8897	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries",
8898	//   "response": {
8899	//     "$ref": "ListPerfSampleSeriesResponse"
8900	//   },
8901	//   "scopes": [
8902	//     "https://www.googleapis.com/auth/cloud-platform"
8903	//   ]
8904	// }
8905
8906}
8907
8908// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate":
8909
8910type ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall struct {
8911	s                             *Service
8912	projectId                     string
8913	historyId                     string
8914	executionId                   string
8915	stepId                        string
8916	sampleSeriesId                string
8917	batchcreateperfsamplesrequest *BatchCreatePerfSamplesRequest
8918	urlParams_                    gensupport.URLParams
8919	ctx_                          context.Context
8920	header_                       http.Header
8921}
8922
8923// BatchCreate: Creates a batch of PerfSamples - a client can submit
8924// multiple batches of Perf Samples through repeated calls to this
8925// method in order to split up a large request payload - duplicates and
8926// existing timestamp entries will be ignored. - the batch operation may
8927// partially succeed - the set of elements successfully inserted is
8928// returned in the response (omits items which already existed in the
8929// database). May return any of the following canonical error codes: -
8930// NOT_FOUND - The containing PerfSampleSeries does not exist
8931//
8932// - executionId: A tool results execution ID.
8933// - historyId: A tool results history ID.
8934// - projectId: The cloud project.
8935// - sampleSeriesId: A sample series id.
8936// - stepId: A tool results step ID.
8937func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService) BatchCreate(projectId string, historyId string, executionId string, stepId string, sampleSeriesId string, batchcreateperfsamplesrequest *BatchCreatePerfSamplesRequest) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall {
8938	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8939	c.projectId = projectId
8940	c.historyId = historyId
8941	c.executionId = executionId
8942	c.stepId = stepId
8943	c.sampleSeriesId = sampleSeriesId
8944	c.batchcreateperfsamplesrequest = batchcreateperfsamplesrequest
8945	return c
8946}
8947
8948// Fields allows partial responses to be retrieved. See
8949// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8950// for more information.
8951func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall {
8952	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8953	return c
8954}
8955
8956// Context sets the context to be used in this call's Do method. Any
8957// pending HTTP request will be aborted if the provided context is
8958// canceled.
8959func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall {
8960	c.ctx_ = ctx
8961	return c
8962}
8963
8964// Header returns an http.Header that can be modified by the caller to
8965// add HTTP headers to the request.
8966func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) Header() http.Header {
8967	if c.header_ == nil {
8968		c.header_ = make(http.Header)
8969	}
8970	return c.header_
8971}
8972
8973func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) doRequest(alt string) (*http.Response, error) {
8974	reqHeaders := make(http.Header)
8975	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8976	for k, v := range c.header_ {
8977		reqHeaders[k] = v
8978	}
8979	reqHeaders.Set("User-Agent", c.s.userAgent())
8980	var body io.Reader = nil
8981	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchcreateperfsamplesrequest)
8982	if err != nil {
8983		return nil, err
8984	}
8985	reqHeaders.Set("Content-Type", "application/json")
8986	c.urlParams_.Set("alt", alt)
8987	c.urlParams_.Set("prettyPrint", "false")
8988	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples:batchCreate")
8989	urls += "?" + c.urlParams_.Encode()
8990	req, err := http.NewRequest("POST", urls, body)
8991	if err != nil {
8992		return nil, err
8993	}
8994	req.Header = reqHeaders
8995	googleapi.Expand(req.URL, map[string]string{
8996		"projectId":      c.projectId,
8997		"historyId":      c.historyId,
8998		"executionId":    c.executionId,
8999		"stepId":         c.stepId,
9000		"sampleSeriesId": c.sampleSeriesId,
9001	})
9002	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9003}
9004
9005// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate" call.
9006// Exactly one of *BatchCreatePerfSamplesResponse or error will be
9007// non-nil. Any non-2xx status code is an error. Response headers are in
9008// either *BatchCreatePerfSamplesResponse.ServerResponse.Header or (if a
9009// response was returned at all) in error.(*googleapi.Error).Header. Use
9010// googleapi.IsNotModified to check whether the returned error was
9011// because http.StatusNotModified was returned.
9012func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) Do(opts ...googleapi.CallOption) (*BatchCreatePerfSamplesResponse, error) {
9013	gensupport.SetOptions(c.urlParams_, opts...)
9014	res, err := c.doRequest("json")
9015	if res != nil && res.StatusCode == http.StatusNotModified {
9016		if res.Body != nil {
9017			res.Body.Close()
9018		}
9019		return nil, &googleapi.Error{
9020			Code:   res.StatusCode,
9021			Header: res.Header,
9022		}
9023	}
9024	if err != nil {
9025		return nil, err
9026	}
9027	defer googleapi.CloseBody(res)
9028	if err := googleapi.CheckResponse(res); err != nil {
9029		return nil, err
9030	}
9031	ret := &BatchCreatePerfSamplesResponse{
9032		ServerResponse: googleapi.ServerResponse{
9033			Header:         res.Header,
9034			HTTPStatusCode: res.StatusCode,
9035		},
9036	}
9037	target := &ret
9038	if err := gensupport.DecodeResponse(target, res); err != nil {
9039		return nil, err
9040	}
9041	return ret, nil
9042	// {
9043	//   "description": "Creates a batch of PerfSamples - a client can submit multiple batches of Perf Samples through repeated calls to this method in order to split up a large request payload - duplicates and existing timestamp entries will be ignored. - the batch operation may partially succeed - the set of elements successfully inserted is returned in the response (omits items which already existed in the database). May return any of the following canonical error codes: - NOT_FOUND - The containing PerfSampleSeries does not exist",
9044	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples:batchCreate",
9045	//   "httpMethod": "POST",
9046	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate",
9047	//   "parameterOrder": [
9048	//     "projectId",
9049	//     "historyId",
9050	//     "executionId",
9051	//     "stepId",
9052	//     "sampleSeriesId"
9053	//   ],
9054	//   "parameters": {
9055	//     "executionId": {
9056	//       "description": "A tool results execution ID.",
9057	//       "location": "path",
9058	//       "required": true,
9059	//       "type": "string"
9060	//     },
9061	//     "historyId": {
9062	//       "description": "A tool results history ID.",
9063	//       "location": "path",
9064	//       "required": true,
9065	//       "type": "string"
9066	//     },
9067	//     "projectId": {
9068	//       "description": "The cloud project",
9069	//       "location": "path",
9070	//       "required": true,
9071	//       "type": "string"
9072	//     },
9073	//     "sampleSeriesId": {
9074	//       "description": "A sample series id",
9075	//       "location": "path",
9076	//       "required": true,
9077	//       "type": "string"
9078	//     },
9079	//     "stepId": {
9080	//       "description": "A tool results step ID.",
9081	//       "location": "path",
9082	//       "required": true,
9083	//       "type": "string"
9084	//     }
9085	//   },
9086	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples:batchCreate",
9087	//   "request": {
9088	//     "$ref": "BatchCreatePerfSamplesRequest"
9089	//   },
9090	//   "response": {
9091	//     "$ref": "BatchCreatePerfSamplesResponse"
9092	//   },
9093	//   "scopes": [
9094	//     "https://www.googleapis.com/auth/cloud-platform"
9095	//   ]
9096	// }
9097
9098}
9099
9100// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list":
9101
9102type ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall struct {
9103	s              *Service
9104	projectId      string
9105	historyId      string
9106	executionId    string
9107	stepId         string
9108	sampleSeriesId string
9109	urlParams_     gensupport.URLParams
9110	ifNoneMatch_   string
9111	ctx_           context.Context
9112	header_        http.Header
9113}
9114
9115// List: Lists the Performance Samples of a given Sample Series - The
9116// list results are sorted by timestamps ascending - The default page
9117// size is 500 samples; and maximum size allowed 5000 - The response
9118// token indicates the last returned PerfSample timestamp - When the
9119// results size exceeds the page size, submit a subsequent request
9120// including the page token to return the rest of the samples up to the
9121// page limit May return any of the following canonical error codes: -
9122// OUT_OF_RANGE - The specified request page_token is out of valid range
9123// - NOT_FOUND - The containing PerfSampleSeries does not exist
9124//
9125// - executionId: A tool results execution ID.
9126// - historyId: A tool results history ID.
9127// - projectId: The cloud project.
9128// - sampleSeriesId: A sample series id.
9129// - stepId: A tool results step ID.
9130func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService) List(projectId string, historyId string, executionId string, stepId string, sampleSeriesId string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
9131	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9132	c.projectId = projectId
9133	c.historyId = historyId
9134	c.executionId = executionId
9135	c.stepId = stepId
9136	c.sampleSeriesId = sampleSeriesId
9137	return c
9138}
9139
9140// PageSize sets the optional parameter "pageSize": The default page
9141// size is 500 samples, and the maximum size is 5000. If the page_size
9142// is greater than 5000, the effective page size will be 5000
9143func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
9144	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
9145	return c
9146}
9147
9148// PageToken sets the optional parameter "pageToken": Optional, the
9149// next_page_token returned in the previous response
9150func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
9151	c.urlParams_.Set("pageToken", pageToken)
9152	return c
9153}
9154
9155// Fields allows partial responses to be retrieved. See
9156// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9157// for more information.
9158func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
9159	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9160	return c
9161}
9162
9163// IfNoneMatch sets the optional parameter which makes the operation
9164// fail if the object's ETag matches the given value. This is useful for
9165// getting updates only after the object has changed since the last
9166// request. Use googleapi.IsNotModified to check whether the response
9167// error from Do is the result of In-None-Match.
9168func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
9169	c.ifNoneMatch_ = entityTag
9170	return c
9171}
9172
9173// Context sets the context to be used in this call's Do method. Any
9174// pending HTTP request will be aborted if the provided context is
9175// canceled.
9176func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
9177	c.ctx_ = ctx
9178	return c
9179}
9180
9181// Header returns an http.Header that can be modified by the caller to
9182// add HTTP headers to the request.
9183func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Header() http.Header {
9184	if c.header_ == nil {
9185		c.header_ = make(http.Header)
9186	}
9187	return c.header_
9188}
9189
9190func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) doRequest(alt string) (*http.Response, error) {
9191	reqHeaders := make(http.Header)
9192	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
9193	for k, v := range c.header_ {
9194		reqHeaders[k] = v
9195	}
9196	reqHeaders.Set("User-Agent", c.s.userAgent())
9197	if c.ifNoneMatch_ != "" {
9198		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9199	}
9200	var body io.Reader = nil
9201	c.urlParams_.Set("alt", alt)
9202	c.urlParams_.Set("prettyPrint", "false")
9203	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples")
9204	urls += "?" + c.urlParams_.Encode()
9205	req, err := http.NewRequest("GET", urls, body)
9206	if err != nil {
9207		return nil, err
9208	}
9209	req.Header = reqHeaders
9210	googleapi.Expand(req.URL, map[string]string{
9211		"projectId":      c.projectId,
9212		"historyId":      c.historyId,
9213		"executionId":    c.executionId,
9214		"stepId":         c.stepId,
9215		"sampleSeriesId": c.sampleSeriesId,
9216	})
9217	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9218}
9219
9220// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list" call.
9221// Exactly one of *ListPerfSamplesResponse or error will be non-nil. Any
9222// non-2xx status code is an error. Response headers are in either
9223// *ListPerfSamplesResponse.ServerResponse.Header or (if a response was
9224// returned at all) in error.(*googleapi.Error).Header. Use
9225// googleapi.IsNotModified to check whether the returned error was
9226// because http.StatusNotModified was returned.
9227func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Do(opts ...googleapi.CallOption) (*ListPerfSamplesResponse, error) {
9228	gensupport.SetOptions(c.urlParams_, opts...)
9229	res, err := c.doRequest("json")
9230	if res != nil && res.StatusCode == http.StatusNotModified {
9231		if res.Body != nil {
9232			res.Body.Close()
9233		}
9234		return nil, &googleapi.Error{
9235			Code:   res.StatusCode,
9236			Header: res.Header,
9237		}
9238	}
9239	if err != nil {
9240		return nil, err
9241	}
9242	defer googleapi.CloseBody(res)
9243	if err := googleapi.CheckResponse(res); err != nil {
9244		return nil, err
9245	}
9246	ret := &ListPerfSamplesResponse{
9247		ServerResponse: googleapi.ServerResponse{
9248			Header:         res.Header,
9249			HTTPStatusCode: res.StatusCode,
9250		},
9251	}
9252	target := &ret
9253	if err := gensupport.DecodeResponse(target, res); err != nil {
9254		return nil, err
9255	}
9256	return ret, nil
9257	// {
9258	//   "description": "Lists the Performance Samples of a given Sample Series - The list results are sorted by timestamps ascending - The default page size is 500 samples; and maximum size allowed 5000 - The response token indicates the last returned PerfSample timestamp - When the results size exceeds the page size, submit a subsequent request including the page token to return the rest of the samples up to the page limit May return any of the following canonical error codes: - OUT_OF_RANGE - The specified request page_token is out of valid range - NOT_FOUND - The containing PerfSampleSeries does not exist",
9259	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples",
9260	//   "httpMethod": "GET",
9261	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list",
9262	//   "parameterOrder": [
9263	//     "projectId",
9264	//     "historyId",
9265	//     "executionId",
9266	//     "stepId",
9267	//     "sampleSeriesId"
9268	//   ],
9269	//   "parameters": {
9270	//     "executionId": {
9271	//       "description": "A tool results execution ID.",
9272	//       "location": "path",
9273	//       "required": true,
9274	//       "type": "string"
9275	//     },
9276	//     "historyId": {
9277	//       "description": "A tool results history ID.",
9278	//       "location": "path",
9279	//       "required": true,
9280	//       "type": "string"
9281	//     },
9282	//     "pageSize": {
9283	//       "description": "The default page size is 500 samples, and the maximum size is 5000. If the page_size is greater than 5000, the effective page size will be 5000",
9284	//       "format": "int32",
9285	//       "location": "query",
9286	//       "type": "integer"
9287	//     },
9288	//     "pageToken": {
9289	//       "description": "Optional, the next_page_token returned in the previous response",
9290	//       "location": "query",
9291	//       "type": "string"
9292	//     },
9293	//     "projectId": {
9294	//       "description": "The cloud project",
9295	//       "location": "path",
9296	//       "required": true,
9297	//       "type": "string"
9298	//     },
9299	//     "sampleSeriesId": {
9300	//       "description": "A sample series id",
9301	//       "location": "path",
9302	//       "required": true,
9303	//       "type": "string"
9304	//     },
9305	//     "stepId": {
9306	//       "description": "A tool results step ID.",
9307	//       "location": "path",
9308	//       "required": true,
9309	//       "type": "string"
9310	//     }
9311	//   },
9312	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples",
9313	//   "response": {
9314	//     "$ref": "ListPerfSamplesResponse"
9315	//   },
9316	//   "scopes": [
9317	//     "https://www.googleapis.com/auth/cloud-platform"
9318	//   ]
9319	// }
9320
9321}
9322
9323// Pages invokes f for each page of results.
9324// A non-nil error returned from f will halt the iteration.
9325// The provided context supersedes any context provided to the Context method.
9326func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Pages(ctx context.Context, f func(*ListPerfSamplesResponse) error) error {
9327	c.ctx_ = ctx
9328	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9329	for {
9330		x, err := c.Do()
9331		if err != nil {
9332			return err
9333		}
9334		if err := f(x); err != nil {
9335			return err
9336		}
9337		if x.NextPageToken == "" {
9338			return nil
9339		}
9340		c.PageToken(x.NextPageToken)
9341	}
9342}
9343
9344// method id "toolresults.projects.histories.executions.steps.testCases.get":
9345
9346type ProjectsHistoriesExecutionsStepsTestCasesGetCall struct {
9347	s            *Service
9348	projectId    string
9349	historyId    string
9350	executionId  string
9351	stepId       string
9352	testCaseId   string
9353	urlParams_   gensupport.URLParams
9354	ifNoneMatch_ string
9355	ctx_         context.Context
9356	header_      http.Header
9357}
9358
9359// Get: Gets details of a Test Case for a Step. Experimental test cases
9360// API. Still in active development. May return any of the following
9361// canonical error codes: - PERMISSION_DENIED - if the user is not
9362// authorized to write to project - INVALID_ARGUMENT - if the request is
9363// malformed - NOT_FOUND - if the containing Test Case does not exist
9364//
9365// - executionId: A Execution id.
9366// - historyId: A History id.
9367// - projectId: A Project id.
9368// - stepId: A Step id. Note: This step must include a
9369//   TestExecutionStep.
9370// - testCaseId: A Test Case id.
9371func (r *ProjectsHistoriesExecutionsStepsTestCasesService) Get(projectId string, historyId string, executionId string, stepId string, testCaseId string) *ProjectsHistoriesExecutionsStepsTestCasesGetCall {
9372	c := &ProjectsHistoriesExecutionsStepsTestCasesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9373	c.projectId = projectId
9374	c.historyId = historyId
9375	c.executionId = executionId
9376	c.stepId = stepId
9377	c.testCaseId = testCaseId
9378	return c
9379}
9380
9381// Fields allows partial responses to be retrieved. See
9382// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9383// for more information.
9384func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsTestCasesGetCall {
9385	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9386	return c
9387}
9388
9389// IfNoneMatch sets the optional parameter which makes the operation
9390// fail if the object's ETag matches the given value. This is useful for
9391// getting updates only after the object has changed since the last
9392// request. Use googleapi.IsNotModified to check whether the response
9393// error from Do is the result of In-None-Match.
9394func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsTestCasesGetCall {
9395	c.ifNoneMatch_ = entityTag
9396	return c
9397}
9398
9399// Context sets the context to be used in this call's Do method. Any
9400// pending HTTP request will be aborted if the provided context is
9401// canceled.
9402func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsTestCasesGetCall {
9403	c.ctx_ = ctx
9404	return c
9405}
9406
9407// Header returns an http.Header that can be modified by the caller to
9408// add HTTP headers to the request.
9409func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) Header() http.Header {
9410	if c.header_ == nil {
9411		c.header_ = make(http.Header)
9412	}
9413	return c.header_
9414}
9415
9416func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) doRequest(alt string) (*http.Response, error) {
9417	reqHeaders := make(http.Header)
9418	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
9419	for k, v := range c.header_ {
9420		reqHeaders[k] = v
9421	}
9422	reqHeaders.Set("User-Agent", c.s.userAgent())
9423	if c.ifNoneMatch_ != "" {
9424		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9425	}
9426	var body io.Reader = nil
9427	c.urlParams_.Set("alt", alt)
9428	c.urlParams_.Set("prettyPrint", "false")
9429	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases/{testCaseId}")
9430	urls += "?" + c.urlParams_.Encode()
9431	req, err := http.NewRequest("GET", urls, body)
9432	if err != nil {
9433		return nil, err
9434	}
9435	req.Header = reqHeaders
9436	googleapi.Expand(req.URL, map[string]string{
9437		"projectId":   c.projectId,
9438		"historyId":   c.historyId,
9439		"executionId": c.executionId,
9440		"stepId":      c.stepId,
9441		"testCaseId":  c.testCaseId,
9442	})
9443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9444}
9445
9446// Do executes the "toolresults.projects.histories.executions.steps.testCases.get" call.
9447// Exactly one of *TestCase or error will be non-nil. Any non-2xx status
9448// code is an error. Response headers are in either
9449// *TestCase.ServerResponse.Header or (if a response was returned at
9450// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9451// to check whether the returned error was because
9452// http.StatusNotModified was returned.
9453func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) Do(opts ...googleapi.CallOption) (*TestCase, error) {
9454	gensupport.SetOptions(c.urlParams_, opts...)
9455	res, err := c.doRequest("json")
9456	if res != nil && res.StatusCode == http.StatusNotModified {
9457		if res.Body != nil {
9458			res.Body.Close()
9459		}
9460		return nil, &googleapi.Error{
9461			Code:   res.StatusCode,
9462			Header: res.Header,
9463		}
9464	}
9465	if err != nil {
9466		return nil, err
9467	}
9468	defer googleapi.CloseBody(res)
9469	if err := googleapi.CheckResponse(res); err != nil {
9470		return nil, err
9471	}
9472	ret := &TestCase{
9473		ServerResponse: googleapi.ServerResponse{
9474			Header:         res.Header,
9475			HTTPStatusCode: res.StatusCode,
9476		},
9477	}
9478	target := &ret
9479	if err := gensupport.DecodeResponse(target, res); err != nil {
9480		return nil, err
9481	}
9482	return ret, nil
9483	// {
9484	//   "description": "Gets details of a Test Case for a Step. Experimental test cases API. Still in active development. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing Test Case does not exist",
9485	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases/{testCaseId}",
9486	//   "httpMethod": "GET",
9487	//   "id": "toolresults.projects.histories.executions.steps.testCases.get",
9488	//   "parameterOrder": [
9489	//     "projectId",
9490	//     "historyId",
9491	//     "executionId",
9492	//     "stepId",
9493	//     "testCaseId"
9494	//   ],
9495	//   "parameters": {
9496	//     "executionId": {
9497	//       "description": "A Execution id Required.",
9498	//       "location": "path",
9499	//       "required": true,
9500	//       "type": "string"
9501	//     },
9502	//     "historyId": {
9503	//       "description": "A History id. Required.",
9504	//       "location": "path",
9505	//       "required": true,
9506	//       "type": "string"
9507	//     },
9508	//     "projectId": {
9509	//       "description": "A Project id. Required.",
9510	//       "location": "path",
9511	//       "required": true,
9512	//       "type": "string"
9513	//     },
9514	//     "stepId": {
9515	//       "description": "A Step id. Note: This step must include a TestExecutionStep. Required.",
9516	//       "location": "path",
9517	//       "required": true,
9518	//       "type": "string"
9519	//     },
9520	//     "testCaseId": {
9521	//       "description": "A Test Case id. Required.",
9522	//       "location": "path",
9523	//       "required": true,
9524	//       "type": "string"
9525	//     }
9526	//   },
9527	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases/{testCaseId}",
9528	//   "response": {
9529	//     "$ref": "TestCase"
9530	//   },
9531	//   "scopes": [
9532	//     "https://www.googleapis.com/auth/cloud-platform"
9533	//   ]
9534	// }
9535
9536}
9537
9538// method id "toolresults.projects.histories.executions.steps.testCases.list":
9539
9540type ProjectsHistoriesExecutionsStepsTestCasesListCall struct {
9541	s            *Service
9542	projectId    string
9543	historyId    string
9544	executionId  string
9545	stepId       string
9546	urlParams_   gensupport.URLParams
9547	ifNoneMatch_ string
9548	ctx_         context.Context
9549	header_      http.Header
9550}
9551
9552// List: Lists Test Cases attached to a Step. Experimental test cases
9553// API. Still in active development. May return any of the following
9554// canonical error codes: - PERMISSION_DENIED - if the user is not
9555// authorized to write to project - INVALID_ARGUMENT - if the request is
9556// malformed - NOT_FOUND - if the containing Step does not exist
9557//
9558// - executionId: A Execution id.
9559// - historyId: A History id.
9560// - projectId: A Project id.
9561// - stepId: A Step id. Note: This step must include a
9562//   TestExecutionStep.
9563func (r *ProjectsHistoriesExecutionsStepsTestCasesService) List(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
9564	c := &ProjectsHistoriesExecutionsStepsTestCasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9565	c.projectId = projectId
9566	c.historyId = historyId
9567	c.executionId = executionId
9568	c.stepId = stepId
9569	return c
9570}
9571
9572// PageSize sets the optional parameter "pageSize": The maximum number
9573// of TestCases to fetch. Default value: 100. The server will use this
9574// default if the field is not set or has a value of 0.
9575func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
9576	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
9577	return c
9578}
9579
9580// PageToken sets the optional parameter "pageToken": A continuation
9581// token to resume the query at the next item.
9582func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
9583	c.urlParams_.Set("pageToken", pageToken)
9584	return c
9585}
9586
9587// Fields allows partial responses to be retrieved. See
9588// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9589// for more information.
9590func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
9591	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9592	return c
9593}
9594
9595// IfNoneMatch sets the optional parameter which makes the operation
9596// fail if the object's ETag matches the given value. This is useful for
9597// getting updates only after the object has changed since the last
9598// request. Use googleapi.IsNotModified to check whether the response
9599// error from Do is the result of In-None-Match.
9600func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
9601	c.ifNoneMatch_ = entityTag
9602	return c
9603}
9604
9605// Context sets the context to be used in this call's Do method. Any
9606// pending HTTP request will be aborted if the provided context is
9607// canceled.
9608func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
9609	c.ctx_ = ctx
9610	return c
9611}
9612
9613// Header returns an http.Header that can be modified by the caller to
9614// add HTTP headers to the request.
9615func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Header() http.Header {
9616	if c.header_ == nil {
9617		c.header_ = make(http.Header)
9618	}
9619	return c.header_
9620}
9621
9622func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) doRequest(alt string) (*http.Response, error) {
9623	reqHeaders := make(http.Header)
9624	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
9625	for k, v := range c.header_ {
9626		reqHeaders[k] = v
9627	}
9628	reqHeaders.Set("User-Agent", c.s.userAgent())
9629	if c.ifNoneMatch_ != "" {
9630		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9631	}
9632	var body io.Reader = nil
9633	c.urlParams_.Set("alt", alt)
9634	c.urlParams_.Set("prettyPrint", "false")
9635	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases")
9636	urls += "?" + c.urlParams_.Encode()
9637	req, err := http.NewRequest("GET", urls, body)
9638	if err != nil {
9639		return nil, err
9640	}
9641	req.Header = reqHeaders
9642	googleapi.Expand(req.URL, map[string]string{
9643		"projectId":   c.projectId,
9644		"historyId":   c.historyId,
9645		"executionId": c.executionId,
9646		"stepId":      c.stepId,
9647	})
9648	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9649}
9650
9651// Do executes the "toolresults.projects.histories.executions.steps.testCases.list" call.
9652// Exactly one of *ListTestCasesResponse or error will be non-nil. Any
9653// non-2xx status code is an error. Response headers are in either
9654// *ListTestCasesResponse.ServerResponse.Header or (if a response was
9655// returned at all) in error.(*googleapi.Error).Header. Use
9656// googleapi.IsNotModified to check whether the returned error was
9657// because http.StatusNotModified was returned.
9658func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Do(opts ...googleapi.CallOption) (*ListTestCasesResponse, error) {
9659	gensupport.SetOptions(c.urlParams_, opts...)
9660	res, err := c.doRequest("json")
9661	if res != nil && res.StatusCode == http.StatusNotModified {
9662		if res.Body != nil {
9663			res.Body.Close()
9664		}
9665		return nil, &googleapi.Error{
9666			Code:   res.StatusCode,
9667			Header: res.Header,
9668		}
9669	}
9670	if err != nil {
9671		return nil, err
9672	}
9673	defer googleapi.CloseBody(res)
9674	if err := googleapi.CheckResponse(res); err != nil {
9675		return nil, err
9676	}
9677	ret := &ListTestCasesResponse{
9678		ServerResponse: googleapi.ServerResponse{
9679			Header:         res.Header,
9680			HTTPStatusCode: res.StatusCode,
9681		},
9682	}
9683	target := &ret
9684	if err := gensupport.DecodeResponse(target, res); err != nil {
9685		return nil, err
9686	}
9687	return ret, nil
9688	// {
9689	//   "description": "Lists Test Cases attached to a Step. Experimental test cases API. Still in active development. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing Step does not exist",
9690	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases",
9691	//   "httpMethod": "GET",
9692	//   "id": "toolresults.projects.histories.executions.steps.testCases.list",
9693	//   "parameterOrder": [
9694	//     "projectId",
9695	//     "historyId",
9696	//     "executionId",
9697	//     "stepId"
9698	//   ],
9699	//   "parameters": {
9700	//     "executionId": {
9701	//       "description": "A Execution id Required.",
9702	//       "location": "path",
9703	//       "required": true,
9704	//       "type": "string"
9705	//     },
9706	//     "historyId": {
9707	//       "description": "A History id. Required.",
9708	//       "location": "path",
9709	//       "required": true,
9710	//       "type": "string"
9711	//     },
9712	//     "pageSize": {
9713	//       "description": "The maximum number of TestCases to fetch. Default value: 100. The server will use this default if the field is not set or has a value of 0. Optional.",
9714	//       "format": "int32",
9715	//       "location": "query",
9716	//       "type": "integer"
9717	//     },
9718	//     "pageToken": {
9719	//       "description": "A continuation token to resume the query at the next item. Optional.",
9720	//       "location": "query",
9721	//       "type": "string"
9722	//     },
9723	//     "projectId": {
9724	//       "description": "A Project id. Required.",
9725	//       "location": "path",
9726	//       "required": true,
9727	//       "type": "string"
9728	//     },
9729	//     "stepId": {
9730	//       "description": "A Step id. Note: This step must include a TestExecutionStep. Required.",
9731	//       "location": "path",
9732	//       "required": true,
9733	//       "type": "string"
9734	//     }
9735	//   },
9736	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases",
9737	//   "response": {
9738	//     "$ref": "ListTestCasesResponse"
9739	//   },
9740	//   "scopes": [
9741	//     "https://www.googleapis.com/auth/cloud-platform"
9742	//   ]
9743	// }
9744
9745}
9746
9747// Pages invokes f for each page of results.
9748// A non-nil error returned from f will halt the iteration.
9749// The provided context supersedes any context provided to the Context method.
9750func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Pages(ctx context.Context, f func(*ListTestCasesResponse) error) error {
9751	c.ctx_ = ctx
9752	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9753	for {
9754		x, err := c.Do()
9755		if err != nil {
9756			return err
9757		}
9758		if err := f(x); err != nil {
9759			return err
9760		}
9761		if x.NextPageToken == "" {
9762			return nil
9763		}
9764		c.PageToken(x.NextPageToken)
9765	}
9766}
9767
9768// method id "toolresults.projects.histories.executions.steps.thumbnails.list":
9769
9770type ProjectsHistoriesExecutionsStepsThumbnailsListCall struct {
9771	s            *Service
9772	projectId    string
9773	historyId    string
9774	executionId  string
9775	stepId       string
9776	urlParams_   gensupport.URLParams
9777	ifNoneMatch_ string
9778	ctx_         context.Context
9779	header_      http.Header
9780}
9781
9782// List: Lists thumbnails of images attached to a step. May return any
9783// of the following canonical error codes: - PERMISSION_DENIED - if the
9784// user is not authorized to read from the project, or from any of the
9785// images - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND -
9786// if the step does not exist, or if any of the images do not exist
9787//
9788// - executionId: An Execution id.
9789// - historyId: A History id.
9790// - projectId: A Project id.
9791// - stepId: A Step id.
9792func (r *ProjectsHistoriesExecutionsStepsThumbnailsService) List(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
9793	c := &ProjectsHistoriesExecutionsStepsThumbnailsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9794	c.projectId = projectId
9795	c.historyId = historyId
9796	c.executionId = executionId
9797	c.stepId = stepId
9798	return c
9799}
9800
9801// PageSize sets the optional parameter "pageSize": The maximum number
9802// of thumbnails to fetch. Default value: 50. The server will use this
9803// default if the field is not set or has a value of 0.
9804func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
9805	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
9806	return c
9807}
9808
9809// PageToken sets the optional parameter "pageToken": A continuation
9810// token to resume the query at the next item.
9811func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
9812	c.urlParams_.Set("pageToken", pageToken)
9813	return c
9814}
9815
9816// Fields allows partial responses to be retrieved. See
9817// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9818// for more information.
9819func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
9820	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9821	return c
9822}
9823
9824// IfNoneMatch sets the optional parameter which makes the operation
9825// fail if the object's ETag matches the given value. This is useful for
9826// getting updates only after the object has changed since the last
9827// request. Use googleapi.IsNotModified to check whether the response
9828// error from Do is the result of In-None-Match.
9829func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
9830	c.ifNoneMatch_ = entityTag
9831	return c
9832}
9833
9834// Context sets the context to be used in this call's Do method. Any
9835// pending HTTP request will be aborted if the provided context is
9836// canceled.
9837func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
9838	c.ctx_ = ctx
9839	return c
9840}
9841
9842// Header returns an http.Header that can be modified by the caller to
9843// add HTTP headers to the request.
9844func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Header() http.Header {
9845	if c.header_ == nil {
9846		c.header_ = make(http.Header)
9847	}
9848	return c.header_
9849}
9850
9851func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) doRequest(alt string) (*http.Response, error) {
9852	reqHeaders := make(http.Header)
9853	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
9854	for k, v := range c.header_ {
9855		reqHeaders[k] = v
9856	}
9857	reqHeaders.Set("User-Agent", c.s.userAgent())
9858	if c.ifNoneMatch_ != "" {
9859		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9860	}
9861	var body io.Reader = nil
9862	c.urlParams_.Set("alt", alt)
9863	c.urlParams_.Set("prettyPrint", "false")
9864	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails")
9865	urls += "?" + c.urlParams_.Encode()
9866	req, err := http.NewRequest("GET", urls, body)
9867	if err != nil {
9868		return nil, err
9869	}
9870	req.Header = reqHeaders
9871	googleapi.Expand(req.URL, map[string]string{
9872		"projectId":   c.projectId,
9873		"historyId":   c.historyId,
9874		"executionId": c.executionId,
9875		"stepId":      c.stepId,
9876	})
9877	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9878}
9879
9880// Do executes the "toolresults.projects.histories.executions.steps.thumbnails.list" call.
9881// Exactly one of *ListStepThumbnailsResponse or error will be non-nil.
9882// Any non-2xx status code is an error. Response headers are in either
9883// *ListStepThumbnailsResponse.ServerResponse.Header or (if a response
9884// was returned at all) in error.(*googleapi.Error).Header. Use
9885// googleapi.IsNotModified to check whether the returned error was
9886// because http.StatusNotModified was returned.
9887func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Do(opts ...googleapi.CallOption) (*ListStepThumbnailsResponse, error) {
9888	gensupport.SetOptions(c.urlParams_, opts...)
9889	res, err := c.doRequest("json")
9890	if res != nil && res.StatusCode == http.StatusNotModified {
9891		if res.Body != nil {
9892			res.Body.Close()
9893		}
9894		return nil, &googleapi.Error{
9895			Code:   res.StatusCode,
9896			Header: res.Header,
9897		}
9898	}
9899	if err != nil {
9900		return nil, err
9901	}
9902	defer googleapi.CloseBody(res)
9903	if err := googleapi.CheckResponse(res); err != nil {
9904		return nil, err
9905	}
9906	ret := &ListStepThumbnailsResponse{
9907		ServerResponse: googleapi.ServerResponse{
9908			Header:         res.Header,
9909			HTTPStatusCode: res.StatusCode,
9910		},
9911	}
9912	target := &ret
9913	if err := gensupport.DecodeResponse(target, res); err != nil {
9914		return nil, err
9915	}
9916	return ret, nil
9917	// {
9918	//   "description": "Lists thumbnails of images attached to a step. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read from the project, or from any of the images - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the step does not exist, or if any of the images do not exist",
9919	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails",
9920	//   "httpMethod": "GET",
9921	//   "id": "toolresults.projects.histories.executions.steps.thumbnails.list",
9922	//   "parameterOrder": [
9923	//     "projectId",
9924	//     "historyId",
9925	//     "executionId",
9926	//     "stepId"
9927	//   ],
9928	//   "parameters": {
9929	//     "executionId": {
9930	//       "description": "An Execution id. Required.",
9931	//       "location": "path",
9932	//       "required": true,
9933	//       "type": "string"
9934	//     },
9935	//     "historyId": {
9936	//       "description": "A History id. Required.",
9937	//       "location": "path",
9938	//       "required": true,
9939	//       "type": "string"
9940	//     },
9941	//     "pageSize": {
9942	//       "description": "The maximum number of thumbnails to fetch. Default value: 50. The server will use this default if the field is not set or has a value of 0. Optional.",
9943	//       "format": "int32",
9944	//       "location": "query",
9945	//       "type": "integer"
9946	//     },
9947	//     "pageToken": {
9948	//       "description": "A continuation token to resume the query at the next item. Optional.",
9949	//       "location": "query",
9950	//       "type": "string"
9951	//     },
9952	//     "projectId": {
9953	//       "description": "A Project id. Required.",
9954	//       "location": "path",
9955	//       "required": true,
9956	//       "type": "string"
9957	//     },
9958	//     "stepId": {
9959	//       "description": "A Step id. Required.",
9960	//       "location": "path",
9961	//       "required": true,
9962	//       "type": "string"
9963	//     }
9964	//   },
9965	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails",
9966	//   "response": {
9967	//     "$ref": "ListStepThumbnailsResponse"
9968	//   },
9969	//   "scopes": [
9970	//     "https://www.googleapis.com/auth/cloud-platform"
9971	//   ]
9972	// }
9973
9974}
9975
9976// Pages invokes f for each page of results.
9977// A non-nil error returned from f will halt the iteration.
9978// The provided context supersedes any context provided to the Context method.
9979func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Pages(ctx context.Context, f func(*ListStepThumbnailsResponse) error) error {
9980	c.ctx_ = ctx
9981	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9982	for {
9983		x, err := c.Do()
9984		if err != nil {
9985			return err
9986		}
9987		if err := f(x); err != nil {
9988			return err
9989		}
9990		if x.NextPageToken == "" {
9991			return nil
9992		}
9993		c.PageToken(x.NextPageToken)
9994	}
9995}
9996