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 Platform data
83	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
84)
85
86// NewService creates a new Service.
87func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
88	scopesOption := option.WithScopes(
89		"https://www.googleapis.com/auth/cloud-platform",
90	)
91	// NOTE: prepend, so we don't override user-specified scopes.
92	opts = append([]option.ClientOption{scopesOption}, opts...)
93	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
94	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
95	client, endpoint, err := htransport.NewClient(ctx, opts...)
96	if err != nil {
97		return nil, err
98	}
99	s, err := New(client)
100	if err != nil {
101		return nil, err
102	}
103	if endpoint != "" {
104		s.BasePath = endpoint
105	}
106	return s, nil
107}
108
109// New creates a new Service. It uses the provided http.Client for requests.
110//
111// Deprecated: please use NewService instead.
112// To provide a custom HTTP client, use option.WithHTTPClient.
113// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
114func New(client *http.Client) (*Service, error) {
115	if client == nil {
116		return nil, errors.New("client is nil")
117	}
118	s := &Service{client: client, BasePath: basePath}
119	s.Projects = NewProjectsService(s)
120	return s, nil
121}
122
123type Service struct {
124	client    *http.Client
125	BasePath  string // API endpoint base URL
126	UserAgent string // optional additional User-Agent fragment
127
128	Projects *ProjectsService
129}
130
131func (s *Service) userAgent() string {
132	if s.UserAgent == "" {
133		return googleapi.UserAgent
134	}
135	return googleapi.UserAgent + " " + s.UserAgent
136}
137
138func NewProjectsService(s *Service) *ProjectsService {
139	rs := &ProjectsService{s: s}
140	rs.Histories = NewProjectsHistoriesService(s)
141	return rs
142}
143
144type ProjectsService struct {
145	s *Service
146
147	Histories *ProjectsHistoriesService
148}
149
150func NewProjectsHistoriesService(s *Service) *ProjectsHistoriesService {
151	rs := &ProjectsHistoriesService{s: s}
152	rs.Executions = NewProjectsHistoriesExecutionsService(s)
153	return rs
154}
155
156type ProjectsHistoriesService struct {
157	s *Service
158
159	Executions *ProjectsHistoriesExecutionsService
160}
161
162func NewProjectsHistoriesExecutionsService(s *Service) *ProjectsHistoriesExecutionsService {
163	rs := &ProjectsHistoriesExecutionsService{s: s}
164	rs.Clusters = NewProjectsHistoriesExecutionsClustersService(s)
165	rs.Environments = NewProjectsHistoriesExecutionsEnvironmentsService(s)
166	rs.Steps = NewProjectsHistoriesExecutionsStepsService(s)
167	return rs
168}
169
170type ProjectsHistoriesExecutionsService struct {
171	s *Service
172
173	Clusters *ProjectsHistoriesExecutionsClustersService
174
175	Environments *ProjectsHistoriesExecutionsEnvironmentsService
176
177	Steps *ProjectsHistoriesExecutionsStepsService
178}
179
180func NewProjectsHistoriesExecutionsClustersService(s *Service) *ProjectsHistoriesExecutionsClustersService {
181	rs := &ProjectsHistoriesExecutionsClustersService{s: s}
182	return rs
183}
184
185type ProjectsHistoriesExecutionsClustersService struct {
186	s *Service
187}
188
189func NewProjectsHistoriesExecutionsEnvironmentsService(s *Service) *ProjectsHistoriesExecutionsEnvironmentsService {
190	rs := &ProjectsHistoriesExecutionsEnvironmentsService{s: s}
191	return rs
192}
193
194type ProjectsHistoriesExecutionsEnvironmentsService struct {
195	s *Service
196}
197
198func NewProjectsHistoriesExecutionsStepsService(s *Service) *ProjectsHistoriesExecutionsStepsService {
199	rs := &ProjectsHistoriesExecutionsStepsService{s: s}
200	rs.PerfMetricsSummary = NewProjectsHistoriesExecutionsStepsPerfMetricsSummaryService(s)
201	rs.PerfSampleSeries = NewProjectsHistoriesExecutionsStepsPerfSampleSeriesService(s)
202	rs.TestCases = NewProjectsHistoriesExecutionsStepsTestCasesService(s)
203	rs.Thumbnails = NewProjectsHistoriesExecutionsStepsThumbnailsService(s)
204	return rs
205}
206
207type ProjectsHistoriesExecutionsStepsService struct {
208	s *Service
209
210	PerfMetricsSummary *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService
211
212	PerfSampleSeries *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService
213
214	TestCases *ProjectsHistoriesExecutionsStepsTestCasesService
215
216	Thumbnails *ProjectsHistoriesExecutionsStepsThumbnailsService
217}
218
219func NewProjectsHistoriesExecutionsStepsPerfMetricsSummaryService(s *Service) *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService {
220	rs := &ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService{s: s}
221	return rs
222}
223
224type ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService struct {
225	s *Service
226}
227
228func NewProjectsHistoriesExecutionsStepsPerfSampleSeriesService(s *Service) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService {
229	rs := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesService{s: s}
230	rs.Samples = NewProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService(s)
231	return rs
232}
233
234type ProjectsHistoriesExecutionsStepsPerfSampleSeriesService struct {
235	s *Service
236
237	Samples *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService
238}
239
240func NewProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService(s *Service) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService {
241	rs := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService{s: s}
242	return rs
243}
244
245type ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService struct {
246	s *Service
247}
248
249func NewProjectsHistoriesExecutionsStepsTestCasesService(s *Service) *ProjectsHistoriesExecutionsStepsTestCasesService {
250	rs := &ProjectsHistoriesExecutionsStepsTestCasesService{s: s}
251	return rs
252}
253
254type ProjectsHistoriesExecutionsStepsTestCasesService struct {
255	s *Service
256}
257
258func NewProjectsHistoriesExecutionsStepsThumbnailsService(s *Service) *ProjectsHistoriesExecutionsStepsThumbnailsService {
259	rs := &ProjectsHistoriesExecutionsStepsThumbnailsService{s: s}
260	return rs
261}
262
263type ProjectsHistoriesExecutionsStepsThumbnailsService struct {
264	s *Service
265}
266
267// ANR: Additional details for an ANR crash.
268type ANR struct {
269	// StackTrace: The stack trace of the ANR crash. Optional.
270	StackTrace *StackTrace `json:"stackTrace,omitempty"`
271
272	// ForceSendFields is a list of field names (e.g. "StackTrace") to
273	// unconditionally include in API requests. By default, fields with
274	// empty values are omitted from API requests. However, any non-pointer,
275	// non-interface field appearing in ForceSendFields will be sent to the
276	// server regardless of whether the field is empty or not. This may be
277	// used to include empty fields in Patch requests.
278	ForceSendFields []string `json:"-"`
279
280	// NullFields is a list of field names (e.g. "StackTrace") to include in
281	// API requests with the JSON null value. By default, fields with empty
282	// values are omitted from API requests. However, any field with an
283	// empty value appearing in NullFields will be sent to the server as
284	// null. It is an error if a field in this list has a non-empty value.
285	// This may be used to include null fields in Patch requests.
286	NullFields []string `json:"-"`
287}
288
289func (s *ANR) MarshalJSON() ([]byte, error) {
290	type NoMethod ANR
291	raw := NoMethod(*s)
292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
293}
294
295// AndroidAppInfo: Android app information.
296type AndroidAppInfo struct {
297	// Name: The name of the app. Optional
298	Name string `json:"name,omitempty"`
299
300	// PackageName: The package name of the app. Required.
301	PackageName string `json:"packageName,omitempty"`
302
303	// VersionCode: The internal version code of the app. Optional.
304	VersionCode string `json:"versionCode,omitempty"`
305
306	// VersionName: The version name of the app. Optional.
307	VersionName string `json:"versionName,omitempty"`
308
309	// ForceSendFields is a list of field names (e.g. "Name") to
310	// unconditionally include in API requests. By default, fields with
311	// empty values are omitted from API requests. However, any non-pointer,
312	// non-interface field appearing in ForceSendFields will be sent to the
313	// server regardless of whether the field is empty or not. This may be
314	// used to include empty fields in Patch requests.
315	ForceSendFields []string `json:"-"`
316
317	// NullFields is a list of field names (e.g. "Name") to include in API
318	// requests with the JSON null value. By default, fields with empty
319	// values are omitted from API requests. However, any field with an
320	// empty value appearing in NullFields will be sent to the server as
321	// null. It is an error if a field in this list has a non-empty value.
322	// This may be used to include null fields in Patch requests.
323	NullFields []string `json:"-"`
324}
325
326func (s *AndroidAppInfo) MarshalJSON() ([]byte, error) {
327	type NoMethod AndroidAppInfo
328	raw := NoMethod(*s)
329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
330}
331
332// AndroidInstrumentationTest: A test of an Android application that can
333// control an Android component independently of its normal lifecycle.
334// See for more information on types of Android tests.
335type AndroidInstrumentationTest struct {
336	// TestPackageId: The java package for the test to be executed. Required
337	TestPackageId string `json:"testPackageId,omitempty"`
338
339	// TestRunnerClass: The InstrumentationTestRunner class. Required
340	TestRunnerClass string `json:"testRunnerClass,omitempty"`
341
342	// TestTargets: Each target must be fully qualified with the package
343	// name or class name, in one of these formats: - "package package_name"
344	// - "class package_name.class_name" - "class
345	// package_name.class_name#method_name" If empty, all targets in the
346	// module will be run.
347	TestTargets []string `json:"testTargets,omitempty"`
348
349	// UseOrchestrator: The flag indicates whether Android Test Orchestrator
350	// will be used to run test or not.
351	UseOrchestrator bool `json:"useOrchestrator,omitempty"`
352
353	// ForceSendFields is a list of field names (e.g. "TestPackageId") to
354	// unconditionally include in API requests. By default, fields with
355	// empty values are omitted from API requests. However, any non-pointer,
356	// non-interface field appearing in ForceSendFields will be sent to the
357	// server regardless of whether the field is empty or not. This may be
358	// used to include empty fields in Patch requests.
359	ForceSendFields []string `json:"-"`
360
361	// NullFields is a list of field names (e.g. "TestPackageId") to include
362	// in API requests with the JSON null value. By default, fields with
363	// empty values are omitted from API requests. However, any field with
364	// an empty value appearing in NullFields will be sent to the server as
365	// null. It is an error if a field in this list has a non-empty value.
366	// This may be used to include null fields in Patch requests.
367	NullFields []string `json:"-"`
368}
369
370func (s *AndroidInstrumentationTest) MarshalJSON() ([]byte, error) {
371	type NoMethod AndroidInstrumentationTest
372	raw := NoMethod(*s)
373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
374}
375
376// AndroidRoboTest: A test of an android application that explores the
377// application on a virtual or physical Android device, finding culprits
378// and crashes as it goes.
379type AndroidRoboTest struct {
380	// AppInitialActivity: The initial activity that should be used to start
381	// the app. Optional
382	AppInitialActivity string `json:"appInitialActivity,omitempty"`
383
384	// BootstrapPackageId: The java package for the bootstrap. Optional
385	BootstrapPackageId string `json:"bootstrapPackageId,omitempty"`
386
387	// BootstrapRunnerClass: The runner class for the bootstrap. Optional
388	BootstrapRunnerClass string `json:"bootstrapRunnerClass,omitempty"`
389
390	// MaxDepth: The max depth of the traversal stack Robo can explore.
391	// Optional
392	MaxDepth int64 `json:"maxDepth,omitempty"`
393
394	// MaxSteps: The max number of steps/actions Robo can execute. Default
395	// is no limit (0). Optional
396	MaxSteps int64 `json:"maxSteps,omitempty"`
397
398	// ForceSendFields is a list of field names (e.g. "AppInitialActivity")
399	// to unconditionally include in API requests. By default, fields with
400	// empty values are omitted from API requests. However, any non-pointer,
401	// non-interface field appearing in ForceSendFields will be sent to the
402	// server regardless of whether the field is empty or not. This may be
403	// used to include empty fields in Patch requests.
404	ForceSendFields []string `json:"-"`
405
406	// NullFields is a list of field names (e.g. "AppInitialActivity") to
407	// include in API requests with the JSON null value. By default, fields
408	// with empty values are omitted from API requests. However, any field
409	// with an empty value appearing in NullFields will be sent to the
410	// server as null. It is an error if a field in this list has a
411	// non-empty value. This may be used to include null fields in Patch
412	// requests.
413	NullFields []string `json:"-"`
414}
415
416func (s *AndroidRoboTest) MarshalJSON() ([]byte, error) {
417	type NoMethod AndroidRoboTest
418	raw := NoMethod(*s)
419	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
420}
421
422// AndroidTest: An Android mobile test specification.
423type AndroidTest struct {
424	// AndroidAppInfo: Information about the application under test.
425	AndroidAppInfo *AndroidAppInfo `json:"androidAppInfo,omitempty"`
426
427	// AndroidInstrumentationTest: An Android instrumentation test.
428	AndroidInstrumentationTest *AndroidInstrumentationTest `json:"androidInstrumentationTest,omitempty"`
429
430	// AndroidRoboTest: An Android robo test.
431	AndroidRoboTest *AndroidRoboTest `json:"androidRoboTest,omitempty"`
432
433	// AndroidTestLoop: An Android test loop.
434	AndroidTestLoop *AndroidTestLoop `json:"androidTestLoop,omitempty"`
435
436	// TestTimeout: Max time a test is allowed to run before it is
437	// automatically cancelled.
438	TestTimeout *Duration `json:"testTimeout,omitempty"`
439
440	// ForceSendFields is a list of field names (e.g. "AndroidAppInfo") to
441	// unconditionally include in API requests. By default, fields with
442	// empty values are omitted from API requests. However, any non-pointer,
443	// non-interface field appearing in ForceSendFields will be sent to the
444	// server regardless of whether the field is empty or not. This may be
445	// used to include empty fields in Patch requests.
446	ForceSendFields []string `json:"-"`
447
448	// NullFields is a list of field names (e.g. "AndroidAppInfo") to
449	// include in API requests with the JSON null value. By default, fields
450	// with empty values are omitted from API requests. However, any field
451	// with an empty value appearing in NullFields will be sent to the
452	// server as null. It is an error if a field in this list has a
453	// non-empty value. This may be used to include null fields in Patch
454	// requests.
455	NullFields []string `json:"-"`
456}
457
458func (s *AndroidTest) MarshalJSON() ([]byte, error) {
459	type NoMethod AndroidTest
460	raw := NoMethod(*s)
461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
462}
463
464// AndroidTestLoop: Test Loops are tests that can be launched by the app
465// itself, determining when to run by listening for an intent.
466type AndroidTestLoop struct {
467}
468
469// Any:  `Any` contains an arbitrary serialized protocol buffer message
470// along with a URL that describes the type of the serialized message.
471// Protobuf library provides support to pack/unpack Any values in the
472// form of utility functions or additional generated methods of the Any
473// type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any
474// any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example
475// 2: Pack and unpack a message in Java. Foo foo = ...; Any any =
476// Any.pack(foo); ... if (any.is(Foo.class)) { foo =
477// any.unpack(Foo.class); } Example 3: Pack and unpack a message in
478// Python. foo = Foo(...) any = Any() any.Pack(foo) ... if
479// any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and
480// unpack a message in Go foo := &pb.Foo{...} any, err :=
481// ptypes.MarshalAny(foo) ... foo := &pb.Foo{} if err :=
482// ptypes.UnmarshalAny(any, foo); err != nil { ... } The pack methods
483// provided by protobuf library will by default use
484// 'type.googleapis.com/full.type.name' as the type URL and the unpack
485// methods only use the fully qualified type name after the last '/' in
486// the type URL, for example "foo.bar.com/x/y.z" will yield type name
487// "y.z". # JSON The JSON representation of an `Any` value uses the
488// regular representation of the deserialized, embedded message, with an
489// additional field `@type` which contains the type URL. Example:
490// package google.profile; message Person { string first_name = 1;
491// string last_name = 2; } { "@type":
492// "type.googleapis.com/google.profile.Person", "firstName": ,
493// "lastName": } If the embedded message type is well-known and has a
494// custom JSON representation, that representation will be embedded
495// adding a field `value` which holds the custom JSON in addition to the
496// `@type` field. Example (for message google.protobuf.Duration): {
497// "@type": "type.googleapis.com/google.protobuf.Duration", "value":
498// "1.212s" }
499type Any struct {
500	// TypeUrl: A URL/resource name that uniquely identifies the type of the
501	// serialized protocol buffer message. This string must contain at least
502	// one "/" character. The last segment of the URL's path must represent
503	// the fully qualified name of the type (as in
504	// `path/google.protobuf.Duration`). The name should be in a canonical
505	// form (e.g., leading "." is not accepted). In practice, teams usually
506	// precompile into the binary all types that they expect it to use in
507	// the context of Any. However, for URLs which use the scheme `http`,
508	// `https`, or no scheme, one can optionally set up a type server that
509	// maps type URLs to message definitions as follows: * If no scheme is
510	// provided, `https` is assumed. * An HTTP GET on the URL must yield a
511	// google.protobuf.Type value in binary format, or produce an error. *
512	// Applications are allowed to cache lookup results based on the URL, or
513	// have them precompiled into a binary to avoid any lookup. Therefore,
514	// binary compatibility needs to be preserved on changes to types. (Use
515	// versioned type names to manage breaking changes.) Note: this
516	// functionality is not currently available in the official protobuf
517	// release, and it is not used for type URLs beginning with
518	// type.googleapis.com. Schemes other than `http`, `https` (or the empty
519	// scheme) might be used with implementation specific semantics.
520	TypeUrl string `json:"typeUrl,omitempty"`
521
522	// Value: Must be a valid serialized protocol buffer of the above
523	// specified type.
524	Value string `json:"value,omitempty"`
525
526	// ForceSendFields is a list of field names (e.g. "TypeUrl") to
527	// unconditionally include in API requests. By default, fields with
528	// empty values are omitted from API requests. However, any non-pointer,
529	// non-interface field appearing in ForceSendFields will be sent to the
530	// server regardless of whether the field is empty or not. This may be
531	// used to include empty fields in Patch requests.
532	ForceSendFields []string `json:"-"`
533
534	// NullFields is a list of field names (e.g. "TypeUrl") to include in
535	// API requests with the JSON null value. By default, fields with empty
536	// values are omitted from API requests. However, any field with an
537	// empty value appearing in NullFields will be sent to the server as
538	// null. It is an error if a field in this list has a non-empty value.
539	// This may be used to include null fields in Patch requests.
540	NullFields []string `json:"-"`
541}
542
543func (s *Any) MarshalJSON() ([]byte, error) {
544	type NoMethod Any
545	raw := NoMethod(*s)
546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
547}
548
549type AppStartTime struct {
550	// FullyDrawnTime: Optional. The time from app start to reaching the
551	// developer-reported "fully drawn" time. This is only stored if the app
552	// includes a call to Activity.reportFullyDrawn(). See
553	// https://developer.android.com/topic/performance/launch-time.html#time-full
554	FullyDrawnTime *Duration `json:"fullyDrawnTime,omitempty"`
555
556	// InitialDisplayTime: The time from app start to the first displayed
557	// activity being drawn, as reported in Logcat. See
558	// https://developer.android.com/topic/performance/launch-time.html#time-initial
559	InitialDisplayTime *Duration `json:"initialDisplayTime,omitempty"`
560
561	// ForceSendFields is a list of field names (e.g. "FullyDrawnTime") to
562	// unconditionally include in API requests. By default, fields with
563	// empty values are omitted from API requests. However, any non-pointer,
564	// non-interface field appearing in ForceSendFields will be sent to the
565	// server regardless of whether the field is empty or not. This may be
566	// used to include empty fields in Patch requests.
567	ForceSendFields []string `json:"-"`
568
569	// NullFields is a list of field names (e.g. "FullyDrawnTime") to
570	// include in API requests with the JSON null value. By default, fields
571	// with empty values are omitted from API requests. However, any field
572	// with an empty value appearing in NullFields will be sent to the
573	// server as null. It is an error if a field in this list has a
574	// non-empty value. This may be used to include null fields in Patch
575	// requests.
576	NullFields []string `json:"-"`
577}
578
579func (s *AppStartTime) MarshalJSON() ([]byte, error) {
580	type NoMethod AppStartTime
581	raw := NoMethod(*s)
582	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
583}
584
585// AvailableDeepLinks: A suggestion to use deep links for a Robo run.
586type AvailableDeepLinks struct {
587}
588
589// BasicPerfSampleSeries: Encapsulates the metadata for basic sample
590// series represented by a line chart
591type BasicPerfSampleSeries struct {
592	// Possible values:
593	//   "perfMetricTypeUnspecified"
594	//   "memory"
595	//   "cpu"
596	//   "network"
597	//   "graphics"
598	PerfMetricType string `json:"perfMetricType,omitempty"`
599
600	// Possible values:
601	//   "perfUnitUnspecified"
602	//   "kibibyte"
603	//   "percent"
604	//   "bytesPerSecond"
605	//   "framesPerSecond"
606	//   "byte"
607	PerfUnit string `json:"perfUnit,omitempty"`
608
609	// Possible values:
610	//   "sampleSeriesTypeUnspecified"
611	//   "memoryRssPrivate" - Memory sample series
612	//   "memoryRssShared"
613	//   "memoryRssTotal"
614	//   "memoryTotal"
615	//   "cpuUser" - CPU sample series
616	//   "cpuKernel"
617	//   "cpuTotal"
618	//   "ntBytesTransferred" - Network sample series
619	//   "ntBytesReceived"
620	//   "networkSent"
621	//   "networkReceived"
622	//   "graphicsFrameRate" - Graphics sample series
623	SampleSeriesLabel string `json:"sampleSeriesLabel,omitempty"`
624
625	// ForceSendFields is a list of field names (e.g. "PerfMetricType") to
626	// unconditionally include in API requests. By default, fields with
627	// empty values are omitted from API requests. However, any non-pointer,
628	// non-interface field appearing in ForceSendFields will be sent to the
629	// server regardless of whether the field is empty or not. This may be
630	// used to include empty fields in Patch requests.
631	ForceSendFields []string `json:"-"`
632
633	// NullFields is a list of field names (e.g. "PerfMetricType") to
634	// include in API requests with the JSON null value. By default, fields
635	// with empty values are omitted from API requests. However, any field
636	// with an empty value appearing in NullFields will be sent to the
637	// server as null. It is an error if a field in this list has a
638	// non-empty value. This may be used to include null fields in Patch
639	// requests.
640	NullFields []string `json:"-"`
641}
642
643func (s *BasicPerfSampleSeries) MarshalJSON() ([]byte, error) {
644	type NoMethod BasicPerfSampleSeries
645	raw := NoMethod(*s)
646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
647}
648
649// BatchCreatePerfSamplesRequest: The request must provide up to a
650// maximum of 5000 samples to be created; a larger sample size will
651// cause an INVALID_ARGUMENT error
652type BatchCreatePerfSamplesRequest struct {
653	// PerfSamples: The set of PerfSamples to create should not include
654	// existing timestamps
655	PerfSamples []*PerfSample `json:"perfSamples,omitempty"`
656
657	// ForceSendFields is a list of field names (e.g. "PerfSamples") to
658	// unconditionally include in API requests. By default, fields with
659	// empty values are omitted from API requests. However, any non-pointer,
660	// non-interface field appearing in ForceSendFields will be sent to the
661	// server regardless of whether the field is empty or not. This may be
662	// used to include empty fields in Patch requests.
663	ForceSendFields []string `json:"-"`
664
665	// NullFields is a list of field names (e.g. "PerfSamples") to include
666	// in API requests with the JSON null value. By default, fields with
667	// empty values are omitted from API requests. However, any field with
668	// an empty value appearing in NullFields will be sent to the server as
669	// null. It is an error if a field in this list has a non-empty value.
670	// This may be used to include null fields in Patch requests.
671	NullFields []string `json:"-"`
672}
673
674func (s *BatchCreatePerfSamplesRequest) MarshalJSON() ([]byte, error) {
675	type NoMethod BatchCreatePerfSamplesRequest
676	raw := NoMethod(*s)
677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
678}
679
680type BatchCreatePerfSamplesResponse struct {
681	PerfSamples []*PerfSample `json:"perfSamples,omitempty"`
682
683	// ServerResponse contains the HTTP response code and headers from the
684	// server.
685	googleapi.ServerResponse `json:"-"`
686
687	// ForceSendFields is a list of field names (e.g. "PerfSamples") to
688	// unconditionally include in API requests. By default, fields with
689	// empty values are omitted from API requests. However, any non-pointer,
690	// non-interface field appearing in ForceSendFields will be sent to the
691	// server regardless of whether the field is empty or not. This may be
692	// used to include empty fields in Patch requests.
693	ForceSendFields []string `json:"-"`
694
695	// NullFields is a list of field names (e.g. "PerfSamples") to include
696	// in API requests with the JSON null value. By default, fields with
697	// empty values are omitted from API requests. However, any field with
698	// an empty value appearing in NullFields will be sent to the server as
699	// null. It is an error if a field in this list has a non-empty value.
700	// This may be used to include null fields in Patch requests.
701	NullFields []string `json:"-"`
702}
703
704func (s *BatchCreatePerfSamplesResponse) MarshalJSON() ([]byte, error) {
705	type NoMethod BatchCreatePerfSamplesResponse
706	raw := NoMethod(*s)
707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
708}
709
710// BlankScreen: A warning that Robo encountered a screen that was mostly
711// blank; this may indicate a problem with the app.
712type BlankScreen struct {
713	// ScreenId: The screen id of the element
714	ScreenId string `json:"screenId,omitempty"`
715
716	// ForceSendFields is a list of field names (e.g. "ScreenId") to
717	// unconditionally include in API requests. By default, fields with
718	// empty values are omitted from API requests. However, any non-pointer,
719	// non-interface field appearing in ForceSendFields will be sent to the
720	// server regardless of whether the field is empty or not. This may be
721	// used to include empty fields in Patch requests.
722	ForceSendFields []string `json:"-"`
723
724	// NullFields is a list of field names (e.g. "ScreenId") to include in
725	// API requests with the JSON null value. By default, fields with empty
726	// values are omitted from API requests. However, any field with an
727	// empty value appearing in NullFields will be sent to the server as
728	// null. It is an error if a field in this list has a non-empty value.
729	// This may be used to include null fields in Patch requests.
730	NullFields []string `json:"-"`
731}
732
733func (s *BlankScreen) MarshalJSON() ([]byte, error) {
734	type NoMethod BlankScreen
735	raw := NoMethod(*s)
736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
737}
738
739type CPUInfo struct {
740	// CpuProcessor: description of the device processor ie '1.8 GHz hexa
741	// core 64-bit ARMv8-A'
742	CpuProcessor string `json:"cpuProcessor,omitempty"`
743
744	// CpuSpeedInGhz: the CPU clock speed in GHz
745	CpuSpeedInGhz float64 `json:"cpuSpeedInGhz,omitempty"`
746
747	// NumberOfCores: the number of CPU cores
748	NumberOfCores int64 `json:"numberOfCores,omitempty"`
749
750	// ForceSendFields is a list of field names (e.g. "CpuProcessor") to
751	// unconditionally include in API requests. By default, fields with
752	// empty values are omitted from API requests. However, any non-pointer,
753	// non-interface field appearing in ForceSendFields will be sent to the
754	// server regardless of whether the field is empty or not. This may be
755	// used to include empty fields in Patch requests.
756	ForceSendFields []string `json:"-"`
757
758	// NullFields is a list of field names (e.g. "CpuProcessor") to include
759	// in API requests with the JSON null value. By default, fields with
760	// empty values are omitted from API requests. However, any field with
761	// an empty value appearing in NullFields will be sent to the server as
762	// null. It is an error if a field in this list has a non-empty value.
763	// This may be used to include null fields in Patch requests.
764	NullFields []string `json:"-"`
765}
766
767func (s *CPUInfo) MarshalJSON() ([]byte, error) {
768	type NoMethod CPUInfo
769	raw := NoMethod(*s)
770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
771}
772
773func (s *CPUInfo) UnmarshalJSON(data []byte) error {
774	type NoMethod CPUInfo
775	var s1 struct {
776		CpuSpeedInGhz gensupport.JSONFloat64 `json:"cpuSpeedInGhz"`
777		*NoMethod
778	}
779	s1.NoMethod = (*NoMethod)(s)
780	if err := json.Unmarshal(data, &s1); err != nil {
781		return err
782	}
783	s.CpuSpeedInGhz = float64(s1.CpuSpeedInGhz)
784	return nil
785}
786
787// CrashDialogError: Crash dialog was detected during the test execution
788type CrashDialogError struct {
789	// CrashPackage: The name of the package that caused the dialog.
790	CrashPackage string `json:"crashPackage,omitempty"`
791
792	// ForceSendFields is a list of field names (e.g. "CrashPackage") to
793	// unconditionally include in API requests. By default, fields with
794	// empty values are omitted from API requests. However, any non-pointer,
795	// non-interface field appearing in ForceSendFields will be sent to the
796	// server regardless of whether the field is empty or not. This may be
797	// used to include empty fields in Patch requests.
798	ForceSendFields []string `json:"-"`
799
800	// NullFields is a list of field names (e.g. "CrashPackage") to include
801	// in API requests with the JSON null value. By default, fields with
802	// empty values are omitted from API requests. However, any field with
803	// an empty value appearing in NullFields will be sent to the server as
804	// null. It is an error if a field in this list has a non-empty value.
805	// This may be used to include null fields in Patch requests.
806	NullFields []string `json:"-"`
807}
808
809func (s *CrashDialogError) MarshalJSON() ([]byte, error) {
810	type NoMethod CrashDialogError
811	raw := NoMethod(*s)
812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
813}
814
815// DeviceOutOfMemory: A warning that device ran out of memory
816type DeviceOutOfMemory struct {
817}
818
819// Duration:  A Duration represents a signed, fixed-length span of time
820// represented as a count of seconds and fractions of seconds at
821// nanosecond resolution. It is independent of any calendar and concepts
822// like "day" or "month". It is related to Timestamp in that the
823// difference between two Timestamp values is a Duration and it can be
824// added or subtracted from a Timestamp. Range is approximately +-10,000
825// years.
826type Duration struct {
827	// Nanos: Signed fractions of a second at nanosecond resolution of the
828	// span of time. Durations less than one second are represented with a 0
829	// `seconds` field and a positive or negative `nanos` field. For
830	// durations of one second or more, a non-zero value for the `nanos`
831	// field must be of the same sign as the `seconds` field. Must be from
832	// -999,999,999 to +999,999,999 inclusive.
833	Nanos int64 `json:"nanos,omitempty"`
834
835	// Seconds: Signed seconds of the span of time. Must be from
836	// -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds
837	// are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25
838	// days/year * 10000 years
839	Seconds int64 `json:"seconds,omitempty,string"`
840
841	// ForceSendFields is a list of field names (e.g. "Nanos") to
842	// unconditionally include in API requests. By default, fields with
843	// empty values are omitted from API requests. However, any non-pointer,
844	// non-interface field appearing in ForceSendFields will be sent to the
845	// server regardless of whether the field is empty or not. This may be
846	// used to include empty fields in Patch requests.
847	ForceSendFields []string `json:"-"`
848
849	// NullFields is a list of field names (e.g. "Nanos") to include in API
850	// requests with the JSON null value. By default, fields with empty
851	// values are omitted from API requests. However, any field with an
852	// empty value appearing in NullFields will be sent to the server as
853	// null. It is an error if a field in this list has a non-empty value.
854	// This may be used to include null fields in Patch requests.
855	NullFields []string `json:"-"`
856}
857
858func (s *Duration) MarshalJSON() ([]byte, error) {
859	type NoMethod Duration
860	raw := NoMethod(*s)
861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
862}
863
864// EncounteredLoginScreen: Additional details about encountered login
865// screens.
866type EncounteredLoginScreen struct {
867	// DistinctScreens: Number of encountered distinct login screens.
868	DistinctScreens int64 `json:"distinctScreens,omitempty"`
869
870	// ScreenIds: Subset of login screens.
871	ScreenIds []string `json:"screenIds,omitempty"`
872
873	// ForceSendFields is a list of field names (e.g. "DistinctScreens") to
874	// unconditionally include in API requests. By default, fields with
875	// empty values are omitted from API requests. However, any non-pointer,
876	// non-interface field appearing in ForceSendFields will be sent to the
877	// server regardless of whether the field is empty or not. This may be
878	// used to include empty fields in Patch requests.
879	ForceSendFields []string `json:"-"`
880
881	// NullFields is a list of field names (e.g. "DistinctScreens") to
882	// include in API requests with the JSON null value. By default, fields
883	// with empty values are omitted from API requests. However, any field
884	// with an empty value appearing in NullFields will be sent to the
885	// server as null. It is an error if a field in this list has a
886	// non-empty value. This may be used to include null fields in Patch
887	// requests.
888	NullFields []string `json:"-"`
889}
890
891func (s *EncounteredLoginScreen) MarshalJSON() ([]byte, error) {
892	type NoMethod EncounteredLoginScreen
893	raw := NoMethod(*s)
894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
895}
896
897// EncounteredNonAndroidUiWidgetScreen: Additional details about
898// encountered screens with elements that are not Android UI widgets.
899type EncounteredNonAndroidUiWidgetScreen struct {
900	// DistinctScreens: Number of encountered distinct screens with non
901	// Android UI widgets.
902	DistinctScreens int64 `json:"distinctScreens,omitempty"`
903
904	// ScreenIds: Subset of screens which contain non Android UI widgets.
905	ScreenIds []string `json:"screenIds,omitempty"`
906
907	// ForceSendFields is a list of field names (e.g. "DistinctScreens") to
908	// unconditionally include in API requests. By default, fields with
909	// empty values are omitted from API requests. However, any non-pointer,
910	// non-interface field appearing in ForceSendFields will be sent to the
911	// server regardless of whether the field is empty or not. This may be
912	// used to include empty fields in Patch requests.
913	ForceSendFields []string `json:"-"`
914
915	// NullFields is a list of field names (e.g. "DistinctScreens") to
916	// include in API requests with the JSON null value. By default, fields
917	// with empty values are omitted from API requests. However, any field
918	// with an empty value appearing in NullFields will be sent to the
919	// server as null. It is an error if a field in this list has a
920	// non-empty value. This may be used to include null fields in Patch
921	// requests.
922	NullFields []string `json:"-"`
923}
924
925func (s *EncounteredNonAndroidUiWidgetScreen) MarshalJSON() ([]byte, error) {
926	type NoMethod EncounteredNonAndroidUiWidgetScreen
927	raw := NoMethod(*s)
928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
929}
930
931// Environment: An Environment represents the set of test runs (Steps)
932// from the parent Execution that are configured with the same set of
933// dimensions (Model, Version, Locale, and Orientation). Multiple such
934// runs occur particularly because of features like sharding (splitting
935// up a test suite to run in parallel across devices) and reruns
936// (running a test multiple times to check for different outcomes).
937type Environment struct {
938	// CompletionTime: Output only. The time when the Environment status was
939	// set to complete. This value will be set automatically when state
940	// transitions to COMPLETE.
941	CompletionTime *Timestamp `json:"completionTime,omitempty"`
942
943	// CreationTime: Output only. The time when the Environment was created.
944	CreationTime *Timestamp `json:"creationTime,omitempty"`
945
946	// DimensionValue: Dimension values describing the environment.
947	// Dimension values always consist of "Model", "Version", "Locale", and
948	// "Orientation". - In response: always set - In create request: always
949	// set - In update request: never set
950	DimensionValue []*EnvironmentDimensionValueEntry `json:"dimensionValue,omitempty"`
951
952	// DisplayName: A short human-readable name to display in the UI.
953	// Maximum of 100 characters. For example: Nexus 5, API 27.
954	DisplayName string `json:"displayName,omitempty"`
955
956	// EnvironmentId: Output only. An Environment id.
957	EnvironmentId string `json:"environmentId,omitempty"`
958
959	// EnvironmentResult: Merged result of the environment.
960	EnvironmentResult *MergedResult `json:"environmentResult,omitempty"`
961
962	// ExecutionId: Output only. An Execution id.
963	ExecutionId string `json:"executionId,omitempty"`
964
965	// HistoryId: Output only. A History id.
966	HistoryId string `json:"historyId,omitempty"`
967
968	// ProjectId: Output only. A Project id.
969	ProjectId string `json:"projectId,omitempty"`
970
971	// ResultsStorage: The location where output files are stored in the
972	// user bucket.
973	ResultsStorage *ResultsStorage `json:"resultsStorage,omitempty"`
974
975	// ShardSummaries: Output only. Summaries of shards. Only one shard will
976	// present unless sharding feature is enabled in TestExecutionService.
977	ShardSummaries []*ShardSummary `json:"shardSummaries,omitempty"`
978
979	// ServerResponse contains the HTTP response code and headers from the
980	// server.
981	googleapi.ServerResponse `json:"-"`
982
983	// ForceSendFields is a list of field names (e.g. "CompletionTime") to
984	// unconditionally include in API requests. By default, fields with
985	// empty values are omitted from API requests. However, any non-pointer,
986	// non-interface field appearing in ForceSendFields will be sent to the
987	// server regardless of whether the field is empty or not. This may be
988	// used to include empty fields in Patch requests.
989	ForceSendFields []string `json:"-"`
990
991	// NullFields is a list of field names (e.g. "CompletionTime") to
992	// include in API requests with the JSON null value. By default, fields
993	// with empty values are omitted from API requests. However, any field
994	// with an empty value appearing in NullFields will be sent to the
995	// server as null. It is an error if a field in this list has a
996	// non-empty value. This may be used to include null fields in Patch
997	// requests.
998	NullFields []string `json:"-"`
999}
1000
1001func (s *Environment) MarshalJSON() ([]byte, error) {
1002	type NoMethod Environment
1003	raw := NoMethod(*s)
1004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1005}
1006
1007type EnvironmentDimensionValueEntry struct {
1008	Key string `json:"key,omitempty"`
1009
1010	Value string `json:"value,omitempty"`
1011
1012	// ForceSendFields is a list of field names (e.g. "Key") to
1013	// unconditionally include in API requests. By default, fields with
1014	// empty values are omitted from API requests. However, any non-pointer,
1015	// non-interface field appearing in ForceSendFields will be sent to the
1016	// server regardless of whether the field is empty or not. This may be
1017	// used to include empty fields in Patch requests.
1018	ForceSendFields []string `json:"-"`
1019
1020	// NullFields is a list of field names (e.g. "Key") to include in API
1021	// requests with the JSON null value. By default, fields with empty
1022	// values are omitted from API requests. However, any field with an
1023	// empty value appearing in NullFields will be sent to the server as
1024	// null. It is an error if a field in this list has a non-empty value.
1025	// This may be used to include null fields in Patch requests.
1026	NullFields []string `json:"-"`
1027}
1028
1029func (s *EnvironmentDimensionValueEntry) MarshalJSON() ([]byte, error) {
1030	type NoMethod EnvironmentDimensionValueEntry
1031	raw := NoMethod(*s)
1032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1033}
1034
1035// Execution: An Execution represents a collection of Steps. For
1036// instance, it could represent: - a mobile test executed across a range
1037// of device configurations - a jenkins job with a build step followed
1038// by a test step The maximum size of an execution message is 1 MiB. An
1039// Execution can be updated until its state is set to COMPLETE at which
1040// point it becomes immutable.
1041type Execution struct {
1042	// CompletionTime: The time when the Execution status transitioned to
1043	// COMPLETE. This value will be set automatically when state transitions
1044	// to COMPLETE. - In response: set if the execution state is COMPLETE. -
1045	// In create/update request: never set
1046	CompletionTime *Timestamp `json:"completionTime,omitempty"`
1047
1048	// CreationTime: The time when the Execution was created. This value
1049	// will be set automatically when CreateExecution is called. - In
1050	// response: always set - In create/update request: never set
1051	CreationTime *Timestamp `json:"creationTime,omitempty"`
1052
1053	// DimensionDefinitions: The dimensions along which different steps in
1054	// this execution may vary. This must remain fixed over the life of the
1055	// execution. Returns INVALID_ARGUMENT if this field is set in an update
1056	// request. Returns INVALID_ARGUMENT if the same name occurs in more
1057	// than one dimension_definition. Returns INVALID_ARGUMENT if the size
1058	// of the list is over 100. - In response: present if set by create - In
1059	// create request: optional - In update request: never set
1060	DimensionDefinitions []*MatrixDimensionDefinition `json:"dimensionDefinitions,omitempty"`
1061
1062	// ExecutionId: A unique identifier within a History for this Execution.
1063	// Returns INVALID_ARGUMENT if this field is set or overwritten by the
1064	// caller. - In response always set - In create/update request: never
1065	// set
1066	ExecutionId string `json:"executionId,omitempty"`
1067
1068	// Outcome: Classify the result, for example into SUCCESS or FAILURE -
1069	// In response: present if set by create/update request - In
1070	// create/update request: optional
1071	Outcome *Outcome `json:"outcome,omitempty"`
1072
1073	// Specification: Lightweight information about execution request. - In
1074	// response: present if set by create - In create: optional - In update:
1075	// optional
1076	Specification *Specification `json:"specification,omitempty"`
1077
1078	// State: The initial state is IN_PROGRESS. The only legal state
1079	// transitions is from IN_PROGRESS to COMPLETE. A PRECONDITION_FAILED
1080	// will be returned if an invalid transition is requested. The state can
1081	// only be set to COMPLETE once. A FAILED_PRECONDITION will be returned
1082	// if the state is set to COMPLETE multiple times. If the state is set
1083	// to COMPLETE, all the in-progress steps within the execution will be
1084	// set as COMPLETE. If the outcome of the step is not set, the outcome
1085	// will be set to INCONCLUSIVE. - In response always set - In
1086	// create/update request: optional
1087	//
1088	// Possible values:
1089	//   "unknownState" - Should never be in this state. Exists for proto
1090	// deserialization backward compatibility.
1091	//   "pending" - The Execution/Step is created, ready to run, but not
1092	// running yet. If an Execution/Step is created without initial state,
1093	// it is assumed that the Execution/Step is in PENDING state.
1094	//   "inProgress" - The Execution/Step is in progress.
1095	//   "complete" - The finalized, immutable state. Steps/Executions in
1096	// this state cannot be modified.
1097	State string `json:"state,omitempty"`
1098
1099	// TestExecutionMatrixId: TestExecution Matrix ID that the
1100	// TestExecutionService uses. - In response: present if set by create -
1101	// In create: optional - In update: never set
1102	TestExecutionMatrixId string `json:"testExecutionMatrixId,omitempty"`
1103
1104	// ServerResponse contains the HTTP response code and headers from the
1105	// server.
1106	googleapi.ServerResponse `json:"-"`
1107
1108	// ForceSendFields is a list of field names (e.g. "CompletionTime") to
1109	// unconditionally include in API requests. By default, fields with
1110	// empty values are omitted from API requests. However, any non-pointer,
1111	// non-interface field appearing in ForceSendFields will be sent to the
1112	// server regardless of whether the field is empty or not. This may be
1113	// used to include empty fields in Patch requests.
1114	ForceSendFields []string `json:"-"`
1115
1116	// NullFields is a list of field names (e.g. "CompletionTime") to
1117	// include in API requests with the JSON null value. By default, fields
1118	// with empty values are omitted from API requests. However, any field
1119	// with an empty value appearing in NullFields will be sent to the
1120	// server as null. It is an error if a field in this list has a
1121	// non-empty value. This may be used to include null fields in Patch
1122	// requests.
1123	NullFields []string `json:"-"`
1124}
1125
1126func (s *Execution) MarshalJSON() ([]byte, error) {
1127	type NoMethod Execution
1128	raw := NoMethod(*s)
1129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1130}
1131
1132// FailedToInstall: Failed to install the APK.
1133type FailedToInstall struct {
1134}
1135
1136// FailureDetail: Details for an outcome with a FAILURE outcome summary.
1137type FailureDetail struct {
1138	// Crashed: If the failure was severe because the system (app) under
1139	// test crashed.
1140	Crashed bool `json:"crashed,omitempty"`
1141
1142	// DeviceOutOfMemory: If the device ran out of memory during a test,
1143	// causing the test to crash.
1144	DeviceOutOfMemory bool `json:"deviceOutOfMemory,omitempty"`
1145
1146	// FailedRoboscript: If the Roboscript failed to complete successfully,
1147	// e.g., because a Roboscript action or assertion failed or a Roboscript
1148	// action could not be matched during the entire crawl.
1149	FailedRoboscript bool `json:"failedRoboscript,omitempty"`
1150
1151	// NotInstalled: If an app is not installed and thus no test can be run
1152	// with the app. This might be caused by trying to run a test on an
1153	// unsupported platform.
1154	NotInstalled bool `json:"notInstalled,omitempty"`
1155
1156	// OtherNativeCrash: If a native process (including any other than the
1157	// app) crashed.
1158	OtherNativeCrash bool `json:"otherNativeCrash,omitempty"`
1159
1160	// TimedOut: If the test overran some time limit, and that is why it
1161	// failed.
1162	TimedOut bool `json:"timedOut,omitempty"`
1163
1164	// UnableToCrawl: If the robo was unable to crawl the app; perhaps
1165	// because the app did not start.
1166	UnableToCrawl bool `json:"unableToCrawl,omitempty"`
1167
1168	// ForceSendFields is a list of field names (e.g. "Crashed") to
1169	// unconditionally include in API requests. By default, fields with
1170	// empty values are omitted from API requests. However, any non-pointer,
1171	// non-interface field appearing in ForceSendFields will be sent to the
1172	// server regardless of whether the field is empty or not. This may be
1173	// used to include empty fields in Patch requests.
1174	ForceSendFields []string `json:"-"`
1175
1176	// NullFields is a list of field names (e.g. "Crashed") to include in
1177	// API requests with the JSON null value. By default, fields with empty
1178	// values are omitted from API requests. However, any field with an
1179	// empty value appearing in NullFields will be sent to the server as
1180	// null. It is an error if a field in this list has a non-empty value.
1181	// This may be used to include null fields in Patch requests.
1182	NullFields []string `json:"-"`
1183}
1184
1185func (s *FailureDetail) MarshalJSON() ([]byte, error) {
1186	type NoMethod FailureDetail
1187	raw := NoMethod(*s)
1188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1189}
1190
1191// FatalException: Additional details for a fatal exception.
1192type FatalException struct {
1193	// StackTrace: The stack trace of the fatal exception. Optional.
1194	StackTrace *StackTrace `json:"stackTrace,omitempty"`
1195
1196	// ForceSendFields is a list of field names (e.g. "StackTrace") to
1197	// unconditionally include in API requests. By default, fields with
1198	// empty values are omitted from API requests. However, any non-pointer,
1199	// non-interface field appearing in ForceSendFields will be sent to the
1200	// server regardless of whether the field is empty or not. This may be
1201	// used to include empty fields in Patch requests.
1202	ForceSendFields []string `json:"-"`
1203
1204	// NullFields is a list of field names (e.g. "StackTrace") to include in
1205	// API requests with the JSON null value. By default, fields with empty
1206	// values are omitted from API requests. However, any field with an
1207	// empty value appearing in NullFields will be sent to the server as
1208	// null. It is an error if a field in this list has a non-empty value.
1209	// This may be used to include null fields in Patch requests.
1210	NullFields []string `json:"-"`
1211}
1212
1213func (s *FatalException) MarshalJSON() ([]byte, error) {
1214	type NoMethod FatalException
1215	raw := NoMethod(*s)
1216	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1217}
1218
1219// FileReference: A reference to a file.
1220type FileReference struct {
1221	// FileUri: The URI of a file stored in Google Cloud Storage. For
1222	// example: http://storage.googleapis.com/mybucket/path/to/test.xml or
1223	// in gsutil format: gs://mybucket/path/to/test.xml with
1224	// version-specific info,
1225	// gs://mybucket/path/to/test.xml#1360383693690000 An INVALID_ARGUMENT
1226	// error will be returned if the URI format is not supported. - In
1227	// response: always set - In create/update request: always set
1228	FileUri string `json:"fileUri,omitempty"`
1229
1230	// ForceSendFields is a list of field names (e.g. "FileUri") to
1231	// unconditionally include in API requests. By default, fields with
1232	// empty values are omitted from API requests. However, any non-pointer,
1233	// non-interface field appearing in ForceSendFields will be sent to the
1234	// server regardless of whether the field is empty or not. This may be
1235	// used to include empty fields in Patch requests.
1236	ForceSendFields []string `json:"-"`
1237
1238	// NullFields is a list of field names (e.g. "FileUri") to include in
1239	// API requests with the JSON null value. By default, fields with empty
1240	// values are omitted from API requests. However, any field with an
1241	// empty value appearing in NullFields will be sent to the server as
1242	// null. It is an error if a field in this list has a non-empty value.
1243	// This may be used to include null fields in Patch requests.
1244	NullFields []string `json:"-"`
1245}
1246
1247func (s *FileReference) MarshalJSON() ([]byte, error) {
1248	type NoMethod FileReference
1249	raw := NoMethod(*s)
1250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1251}
1252
1253// GraphicsStats: Graphics statistics for the App. The information is
1254// collected from 'adb shell dumpsys graphicsstats'. For more info see:
1255// https://developer.android.com/training/testing/performance.html
1256// Statistics will only be present for API 23+.
1257type GraphicsStats struct {
1258	// Buckets: Histogram of frame render times. There should be 154 buckets
1259	// ranging from [5ms, 6ms) to [4950ms, infinity)
1260	Buckets []*GraphicsStatsBucket `json:"buckets,omitempty"`
1261
1262	// HighInputLatencyCount: Total "high input latency" events.
1263	HighInputLatencyCount int64 `json:"highInputLatencyCount,omitempty,string"`
1264
1265	// JankyFrames: Total frames with slow render time. Should be <=
1266	// total_frames.
1267	JankyFrames int64 `json:"jankyFrames,omitempty,string"`
1268
1269	// MissedVsyncCount: Total "missed vsync" events.
1270	MissedVsyncCount int64 `json:"missedVsyncCount,omitempty,string"`
1271
1272	// P50Millis: 50th percentile frame render time in milliseconds.
1273	P50Millis int64 `json:"p50Millis,omitempty,string"`
1274
1275	// P90Millis: 90th percentile frame render time in milliseconds.
1276	P90Millis int64 `json:"p90Millis,omitempty,string"`
1277
1278	// P95Millis: 95th percentile frame render time in milliseconds.
1279	P95Millis int64 `json:"p95Millis,omitempty,string"`
1280
1281	// P99Millis: 99th percentile frame render time in milliseconds.
1282	P99Millis int64 `json:"p99Millis,omitempty,string"`
1283
1284	// SlowBitmapUploadCount: Total "slow bitmap upload" events.
1285	SlowBitmapUploadCount int64 `json:"slowBitmapUploadCount,omitempty,string"`
1286
1287	// SlowDrawCount: Total "slow draw" events.
1288	SlowDrawCount int64 `json:"slowDrawCount,omitempty,string"`
1289
1290	// SlowUiThreadCount: Total "slow UI thread" events.
1291	SlowUiThreadCount int64 `json:"slowUiThreadCount,omitempty,string"`
1292
1293	// TotalFrames: Total frames rendered by package.
1294	TotalFrames int64 `json:"totalFrames,omitempty,string"`
1295
1296	// ForceSendFields is a list of field names (e.g. "Buckets") to
1297	// unconditionally include in API requests. By default, fields with
1298	// empty values are omitted from API requests. However, any non-pointer,
1299	// non-interface field appearing in ForceSendFields will be sent to the
1300	// server regardless of whether the field is empty or not. This may be
1301	// used to include empty fields in Patch requests.
1302	ForceSendFields []string `json:"-"`
1303
1304	// NullFields is a list of field names (e.g. "Buckets") to include in
1305	// API requests with the JSON null value. By default, fields with empty
1306	// values are omitted from API requests. However, any field with an
1307	// empty value appearing in NullFields will be sent to the server as
1308	// null. It is an error if a field in this list has a non-empty value.
1309	// This may be used to include null fields in Patch requests.
1310	NullFields []string `json:"-"`
1311}
1312
1313func (s *GraphicsStats) MarshalJSON() ([]byte, error) {
1314	type NoMethod GraphicsStats
1315	raw := NoMethod(*s)
1316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1317}
1318
1319type GraphicsStatsBucket struct {
1320	// FrameCount: Number of frames in the bucket.
1321	FrameCount int64 `json:"frameCount,omitempty,string"`
1322
1323	// RenderMillis: Lower bound of render time in milliseconds.
1324	RenderMillis int64 `json:"renderMillis,omitempty,string"`
1325
1326	// ForceSendFields is a list of field names (e.g. "FrameCount") to
1327	// unconditionally include in API requests. By default, fields with
1328	// empty values are omitted from API requests. However, any non-pointer,
1329	// non-interface field appearing in ForceSendFields will be sent to the
1330	// server regardless of whether the field is empty or not. This may be
1331	// used to include empty fields in Patch requests.
1332	ForceSendFields []string `json:"-"`
1333
1334	// NullFields is a list of field names (e.g. "FrameCount") to include in
1335	// API requests with the JSON null value. By default, fields with empty
1336	// values are omitted from API requests. However, any field with an
1337	// empty value appearing in NullFields will be sent to the server as
1338	// null. It is an error if a field in this list has a non-empty value.
1339	// This may be used to include null fields in Patch requests.
1340	NullFields []string `json:"-"`
1341}
1342
1343func (s *GraphicsStatsBucket) MarshalJSON() ([]byte, error) {
1344	type NoMethod GraphicsStatsBucket
1345	raw := NoMethod(*s)
1346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1347}
1348
1349// History: A History represents a sorted list of Executions ordered by
1350// the start_timestamp_millis field (descending). It can be used to
1351// group all the Executions of a continuous build. Note that the
1352// ordering only operates on one-dimension. If a repository has multiple
1353// branches, it means that multiple histories will need to be used in
1354// order to order Executions per branch.
1355type History struct {
1356	// DisplayName: A short human-readable (plain text) name to display in
1357	// the UI. Maximum of 100 characters. - In response: present if set
1358	// during create. - In create request: optional
1359	DisplayName string `json:"displayName,omitempty"`
1360
1361	// HistoryId: A unique identifier within a project for this History.
1362	// Returns INVALID_ARGUMENT if this field is set or overwritten by the
1363	// caller. - In response always set - In create request: never set
1364	HistoryId string `json:"historyId,omitempty"`
1365
1366	// Name: A name to uniquely identify a history within a project. Maximum
1367	// of 200 characters. - In response always set - In create request:
1368	// always set
1369	Name string `json:"name,omitempty"`
1370
1371	// TestPlatform: The platform of the test history. - In response: always
1372	// set. Returns the platform of the last execution if unknown.
1373	//
1374	// Possible values:
1375	//   "unknownPlatform"
1376	//   "android"
1377	//   "ios"
1378	TestPlatform string `json:"testPlatform,omitempty"`
1379
1380	// ServerResponse contains the HTTP response code and headers from the
1381	// server.
1382	googleapi.ServerResponse `json:"-"`
1383
1384	// ForceSendFields is a list of field names (e.g. "DisplayName") to
1385	// unconditionally include in API requests. By default, fields with
1386	// empty values are omitted from API requests. However, any non-pointer,
1387	// non-interface field appearing in ForceSendFields will be sent to the
1388	// server regardless of whether the field is empty or not. This may be
1389	// used to include empty fields in Patch requests.
1390	ForceSendFields []string `json:"-"`
1391
1392	// NullFields is a list of field names (e.g. "DisplayName") to include
1393	// in API requests with the JSON null value. By default, fields with
1394	// empty values are omitted from API requests. However, any field with
1395	// an empty value appearing in NullFields will be sent to the server as
1396	// null. It is an error if a field in this list has a non-empty value.
1397	// This may be used to include null fields in Patch requests.
1398	NullFields []string `json:"-"`
1399}
1400
1401func (s *History) MarshalJSON() ([]byte, error) {
1402	type NoMethod History
1403	raw := NoMethod(*s)
1404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1405}
1406
1407// Image: An image, with a link to the main image and a thumbnail.
1408type Image struct {
1409	// Error: An error explaining why the thumbnail could not be rendered.
1410	Error *Status `json:"error,omitempty"`
1411
1412	// SourceImage: A reference to the full-size, original image. This is
1413	// the same as the tool_outputs entry for the image under its Step.
1414	// Always set.
1415	SourceImage *ToolOutputReference `json:"sourceImage,omitempty"`
1416
1417	// StepId: The step to which the image is attached. Always set.
1418	StepId string `json:"stepId,omitempty"`
1419
1420	// Thumbnail: The thumbnail.
1421	Thumbnail *Thumbnail `json:"thumbnail,omitempty"`
1422
1423	// ForceSendFields is a list of field names (e.g. "Error") to
1424	// unconditionally include in API requests. By default, fields with
1425	// empty values are omitted from API requests. However, any non-pointer,
1426	// non-interface field appearing in ForceSendFields will be sent to the
1427	// server regardless of whether the field is empty or not. This may be
1428	// used to include empty fields in Patch requests.
1429	ForceSendFields []string `json:"-"`
1430
1431	// NullFields is a list of field names (e.g. "Error") to include in API
1432	// requests with the JSON null value. By default, fields with empty
1433	// values are omitted from API requests. However, any field with an
1434	// empty value appearing in NullFields will be sent to the server as
1435	// null. It is an error if a field in this list has a non-empty value.
1436	// This may be used to include null fields in Patch requests.
1437	NullFields []string `json:"-"`
1438}
1439
1440func (s *Image) MarshalJSON() ([]byte, error) {
1441	type NoMethod Image
1442	raw := NoMethod(*s)
1443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1444}
1445
1446// InAppPurchasesFound: Additional details of in-app purchases
1447// encountered during the crawl.
1448type InAppPurchasesFound struct {
1449	// InAppPurchasesFlowsExplored: The total number of in-app purchases
1450	// flows explored: how many times the robo tries to buy a SKU.
1451	InAppPurchasesFlowsExplored int64 `json:"inAppPurchasesFlowsExplored,omitempty"`
1452
1453	// InAppPurchasesFlowsStarted: The total number of in-app purchases
1454	// flows started.
1455	InAppPurchasesFlowsStarted int64 `json:"inAppPurchasesFlowsStarted,omitempty"`
1456
1457	// ForceSendFields is a list of field names (e.g.
1458	// "InAppPurchasesFlowsExplored") to unconditionally include in API
1459	// requests. By default, fields with empty values are omitted from API
1460	// requests. However, any non-pointer, non-interface field appearing in
1461	// ForceSendFields will be sent to the server regardless of whether the
1462	// field is empty or not. This may be used to include empty fields in
1463	// Patch requests.
1464	ForceSendFields []string `json:"-"`
1465
1466	// NullFields is a list of field names (e.g.
1467	// "InAppPurchasesFlowsExplored") to include in API requests with the
1468	// JSON null value. By default, fields with empty values are omitted
1469	// from API requests. However, any field with an empty value appearing
1470	// in NullFields will be sent to the server as null. It is an error if a
1471	// field in this list has a non-empty value. This may be used to include
1472	// null fields in Patch requests.
1473	NullFields []string `json:"-"`
1474}
1475
1476func (s *InAppPurchasesFound) MarshalJSON() ([]byte, error) {
1477	type NoMethod InAppPurchasesFound
1478	raw := NoMethod(*s)
1479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1480}
1481
1482// InconclusiveDetail: Details for an outcome with an INCONCLUSIVE
1483// outcome summary.
1484type InconclusiveDetail struct {
1485	// AbortedByUser: If the end user aborted the test execution before a
1486	// pass or fail could be determined. For example, the user pressed
1487	// ctrl-c which sent a kill signal to the test runner while the test was
1488	// running.
1489	AbortedByUser bool `json:"abortedByUser,omitempty"`
1490
1491	// HasErrorLogs: If results are being provided to the user in certain
1492	// cases of infrastructure failures
1493	HasErrorLogs bool `json:"hasErrorLogs,omitempty"`
1494
1495	// InfrastructureFailure: If the test runner could not determine success
1496	// or failure because the test depends on a component other than the
1497	// system under test which failed. For example, a mobile test requires
1498	// provisioning a device where the test executes, and that provisioning
1499	// can fail.
1500	InfrastructureFailure bool `json:"infrastructureFailure,omitempty"`
1501
1502	// ForceSendFields is a list of field names (e.g. "AbortedByUser") to
1503	// unconditionally include in API requests. By default, fields with
1504	// empty values are omitted from API requests. However, any non-pointer,
1505	// non-interface field appearing in ForceSendFields will be sent to the
1506	// server regardless of whether the field is empty or not. This may be
1507	// used to include empty fields in Patch requests.
1508	ForceSendFields []string `json:"-"`
1509
1510	// NullFields is a list of field names (e.g. "AbortedByUser") to include
1511	// in API requests with the JSON null value. By default, fields with
1512	// empty values are omitted from API requests. However, any field with
1513	// an empty value appearing in NullFields will be sent to the server as
1514	// null. It is an error if a field in this list has a non-empty value.
1515	// This may be used to include null fields in Patch requests.
1516	NullFields []string `json:"-"`
1517}
1518
1519func (s *InconclusiveDetail) MarshalJSON() ([]byte, error) {
1520	type NoMethod InconclusiveDetail
1521	raw := NoMethod(*s)
1522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1523}
1524
1525// IndividualOutcome: Step Id and outcome of each individual step that
1526// was run as a group with other steps with the same configuration.
1527type IndividualOutcome struct {
1528	// MultistepNumber: Unique int given to each step. Ranges from
1529	// 0(inclusive) to total number of steps(exclusive). The primary step is
1530	// 0.
1531	MultistepNumber int64 `json:"multistepNumber,omitempty"`
1532
1533	// Possible values:
1534	//   "unset" - Do not use. For proto versioning only.
1535	//   "success" - The test matrix run was successful, for instance: - All
1536	// the test cases passed. - Robo did not detect a crash of the
1537	// application under test.
1538	//   "failure" - A run failed, for instance: - One or more test case
1539	// failed. - A test timed out. - The application under test crashed.
1540	//   "inconclusive" - Something unexpected happened. The run should
1541	// still be considered unsuccessful but this is likely a transient
1542	// problem and re-running the test might be successful.
1543	//   "skipped" - All tests were skipped, for instance: - All device
1544	// configurations were incompatible.
1545	//   "flaky" - A group of steps that were run with the same
1546	// configuration had both failure and success outcomes.
1547	OutcomeSummary string `json:"outcomeSummary,omitempty"`
1548
1549	// RunDuration: How long it took for this step to run.
1550	RunDuration *Duration `json:"runDuration,omitempty"`
1551
1552	StepId string `json:"stepId,omitempty"`
1553
1554	// ForceSendFields is a list of field names (e.g. "MultistepNumber") to
1555	// unconditionally include in API requests. By default, fields with
1556	// empty values are omitted from API requests. However, any non-pointer,
1557	// non-interface field appearing in ForceSendFields will be sent to the
1558	// server regardless of whether the field is empty or not. This may be
1559	// used to include empty fields in Patch requests.
1560	ForceSendFields []string `json:"-"`
1561
1562	// NullFields is a list of field names (e.g. "MultistepNumber") to
1563	// include in API requests with the JSON null value. By default, fields
1564	// with empty values are omitted from API requests. However, any field
1565	// with an empty value appearing in NullFields will be sent to the
1566	// server as null. It is an error if a field in this list has a
1567	// non-empty value. This may be used to include null fields in Patch
1568	// requests.
1569	NullFields []string `json:"-"`
1570}
1571
1572func (s *IndividualOutcome) MarshalJSON() ([]byte, error) {
1573	type NoMethod IndividualOutcome
1574	raw := NoMethod(*s)
1575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1576}
1577
1578// InsufficientCoverage: A warning that Robo did not crawl potentially
1579// important parts of the app.
1580type InsufficientCoverage struct {
1581}
1582
1583// IosAppCrashed: Additional details for an iOS app crash.
1584type IosAppCrashed struct {
1585	// StackTrace: The stack trace, if one is available. Optional.
1586	StackTrace *StackTrace `json:"stackTrace,omitempty"`
1587
1588	// ForceSendFields is a list of field names (e.g. "StackTrace") to
1589	// unconditionally include in API requests. By default, fields with
1590	// empty values are omitted from API requests. However, any non-pointer,
1591	// non-interface field appearing in ForceSendFields will be sent to the
1592	// server regardless of whether the field is empty or not. This may be
1593	// used to include empty fields in Patch requests.
1594	ForceSendFields []string `json:"-"`
1595
1596	// NullFields is a list of field names (e.g. "StackTrace") to include in
1597	// API requests with the JSON null value. By default, fields with empty
1598	// values are omitted from API requests. However, any field with an
1599	// empty value appearing in NullFields will be sent to the server as
1600	// null. It is an error if a field in this list has a non-empty value.
1601	// This may be used to include null fields in Patch requests.
1602	NullFields []string `json:"-"`
1603}
1604
1605func (s *IosAppCrashed) MarshalJSON() ([]byte, error) {
1606	type NoMethod IosAppCrashed
1607	raw := NoMethod(*s)
1608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1609}
1610
1611// IosAppInfo: iOS app information
1612type IosAppInfo struct {
1613	// Name: The name of the app. Required
1614	Name string `json:"name,omitempty"`
1615
1616	// ForceSendFields is a list of field names (e.g. "Name") to
1617	// unconditionally include in API requests. By default, fields with
1618	// empty values are omitted from API requests. However, any non-pointer,
1619	// non-interface field appearing in ForceSendFields will be sent to the
1620	// server regardless of whether the field is empty or not. This may be
1621	// used to include empty fields in Patch requests.
1622	ForceSendFields []string `json:"-"`
1623
1624	// NullFields is a list of field names (e.g. "Name") to include in API
1625	// requests with the JSON null value. By default, fields with empty
1626	// values are omitted from API requests. However, any field with an
1627	// empty value appearing in NullFields will be sent to the server as
1628	// null. It is an error if a field in this list has a non-empty value.
1629	// This may be used to include null fields in Patch requests.
1630	NullFields []string `json:"-"`
1631}
1632
1633func (s *IosAppInfo) MarshalJSON() ([]byte, error) {
1634	type NoMethod IosAppInfo
1635	raw := NoMethod(*s)
1636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1637}
1638
1639// IosRoboTest: A Robo test for an iOS application.
1640type IosRoboTest struct {
1641}
1642
1643// IosTest: A iOS mobile test specification
1644type IosTest struct {
1645	// IosAppInfo: Information about the application under test.
1646	IosAppInfo *IosAppInfo `json:"iosAppInfo,omitempty"`
1647
1648	// IosRoboTest: An iOS Robo test.
1649	IosRoboTest *IosRoboTest `json:"iosRoboTest,omitempty"`
1650
1651	// IosTestLoop: An iOS test loop.
1652	IosTestLoop *IosTestLoop `json:"iosTestLoop,omitempty"`
1653
1654	// IosXcTest: An iOS XCTest.
1655	IosXcTest *IosXcTest `json:"iosXcTest,omitempty"`
1656
1657	// TestTimeout: Max time a test is allowed to run before it is
1658	// automatically cancelled.
1659	TestTimeout *Duration `json:"testTimeout,omitempty"`
1660
1661	// ForceSendFields is a list of field names (e.g. "IosAppInfo") to
1662	// unconditionally include in API requests. By default, fields with
1663	// empty values are omitted from API requests. However, any non-pointer,
1664	// non-interface field appearing in ForceSendFields will be sent to the
1665	// server regardless of whether the field is empty or not. This may be
1666	// used to include empty fields in Patch requests.
1667	ForceSendFields []string `json:"-"`
1668
1669	// NullFields is a list of field names (e.g. "IosAppInfo") to include in
1670	// API requests with the JSON null value. By default, fields with empty
1671	// values are omitted from API requests. However, any field with an
1672	// empty value appearing in NullFields will be sent to the server as
1673	// null. It is an error if a field in this list has a non-empty value.
1674	// This may be used to include null fields in Patch requests.
1675	NullFields []string `json:"-"`
1676}
1677
1678func (s *IosTest) MarshalJSON() ([]byte, error) {
1679	type NoMethod IosTest
1680	raw := NoMethod(*s)
1681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1682}
1683
1684// IosTestLoop: A game loop test of an iOS application.
1685type IosTestLoop struct {
1686	// BundleId: Bundle ID of the app.
1687	BundleId string `json:"bundleId,omitempty"`
1688
1689	// ForceSendFields is a list of field names (e.g. "BundleId") to
1690	// unconditionally include in API requests. By default, fields with
1691	// empty values are omitted from API requests. However, any non-pointer,
1692	// non-interface field appearing in ForceSendFields will be sent to the
1693	// server regardless of whether the field is empty or not. This may be
1694	// used to include empty fields in Patch requests.
1695	ForceSendFields []string `json:"-"`
1696
1697	// NullFields is a list of field names (e.g. "BundleId") to include in
1698	// API requests with the JSON null value. By default, fields with empty
1699	// values are omitted from API requests. However, any field with an
1700	// empty value appearing in NullFields will be sent to the server as
1701	// null. It is an error if a field in this list has a non-empty value.
1702	// This may be used to include null fields in Patch requests.
1703	NullFields []string `json:"-"`
1704}
1705
1706func (s *IosTestLoop) MarshalJSON() ([]byte, error) {
1707	type NoMethod IosTestLoop
1708	raw := NoMethod(*s)
1709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1710}
1711
1712// IosXcTest: A test of an iOS application that uses the XCTest
1713// framework.
1714type IosXcTest struct {
1715	// BundleId: Bundle ID of the app.
1716	BundleId string `json:"bundleId,omitempty"`
1717
1718	// XcodeVersion: Xcode version that the test was run with.
1719	XcodeVersion string `json:"xcodeVersion,omitempty"`
1720
1721	// ForceSendFields is a list of field names (e.g. "BundleId") to
1722	// unconditionally include in API requests. By default, fields with
1723	// empty values are omitted from API requests. However, any non-pointer,
1724	// non-interface field appearing in ForceSendFields will be sent to the
1725	// server regardless of whether the field is empty or not. This may be
1726	// used to include empty fields in Patch requests.
1727	ForceSendFields []string `json:"-"`
1728
1729	// NullFields is a list of field names (e.g. "BundleId") to include in
1730	// API requests with the JSON null value. By default, fields with empty
1731	// values are omitted from API requests. However, any field with an
1732	// empty value appearing in NullFields will be sent to the server as
1733	// null. It is an error if a field in this list has a non-empty value.
1734	// This may be used to include null fields in Patch requests.
1735	NullFields []string `json:"-"`
1736}
1737
1738func (s *IosXcTest) MarshalJSON() ([]byte, error) {
1739	type NoMethod IosXcTest
1740	raw := NoMethod(*s)
1741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1742}
1743
1744// LauncherActivityNotFound: Failed to find the launcher activity of an
1745// app.
1746type LauncherActivityNotFound struct {
1747}
1748
1749// ListEnvironmentsResponse: Response message for
1750// EnvironmentService.ListEnvironments.
1751type ListEnvironmentsResponse struct {
1752	// Environments: Environments. Always set.
1753	Environments []*Environment `json:"environments,omitempty"`
1754
1755	// ExecutionId: A Execution id Always set.
1756	ExecutionId string `json:"executionId,omitempty"`
1757
1758	// HistoryId: A History id. Always set.
1759	HistoryId string `json:"historyId,omitempty"`
1760
1761	// NextPageToken: A continuation token to resume the query at the next
1762	// item. Will only be set if there are more Environments to fetch.
1763	NextPageToken string `json:"nextPageToken,omitempty"`
1764
1765	// ProjectId: A Project id. Always set.
1766	ProjectId string `json:"projectId,omitempty"`
1767
1768	// ServerResponse contains the HTTP response code and headers from the
1769	// server.
1770	googleapi.ServerResponse `json:"-"`
1771
1772	// ForceSendFields is a list of field names (e.g. "Environments") to
1773	// unconditionally include in API requests. By default, fields with
1774	// empty values are omitted from API requests. However, any non-pointer,
1775	// non-interface field appearing in ForceSendFields will be sent to the
1776	// server regardless of whether the field is empty or not. This may be
1777	// used to include empty fields in Patch requests.
1778	ForceSendFields []string `json:"-"`
1779
1780	// NullFields is a list of field names (e.g. "Environments") to include
1781	// in API requests with the JSON null value. By default, fields with
1782	// empty values are omitted from API requests. However, any field with
1783	// an empty value appearing in NullFields will be sent to the server as
1784	// null. It is an error if a field in this list has a non-empty value.
1785	// This may be used to include null fields in Patch requests.
1786	NullFields []string `json:"-"`
1787}
1788
1789func (s *ListEnvironmentsResponse) MarshalJSON() ([]byte, error) {
1790	type NoMethod ListEnvironmentsResponse
1791	raw := NoMethod(*s)
1792	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1793}
1794
1795type ListExecutionsResponse struct {
1796	// Executions: Executions. Always set.
1797	Executions []*Execution `json:"executions,omitempty"`
1798
1799	// NextPageToken: A continuation token to resume the query at the next
1800	// item. Will only be set if there are more Executions to fetch.
1801	NextPageToken string `json:"nextPageToken,omitempty"`
1802
1803	// ServerResponse contains the HTTP response code and headers from the
1804	// server.
1805	googleapi.ServerResponse `json:"-"`
1806
1807	// ForceSendFields is a list of field names (e.g. "Executions") to
1808	// unconditionally include in API requests. By default, fields with
1809	// empty values are omitted from API requests. However, any non-pointer,
1810	// non-interface field appearing in ForceSendFields will be sent to the
1811	// server regardless of whether the field is empty or not. This may be
1812	// used to include empty fields in Patch requests.
1813	ForceSendFields []string `json:"-"`
1814
1815	// NullFields is a list of field names (e.g. "Executions") to include in
1816	// API requests with the JSON null value. By default, fields with empty
1817	// values are omitted from API requests. However, any field with an
1818	// empty value appearing in NullFields will be sent to the server as
1819	// null. It is an error if a field in this list has a non-empty value.
1820	// This may be used to include null fields in Patch requests.
1821	NullFields []string `json:"-"`
1822}
1823
1824func (s *ListExecutionsResponse) MarshalJSON() ([]byte, error) {
1825	type NoMethod ListExecutionsResponse
1826	raw := NoMethod(*s)
1827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1828}
1829
1830// ListHistoriesResponse: Response message for HistoryService.List
1831type ListHistoriesResponse struct {
1832	// Histories: Histories.
1833	Histories []*History `json:"histories,omitempty"`
1834
1835	// NextPageToken: A continuation token to resume the query at the next
1836	// item. Will only be set if there are more histories to fetch. Tokens
1837	// are valid for up to one hour from the time of the first list request.
1838	// For instance, if you make a list request at 1PM and use the token
1839	// from this first request 10 minutes later, the token from this second
1840	// response will only be valid for 50 minutes.
1841	NextPageToken string `json:"nextPageToken,omitempty"`
1842
1843	// ServerResponse contains the HTTP response code and headers from the
1844	// server.
1845	googleapi.ServerResponse `json:"-"`
1846
1847	// ForceSendFields is a list of field names (e.g. "Histories") to
1848	// unconditionally include in API requests. By default, fields with
1849	// empty values are omitted from API requests. However, any non-pointer,
1850	// non-interface field appearing in ForceSendFields will be sent to the
1851	// server regardless of whether the field is empty or not. This may be
1852	// used to include empty fields in Patch requests.
1853	ForceSendFields []string `json:"-"`
1854
1855	// NullFields is a list of field names (e.g. "Histories") to include in
1856	// API requests with the JSON null value. By default, fields with empty
1857	// values are omitted from API requests. However, any field with an
1858	// empty value appearing in NullFields will be sent to the server as
1859	// null. It is an error if a field in this list has a non-empty value.
1860	// This may be used to include null fields in Patch requests.
1861	NullFields []string `json:"-"`
1862}
1863
1864func (s *ListHistoriesResponse) MarshalJSON() ([]byte, error) {
1865	type NoMethod ListHistoriesResponse
1866	raw := NoMethod(*s)
1867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1868}
1869
1870type ListPerfSampleSeriesResponse struct {
1871	// PerfSampleSeries: The resulting PerfSampleSeries sorted by id
1872	PerfSampleSeries []*PerfSampleSeries `json:"perfSampleSeries,omitempty"`
1873
1874	// ServerResponse contains the HTTP response code and headers from the
1875	// server.
1876	googleapi.ServerResponse `json:"-"`
1877
1878	// ForceSendFields is a list of field names (e.g. "PerfSampleSeries") to
1879	// unconditionally include in API requests. By default, fields with
1880	// empty values are omitted from API requests. However, any non-pointer,
1881	// non-interface field appearing in ForceSendFields will be sent to the
1882	// server regardless of whether the field is empty or not. This may be
1883	// used to include empty fields in Patch requests.
1884	ForceSendFields []string `json:"-"`
1885
1886	// NullFields is a list of field names (e.g. "PerfSampleSeries") to
1887	// include in API requests with the JSON null value. By default, fields
1888	// with empty values are omitted from API requests. However, any field
1889	// with an empty value appearing in NullFields will be sent to the
1890	// server as null. It is an error if a field in this list has a
1891	// non-empty value. This may be used to include null fields in Patch
1892	// requests.
1893	NullFields []string `json:"-"`
1894}
1895
1896func (s *ListPerfSampleSeriesResponse) MarshalJSON() ([]byte, error) {
1897	type NoMethod ListPerfSampleSeriesResponse
1898	raw := NoMethod(*s)
1899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1900}
1901
1902type ListPerfSamplesResponse struct {
1903	// NextPageToken: Optional, returned if result size exceeds the page
1904	// size specified in the request (or the default page size, 500, if
1905	// unspecified). It indicates the last sample timestamp to be used as
1906	// page_token in subsequent request
1907	NextPageToken string `json:"nextPageToken,omitempty"`
1908
1909	PerfSamples []*PerfSample `json:"perfSamples,omitempty"`
1910
1911	// ServerResponse contains the HTTP response code and headers from the
1912	// server.
1913	googleapi.ServerResponse `json:"-"`
1914
1915	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1916	// unconditionally include in API requests. By default, fields with
1917	// empty values are omitted from API requests. However, any non-pointer,
1918	// non-interface field appearing in ForceSendFields will be sent to the
1919	// server regardless of whether the field is empty or not. This may be
1920	// used to include empty fields in Patch requests.
1921	ForceSendFields []string `json:"-"`
1922
1923	// NullFields is a list of field names (e.g. "NextPageToken") to include
1924	// in API requests with the JSON null value. By default, fields with
1925	// empty values are omitted from API requests. However, any field with
1926	// an empty value appearing in NullFields will be sent to the server as
1927	// null. It is an error if a field in this list has a non-empty value.
1928	// This may be used to include null fields in Patch requests.
1929	NullFields []string `json:"-"`
1930}
1931
1932func (s *ListPerfSamplesResponse) MarshalJSON() ([]byte, error) {
1933	type NoMethod ListPerfSamplesResponse
1934	raw := NoMethod(*s)
1935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1936}
1937
1938type ListScreenshotClustersResponse struct {
1939	// Clusters: The set of clusters associated with an execution Always set
1940	Clusters []*ScreenshotCluster `json:"clusters,omitempty"`
1941
1942	// ServerResponse contains the HTTP response code and headers from the
1943	// server.
1944	googleapi.ServerResponse `json:"-"`
1945
1946	// ForceSendFields is a list of field names (e.g. "Clusters") to
1947	// unconditionally include in API requests. By default, fields with
1948	// empty values are omitted from API requests. However, any non-pointer,
1949	// non-interface field appearing in ForceSendFields will be sent to the
1950	// server regardless of whether the field is empty or not. This may be
1951	// used to include empty fields in Patch requests.
1952	ForceSendFields []string `json:"-"`
1953
1954	// NullFields is a list of field names (e.g. "Clusters") to include in
1955	// API requests with the JSON null value. By default, fields with empty
1956	// values are omitted from API requests. However, any field with an
1957	// empty value appearing in NullFields will be sent to the server as
1958	// null. It is an error if a field in this list has a non-empty value.
1959	// This may be used to include null fields in Patch requests.
1960	NullFields []string `json:"-"`
1961}
1962
1963func (s *ListScreenshotClustersResponse) MarshalJSON() ([]byte, error) {
1964	type NoMethod ListScreenshotClustersResponse
1965	raw := NoMethod(*s)
1966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1967}
1968
1969// ListStepAccessibilityClustersResponse: Response message for
1970// AccessibilityService.ListStepAccessibilityClusters.
1971type ListStepAccessibilityClustersResponse struct {
1972	// Clusters: A sequence of accessibility suggestions, grouped into
1973	// clusters. Within the sequence, clusters that belong to the same
1974	// SuggestionCategory should be adjacent. Within each category, clusters
1975	// should be ordered by their SuggestionPriority (ERRORs first). The
1976	// categories should be ordered by their highest priority cluster.
1977	Clusters []*SuggestionClusterProto `json:"clusters,omitempty"`
1978
1979	// Name: A full resource name of the step. For example,
1980	// projects/my-project/histories/bh.1234567890abcdef/executions/
1981	// 1234567890123456789/steps/bs.1234567890abcdef Always presents.
1982	Name string `json:"name,omitempty"`
1983
1984	// ServerResponse contains the HTTP response code and headers from the
1985	// server.
1986	googleapi.ServerResponse `json:"-"`
1987
1988	// ForceSendFields is a list of field names (e.g. "Clusters") to
1989	// unconditionally include in API requests. By default, fields with
1990	// empty values are omitted from API requests. However, any non-pointer,
1991	// non-interface field appearing in ForceSendFields will be sent to the
1992	// server regardless of whether the field is empty or not. This may be
1993	// used to include empty fields in Patch requests.
1994	ForceSendFields []string `json:"-"`
1995
1996	// NullFields is a list of field names (e.g. "Clusters") to include in
1997	// API requests with the JSON null value. By default, fields with empty
1998	// values are omitted from API requests. However, any field with an
1999	// empty value appearing in NullFields will be sent to the server as
2000	// null. It is an error if a field in this list has a non-empty value.
2001	// This may be used to include null fields in Patch requests.
2002	NullFields []string `json:"-"`
2003}
2004
2005func (s *ListStepAccessibilityClustersResponse) MarshalJSON() ([]byte, error) {
2006	type NoMethod ListStepAccessibilityClustersResponse
2007	raw := NoMethod(*s)
2008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2009}
2010
2011// ListStepThumbnailsResponse: A response containing the thumbnails in a
2012// step.
2013type ListStepThumbnailsResponse struct {
2014	// NextPageToken: A continuation token to resume the query at the next
2015	// item. If set, indicates that there are more thumbnails to read, by
2016	// calling list again with this value in the page_token field.
2017	NextPageToken string `json:"nextPageToken,omitempty"`
2018
2019	// Thumbnails: A list of image data. Images are returned in a
2020	// deterministic order; they are ordered by these factors, in order of
2021	// importance: * First, by their associated test case. Images without a
2022	// test case are considered greater than images with one. * Second, by
2023	// their creation time. Images without a creation time are greater than
2024	// images with one. * Third, by the order in which they were added to
2025	// the step (by calls to CreateStep or UpdateStep).
2026	Thumbnails []*Image `json:"thumbnails,omitempty"`
2027
2028	// ServerResponse contains the HTTP response code and headers from the
2029	// server.
2030	googleapi.ServerResponse `json:"-"`
2031
2032	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2033	// unconditionally include in API requests. By default, fields with
2034	// empty values are omitted from API requests. However, any non-pointer,
2035	// non-interface field appearing in ForceSendFields will be sent to the
2036	// server regardless of whether the field is empty or not. This may be
2037	// used to include empty fields in Patch requests.
2038	ForceSendFields []string `json:"-"`
2039
2040	// NullFields is a list of field names (e.g. "NextPageToken") to include
2041	// in API requests with the JSON null value. By default, fields with
2042	// empty values are omitted from API requests. However, any field with
2043	// an empty value appearing in NullFields will be sent to the server as
2044	// null. It is an error if a field in this list has a non-empty value.
2045	// This may be used to include null fields in Patch requests.
2046	NullFields []string `json:"-"`
2047}
2048
2049func (s *ListStepThumbnailsResponse) MarshalJSON() ([]byte, error) {
2050	type NoMethod ListStepThumbnailsResponse
2051	raw := NoMethod(*s)
2052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2053}
2054
2055// ListStepsResponse: Response message for StepService.List.
2056type ListStepsResponse struct {
2057	// NextPageToken: A continuation token to resume the query at the next
2058	// item. If set, indicates that there are more steps to read, by calling
2059	// list again with this value in the page_token field.
2060	NextPageToken string `json:"nextPageToken,omitempty"`
2061
2062	// Steps: Steps.
2063	Steps []*Step `json:"steps,omitempty"`
2064
2065	// ServerResponse contains the HTTP response code and headers from the
2066	// server.
2067	googleapi.ServerResponse `json:"-"`
2068
2069	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2070	// unconditionally include in API requests. By default, fields with
2071	// empty values are omitted from API requests. However, any non-pointer,
2072	// non-interface field appearing in ForceSendFields will be sent to the
2073	// server regardless of whether the field is empty or not. This may be
2074	// used to include empty fields in Patch requests.
2075	ForceSendFields []string `json:"-"`
2076
2077	// NullFields is a list of field names (e.g. "NextPageToken") to include
2078	// in API requests with the JSON null value. By default, fields with
2079	// empty values are omitted from API requests. However, any field with
2080	// an empty value appearing in NullFields will be sent to the server as
2081	// null. It is an error if a field in this list has a non-empty value.
2082	// This may be used to include null fields in Patch requests.
2083	NullFields []string `json:"-"`
2084}
2085
2086func (s *ListStepsResponse) MarshalJSON() ([]byte, error) {
2087	type NoMethod ListStepsResponse
2088	raw := NoMethod(*s)
2089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2090}
2091
2092// ListTestCasesResponse: Response message for
2093// StepService.ListTestCases.
2094type ListTestCasesResponse struct {
2095	NextPageToken string `json:"nextPageToken,omitempty"`
2096
2097	// TestCases: List of test cases.
2098	TestCases []*TestCase `json:"testCases,omitempty"`
2099
2100	// ServerResponse contains the HTTP response code and headers from the
2101	// server.
2102	googleapi.ServerResponse `json:"-"`
2103
2104	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2105	// unconditionally include in API requests. By default, fields with
2106	// empty values are omitted from API requests. However, any non-pointer,
2107	// non-interface field appearing in ForceSendFields will be sent to the
2108	// server regardless of whether the field is empty or not. This may be
2109	// used to include empty fields in Patch requests.
2110	ForceSendFields []string `json:"-"`
2111
2112	// NullFields is a list of field names (e.g. "NextPageToken") to include
2113	// in API requests with the JSON null value. By default, fields with
2114	// empty values are omitted from API requests. However, any field with
2115	// an empty value appearing in NullFields will be sent to the server as
2116	// null. It is an error if a field in this list has a non-empty value.
2117	// This may be used to include null fields in Patch requests.
2118	NullFields []string `json:"-"`
2119}
2120
2121func (s *ListTestCasesResponse) MarshalJSON() ([]byte, error) {
2122	type NoMethod ListTestCasesResponse
2123	raw := NoMethod(*s)
2124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2125}
2126
2127// LogcatCollectionError: A warning that there were issues in logcat
2128// collection.
2129type LogcatCollectionError struct {
2130}
2131
2132// MatrixDimensionDefinition: One dimension of the matrix of different
2133// runs of a step.
2134type MatrixDimensionDefinition struct {
2135}
2136
2137type MemoryInfo struct {
2138	// MemoryCapInKibibyte: Maximum memory that can be allocated to the
2139	// process in KiB
2140	MemoryCapInKibibyte int64 `json:"memoryCapInKibibyte,omitempty,string"`
2141
2142	// MemoryTotalInKibibyte: Total memory available on the device in KiB
2143	MemoryTotalInKibibyte int64 `json:"memoryTotalInKibibyte,omitempty,string"`
2144
2145	// ForceSendFields is a list of field names (e.g. "MemoryCapInKibibyte")
2146	// to unconditionally include in API requests. By default, fields with
2147	// empty values are omitted from API requests. However, any non-pointer,
2148	// non-interface field appearing in ForceSendFields will be sent to the
2149	// server regardless of whether the field is empty or not. This may be
2150	// used to include empty fields in Patch requests.
2151	ForceSendFields []string `json:"-"`
2152
2153	// NullFields is a list of field names (e.g. "MemoryCapInKibibyte") to
2154	// include in API requests with the JSON null value. By default, fields
2155	// with empty values are omitted from API requests. However, any field
2156	// with an empty value appearing in NullFields will be sent to the
2157	// server as null. It is an error if a field in this list has a
2158	// non-empty value. This may be used to include null fields in Patch
2159	// requests.
2160	NullFields []string `json:"-"`
2161}
2162
2163func (s *MemoryInfo) MarshalJSON() ([]byte, error) {
2164	type NoMethod MemoryInfo
2165	raw := NoMethod(*s)
2166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2167}
2168
2169// MergedResult: Merged test result for environment. If the environment
2170// has only one step (no reruns or shards), then the merged result is
2171// the same as the step result. If the environment has multiple shards
2172// and/or reruns, then the results of shards and reruns that belong to
2173// the same environment are merged into one environment result.
2174type MergedResult struct {
2175	// Outcome: Outcome of the resource
2176	Outcome *Outcome `json:"outcome,omitempty"`
2177
2178	// State: State of the resource
2179	//
2180	// Possible values:
2181	//   "unknownState" - Should never be in this state. Exists for proto
2182	// deserialization backward compatibility.
2183	//   "pending" - The Execution/Step is created, ready to run, but not
2184	// running yet. If an Execution/Step is created without initial state,
2185	// it is assumed that the Execution/Step is in PENDING state.
2186	//   "inProgress" - The Execution/Step is in progress.
2187	//   "complete" - The finalized, immutable state. Steps/Executions in
2188	// this state cannot be modified.
2189	State string `json:"state,omitempty"`
2190
2191	// TestSuiteOverviews: The combined and rolled-up result of each test
2192	// suite that was run as part of this environment. Combining: When the
2193	// test cases from a suite are run in different steps (sharding), the
2194	// results are added back together in one overview. (e.g., if shard1 has
2195	// 2 failures and shard2 has 1 failure than the overview failure_count =
2196	// 3). Rollup: When test cases from the same suite are run multiple
2197	// times (flaky), the results are combined (e.g., if testcase1.run1
2198	// fails, testcase1.run2 passes, and both testcase2.run1 and
2199	// testcase2.run2 fail then the overview flaky_count = 1 and
2200	// failure_count = 1).
2201	TestSuiteOverviews []*TestSuiteOverview `json:"testSuiteOverviews,omitempty"`
2202
2203	// ForceSendFields is a list of field names (e.g. "Outcome") to
2204	// unconditionally include in API requests. By default, fields with
2205	// empty values are omitted from API requests. However, any non-pointer,
2206	// non-interface field appearing in ForceSendFields will be sent to the
2207	// server regardless of whether the field is empty or not. This may be
2208	// used to include empty fields in Patch requests.
2209	ForceSendFields []string `json:"-"`
2210
2211	// NullFields is a list of field names (e.g. "Outcome") to include in
2212	// API requests with the JSON null value. By default, fields with empty
2213	// values are omitted from API requests. However, any field with an
2214	// empty value appearing in NullFields will be sent to the server as
2215	// null. It is an error if a field in this list has a non-empty value.
2216	// This may be used to include null fields in Patch requests.
2217	NullFields []string `json:"-"`
2218}
2219
2220func (s *MergedResult) MarshalJSON() ([]byte, error) {
2221	type NoMethod MergedResult
2222	raw := NoMethod(*s)
2223	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2224}
2225
2226// MultiStep: Details when multiple steps are run with the same
2227// configuration as a group.
2228type MultiStep struct {
2229	// MultistepNumber: Unique int given to each step. Ranges from
2230	// 0(inclusive) to total number of steps(exclusive). The primary step is
2231	// 0.
2232	MultistepNumber int64 `json:"multistepNumber,omitempty"`
2233
2234	// PrimaryStep: Present if it is a primary (original) step.
2235	PrimaryStep *PrimaryStep `json:"primaryStep,omitempty"`
2236
2237	// PrimaryStepId: Step Id of the primary (original) step, which might be
2238	// this step.
2239	PrimaryStepId string `json:"primaryStepId,omitempty"`
2240
2241	// ForceSendFields is a list of field names (e.g. "MultistepNumber") to
2242	// unconditionally include in API requests. By default, fields with
2243	// empty values are omitted from API requests. However, any non-pointer,
2244	// non-interface field appearing in ForceSendFields will be sent to the
2245	// server regardless of whether the field is empty or not. This may be
2246	// used to include empty fields in Patch requests.
2247	ForceSendFields []string `json:"-"`
2248
2249	// NullFields is a list of field names (e.g. "MultistepNumber") to
2250	// include in API requests with the JSON null value. By default, fields
2251	// with empty values are omitted from API requests. However, any field
2252	// with an empty value appearing in NullFields will be sent to the
2253	// server as null. It is an error if a field in this list has a
2254	// non-empty value. This may be used to include null fields in Patch
2255	// requests.
2256	NullFields []string `json:"-"`
2257}
2258
2259func (s *MultiStep) MarshalJSON() ([]byte, error) {
2260	type NoMethod MultiStep
2261	raw := NoMethod(*s)
2262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2263}
2264
2265// NativeCrash: Additional details for a native crash.
2266type NativeCrash struct {
2267	// StackTrace: The stack trace of the native crash. Optional.
2268	StackTrace *StackTrace `json:"stackTrace,omitempty"`
2269
2270	// ForceSendFields is a list of field names (e.g. "StackTrace") to
2271	// unconditionally include in API requests. By default, fields with
2272	// empty values are omitted from API requests. However, any non-pointer,
2273	// non-interface field appearing in ForceSendFields will be sent to the
2274	// server regardless of whether the field is empty or not. This may be
2275	// used to include empty fields in Patch requests.
2276	ForceSendFields []string `json:"-"`
2277
2278	// NullFields is a list of field names (e.g. "StackTrace") to include in
2279	// API requests with the JSON null value. By default, fields with empty
2280	// values are omitted from API requests. However, any field with an
2281	// empty value appearing in NullFields will be sent to the server as
2282	// null. It is an error if a field in this list has a non-empty value.
2283	// This may be used to include null fields in Patch requests.
2284	NullFields []string `json:"-"`
2285}
2286
2287func (s *NativeCrash) MarshalJSON() ([]byte, error) {
2288	type NoMethod NativeCrash
2289	raw := NoMethod(*s)
2290	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2291}
2292
2293// NonSdkApi: A non-sdk API and examples of it being called along with
2294// other metadata See
2295// https://developer.android.com/distribute/best-practices/develop/restrictions-non-sdk-interfaces
2296type NonSdkApi struct {
2297	// ApiSignature: The signature of the Non-SDK API
2298	ApiSignature string `json:"apiSignature,omitempty"`
2299
2300	// ExampleStackTraces: Example stack traces of this API being called.
2301	ExampleStackTraces []string `json:"exampleStackTraces,omitempty"`
2302
2303	// Insights: Optional debugging insights for non-SDK API violations.
2304	Insights []*NonSdkApiInsight `json:"insights,omitempty"`
2305
2306	// InvocationCount: The total number of times this API was observed to
2307	// have been called.
2308	InvocationCount int64 `json:"invocationCount,omitempty"`
2309
2310	// List: Which list this API appears on
2311	//
2312	// Possible values:
2313	//   "NONE"
2314	//   "WHITE"
2315	//   "BLACK"
2316	//   "GREY"
2317	//   "GREY_MAX_O"
2318	//   "GREY_MAX_P"
2319	//   "GREY_MAX_Q"
2320	//   "GREY_MAX_R"
2321	List string `json:"list,omitempty"`
2322
2323	// ForceSendFields is a list of field names (e.g. "ApiSignature") to
2324	// unconditionally include in API requests. By default, fields with
2325	// empty values are omitted from API requests. However, any non-pointer,
2326	// non-interface field appearing in ForceSendFields will be sent to the
2327	// server regardless of whether the field is empty or not. This may be
2328	// used to include empty fields in Patch requests.
2329	ForceSendFields []string `json:"-"`
2330
2331	// NullFields is a list of field names (e.g. "ApiSignature") to include
2332	// in API requests with the JSON null value. By default, fields with
2333	// empty values are omitted from API requests. However, any field with
2334	// an empty value appearing in NullFields will be sent to the server as
2335	// null. It is an error if a field in this list has a non-empty value.
2336	// This may be used to include null fields in Patch requests.
2337	NullFields []string `json:"-"`
2338}
2339
2340func (s *NonSdkApi) MarshalJSON() ([]byte, error) {
2341	type NoMethod NonSdkApi
2342	raw := NoMethod(*s)
2343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2344}
2345
2346// NonSdkApiInsight: Non-SDK API insights (to address debugging
2347// solutions).
2348type NonSdkApiInsight struct {
2349	// ExampleTraceMessages: Optional sample stack traces, for which this
2350	// insight applies (there should be at least one).
2351	ExampleTraceMessages []string `json:"exampleTraceMessages,omitempty"`
2352
2353	// MatcherId: A unique ID, to be used for determining the effectiveness
2354	// of this particular insight in the context of a matcher. (required)
2355	MatcherId string `json:"matcherId,omitempty"`
2356
2357	// PendingGoogleUpdateInsight: An insight indicating that the hidden API
2358	// usage originates from a Google-provided library.
2359	PendingGoogleUpdateInsight *PendingGoogleUpdateInsight `json:"pendingGoogleUpdateInsight,omitempty"`
2360
2361	// UpgradeInsight: An insight indicating that the hidden API usage
2362	// originates from the use of a library that needs to be upgraded.
2363	UpgradeInsight *UpgradeInsight `json:"upgradeInsight,omitempty"`
2364
2365	// ForceSendFields is a list of field names (e.g.
2366	// "ExampleTraceMessages") to unconditionally include in API requests.
2367	// By default, fields with empty values are omitted from API requests.
2368	// However, any non-pointer, non-interface field appearing in
2369	// ForceSendFields will be sent to the server regardless of whether the
2370	// field is empty or not. This may be used to include empty fields in
2371	// Patch requests.
2372	ForceSendFields []string `json:"-"`
2373
2374	// NullFields is a list of field names (e.g. "ExampleTraceMessages") to
2375	// include in API requests with the JSON null value. By default, fields
2376	// with empty values are omitted from API requests. However, any field
2377	// with an empty value appearing in NullFields will be sent to the
2378	// server as null. It is an error if a field in this list has a
2379	// non-empty value. This may be used to include null fields in Patch
2380	// requests.
2381	NullFields []string `json:"-"`
2382}
2383
2384func (s *NonSdkApiInsight) MarshalJSON() ([]byte, error) {
2385	type NoMethod NonSdkApiInsight
2386	raw := NoMethod(*s)
2387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2388}
2389
2390// NonSdkApiUsageViolation: Additional details for a non-sdk API usage
2391// violation.
2392type NonSdkApiUsageViolation struct {
2393	// ApiSignatures: Signatures of a subset of those hidden API's.
2394	ApiSignatures []string `json:"apiSignatures,omitempty"`
2395
2396	// UniqueApis: Total number of unique hidden API's accessed.
2397	UniqueApis int64 `json:"uniqueApis,omitempty"`
2398
2399	// ForceSendFields is a list of field names (e.g. "ApiSignatures") to
2400	// unconditionally include in API requests. By default, fields with
2401	// empty values are omitted from API requests. However, any non-pointer,
2402	// non-interface field appearing in ForceSendFields will be sent to the
2403	// server regardless of whether the field is empty or not. This may be
2404	// used to include empty fields in Patch requests.
2405	ForceSendFields []string `json:"-"`
2406
2407	// NullFields is a list of field names (e.g. "ApiSignatures") to include
2408	// in API requests with the JSON null value. By default, fields with
2409	// empty values are omitted from API requests. However, any field with
2410	// an empty value appearing in NullFields will be sent to the server as
2411	// null. It is an error if a field in this list has a non-empty value.
2412	// This may be used to include null fields in Patch requests.
2413	NullFields []string `json:"-"`
2414}
2415
2416func (s *NonSdkApiUsageViolation) MarshalJSON() ([]byte, error) {
2417	type NoMethod NonSdkApiUsageViolation
2418	raw := NoMethod(*s)
2419	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2420}
2421
2422// NonSdkApiUsageViolationReport: Contains a summary and examples of
2423// non-sdk API usage violations.
2424type NonSdkApiUsageViolationReport struct {
2425	// ExampleApis: Examples of the detected API usages.
2426	ExampleApis []*NonSdkApi `json:"exampleApis,omitempty"`
2427
2428	// MinSdkVersion: Minimum API level required for the application to run.
2429	MinSdkVersion int64 `json:"minSdkVersion,omitempty"`
2430
2431	// TargetSdkVersion: Specifies the API Level on which the application is
2432	// designed to run.
2433	TargetSdkVersion int64 `json:"targetSdkVersion,omitempty"`
2434
2435	// UniqueApis: Total number of unique Non-SDK API's accessed.
2436	UniqueApis int64 `json:"uniqueApis,omitempty"`
2437
2438	// ForceSendFields is a list of field names (e.g. "ExampleApis") to
2439	// unconditionally include in API requests. By default, fields with
2440	// empty values are omitted from API requests. However, any non-pointer,
2441	// non-interface field appearing in ForceSendFields will be sent to the
2442	// server regardless of whether the field is empty or not. This may be
2443	// used to include empty fields in Patch requests.
2444	ForceSendFields []string `json:"-"`
2445
2446	// NullFields is a list of field names (e.g. "ExampleApis") to include
2447	// in API requests with the JSON null value. By default, fields with
2448	// empty values are omitted from API requests. However, any field with
2449	// an empty value appearing in NullFields will be sent to the server as
2450	// null. It is an error if a field in this list has a non-empty value.
2451	// This may be used to include null fields in Patch requests.
2452	NullFields []string `json:"-"`
2453}
2454
2455func (s *NonSdkApiUsageViolationReport) MarshalJSON() ([]byte, error) {
2456	type NoMethod NonSdkApiUsageViolationReport
2457	raw := NoMethod(*s)
2458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2459}
2460
2461// Outcome: Interprets a result so that humans and machines can act on
2462// it.
2463type Outcome struct {
2464	// FailureDetail: More information about a FAILURE outcome. Returns
2465	// INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
2466	// Optional
2467	FailureDetail *FailureDetail `json:"failureDetail,omitempty"`
2468
2469	// InconclusiveDetail: More information about an INCONCLUSIVE outcome.
2470	// Returns INVALID_ARGUMENT if this field is set but the summary is not
2471	// INCONCLUSIVE. Optional
2472	InconclusiveDetail *InconclusiveDetail `json:"inconclusiveDetail,omitempty"`
2473
2474	// SkippedDetail: More information about a SKIPPED outcome. Returns
2475	// INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
2476	// Optional
2477	SkippedDetail *SkippedDetail `json:"skippedDetail,omitempty"`
2478
2479	// SuccessDetail: More information about a SUCCESS outcome. Returns
2480	// INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
2481	// Optional
2482	SuccessDetail *SuccessDetail `json:"successDetail,omitempty"`
2483
2484	// Summary: The simplest way to interpret a result. Required
2485	//
2486	// Possible values:
2487	//   "unset" - Do not use. For proto versioning only.
2488	//   "success" - The test matrix run was successful, for instance: - All
2489	// the test cases passed. - Robo did not detect a crash of the
2490	// application under test.
2491	//   "failure" - A run failed, for instance: - One or more test case
2492	// failed. - A test timed out. - The application under test crashed.
2493	//   "inconclusive" - Something unexpected happened. The run should
2494	// still be considered unsuccessful but this is likely a transient
2495	// problem and re-running the test might be successful.
2496	//   "skipped" - All tests were skipped, for instance: - All device
2497	// configurations were incompatible.
2498	//   "flaky" - A group of steps that were run with the same
2499	// configuration had both failure and success outcomes.
2500	Summary string `json:"summary,omitempty"`
2501
2502	// ForceSendFields is a list of field names (e.g. "FailureDetail") to
2503	// unconditionally include in API requests. By default, fields with
2504	// empty values are omitted from API requests. However, any non-pointer,
2505	// non-interface field appearing in ForceSendFields will be sent to the
2506	// server regardless of whether the field is empty or not. This may be
2507	// used to include empty fields in Patch requests.
2508	ForceSendFields []string `json:"-"`
2509
2510	// NullFields is a list of field names (e.g. "FailureDetail") to include
2511	// in API requests with the JSON null value. By default, fields with
2512	// empty values are omitted from API requests. However, any field with
2513	// an empty value appearing in NullFields will be sent to the server as
2514	// null. It is an error if a field in this list has a non-empty value.
2515	// This may be used to include null fields in Patch requests.
2516	NullFields []string `json:"-"`
2517}
2518
2519func (s *Outcome) MarshalJSON() ([]byte, error) {
2520	type NoMethod Outcome
2521	raw := NoMethod(*s)
2522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2523}
2524
2525// OverlappingUIElements: A warning that Robo encountered a screen that
2526// has overlapping clickable elements; this may indicate a potential UI
2527// issue.
2528type OverlappingUIElements struct {
2529	// ResourceName: Resource names of the overlapping screen elements
2530	ResourceName []string `json:"resourceName,omitempty"`
2531
2532	// ScreenId: The screen id of the elements
2533	ScreenId string `json:"screenId,omitempty"`
2534
2535	// ForceSendFields is a list of field names (e.g. "ResourceName") to
2536	// unconditionally include in API requests. By default, fields with
2537	// empty values are omitted from API requests. However, any non-pointer,
2538	// non-interface field appearing in ForceSendFields will be sent to the
2539	// server regardless of whether the field is empty or not. This may be
2540	// used to include empty fields in Patch requests.
2541	ForceSendFields []string `json:"-"`
2542
2543	// NullFields is a list of field names (e.g. "ResourceName") to include
2544	// in API requests with the JSON null value. By default, fields with
2545	// empty values are omitted from API requests. However, any field with
2546	// an empty value appearing in NullFields will be sent to the server as
2547	// null. It is an error if a field in this list has a non-empty value.
2548	// This may be used to include null fields in Patch requests.
2549	NullFields []string `json:"-"`
2550}
2551
2552func (s *OverlappingUIElements) MarshalJSON() ([]byte, error) {
2553	type NoMethod OverlappingUIElements
2554	raw := NoMethod(*s)
2555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2556}
2557
2558// PendingGoogleUpdateInsight: This insight indicates that the hidden
2559// API usage originates from a Google-provided library. Users need not
2560// take any action.
2561type PendingGoogleUpdateInsight struct {
2562	// NameOfGoogleLibrary: The name of the Google-provided library with the
2563	// non-SDK API dependency.
2564	NameOfGoogleLibrary string `json:"nameOfGoogleLibrary,omitempty"`
2565
2566	// ForceSendFields is a list of field names (e.g. "NameOfGoogleLibrary")
2567	// to unconditionally include in API requests. By default, fields with
2568	// empty values are omitted from API requests. However, any non-pointer,
2569	// non-interface field appearing in ForceSendFields will be sent to the
2570	// server regardless of whether the field is empty or not. This may be
2571	// used to include empty fields in Patch requests.
2572	ForceSendFields []string `json:"-"`
2573
2574	// NullFields is a list of field names (e.g. "NameOfGoogleLibrary") to
2575	// include in API requests with the JSON null value. By default, fields
2576	// with empty values are omitted from API requests. However, any field
2577	// with an empty value appearing in NullFields will be sent to the
2578	// server as null. It is an error if a field in this list has a
2579	// non-empty value. This may be used to include null fields in Patch
2580	// requests.
2581	NullFields []string `json:"-"`
2582}
2583
2584func (s *PendingGoogleUpdateInsight) MarshalJSON() ([]byte, error) {
2585	type NoMethod PendingGoogleUpdateInsight
2586	raw := NoMethod(*s)
2587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2588}
2589
2590// PerfEnvironment: Encapsulates performance environment info
2591type PerfEnvironment struct {
2592	// CpuInfo: CPU related environment info
2593	CpuInfo *CPUInfo `json:"cpuInfo,omitempty"`
2594
2595	// MemoryInfo: Memory related environment info
2596	MemoryInfo *MemoryInfo `json:"memoryInfo,omitempty"`
2597
2598	// ForceSendFields is a list of field names (e.g. "CpuInfo") to
2599	// unconditionally include in API requests. By default, fields with
2600	// empty values are omitted from API requests. However, any non-pointer,
2601	// non-interface field appearing in ForceSendFields will be sent to the
2602	// server regardless of whether the field is empty or not. This may be
2603	// used to include empty fields in Patch requests.
2604	ForceSendFields []string `json:"-"`
2605
2606	// NullFields is a list of field names (e.g. "CpuInfo") to include in
2607	// API requests with the JSON null value. By default, fields with empty
2608	// values are omitted from API requests. However, any field with an
2609	// empty value appearing in NullFields will be sent to the server as
2610	// null. It is an error if a field in this list has a non-empty value.
2611	// This may be used to include null fields in Patch requests.
2612	NullFields []string `json:"-"`
2613}
2614
2615func (s *PerfEnvironment) MarshalJSON() ([]byte, error) {
2616	type NoMethod PerfEnvironment
2617	raw := NoMethod(*s)
2618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2619}
2620
2621// PerfMetricsSummary: A summary of perf metrics collected and
2622// performance environment info
2623type PerfMetricsSummary struct {
2624	AppStartTime *AppStartTime `json:"appStartTime,omitempty"`
2625
2626	// ExecutionId: A tool results execution ID. @OutputOnly
2627	ExecutionId string `json:"executionId,omitempty"`
2628
2629	// GraphicsStats: Graphics statistics for the entire run. Statistics are
2630	// reset at the beginning of the run and collected at the end of the
2631	// run.
2632	GraphicsStats *GraphicsStats `json:"graphicsStats,omitempty"`
2633
2634	// HistoryId: A tool results history ID. @OutputOnly
2635	HistoryId string `json:"historyId,omitempty"`
2636
2637	// PerfEnvironment: Describes the environment in which the performance
2638	// metrics were collected
2639	PerfEnvironment *PerfEnvironment `json:"perfEnvironment,omitempty"`
2640
2641	// PerfMetrics: Set of resource collected
2642	//
2643	// Possible values:
2644	//   "perfMetricTypeUnspecified"
2645	//   "memory"
2646	//   "cpu"
2647	//   "network"
2648	//   "graphics"
2649	PerfMetrics []string `json:"perfMetrics,omitempty"`
2650
2651	// ProjectId: The cloud project @OutputOnly
2652	ProjectId string `json:"projectId,omitempty"`
2653
2654	// StepId: A tool results step ID. @OutputOnly
2655	StepId string `json:"stepId,omitempty"`
2656
2657	// ServerResponse contains the HTTP response code and headers from the
2658	// server.
2659	googleapi.ServerResponse `json:"-"`
2660
2661	// ForceSendFields is a list of field names (e.g. "AppStartTime") to
2662	// unconditionally include in API requests. By default, fields with
2663	// empty values are omitted from API requests. However, any non-pointer,
2664	// non-interface field appearing in ForceSendFields will be sent to the
2665	// server regardless of whether the field is empty or not. This may be
2666	// used to include empty fields in Patch requests.
2667	ForceSendFields []string `json:"-"`
2668
2669	// NullFields is a list of field names (e.g. "AppStartTime") to include
2670	// in API requests with the JSON null value. By default, fields with
2671	// empty values are omitted from API requests. However, any field with
2672	// an empty value appearing in NullFields will be sent to the server as
2673	// null. It is an error if a field in this list has a non-empty value.
2674	// This may be used to include null fields in Patch requests.
2675	NullFields []string `json:"-"`
2676}
2677
2678func (s *PerfMetricsSummary) MarshalJSON() ([]byte, error) {
2679	type NoMethod PerfMetricsSummary
2680	raw := NoMethod(*s)
2681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2682}
2683
2684// PerfSample: Resource representing a single performance measure or
2685// data point
2686type PerfSample struct {
2687	// SampleTime: Timestamp of collection.
2688	SampleTime *Timestamp `json:"sampleTime,omitempty"`
2689
2690	// Value: Value observed
2691	Value float64 `json:"value,omitempty"`
2692
2693	// ForceSendFields is a list of field names (e.g. "SampleTime") to
2694	// unconditionally include in API requests. By default, fields with
2695	// empty values are omitted from API requests. However, any non-pointer,
2696	// non-interface field appearing in ForceSendFields will be sent to the
2697	// server regardless of whether the field is empty or not. This may be
2698	// used to include empty fields in Patch requests.
2699	ForceSendFields []string `json:"-"`
2700
2701	// NullFields is a list of field names (e.g. "SampleTime") to include in
2702	// API requests with the JSON null value. By default, fields with empty
2703	// values are omitted from API requests. However, any field with an
2704	// empty value appearing in NullFields will be sent to the server as
2705	// null. It is an error if a field in this list has a non-empty value.
2706	// This may be used to include null fields in Patch requests.
2707	NullFields []string `json:"-"`
2708}
2709
2710func (s *PerfSample) MarshalJSON() ([]byte, error) {
2711	type NoMethod PerfSample
2712	raw := NoMethod(*s)
2713	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2714}
2715
2716func (s *PerfSample) UnmarshalJSON(data []byte) error {
2717	type NoMethod PerfSample
2718	var s1 struct {
2719		Value gensupport.JSONFloat64 `json:"value"`
2720		*NoMethod
2721	}
2722	s1.NoMethod = (*NoMethod)(s)
2723	if err := json.Unmarshal(data, &s1); err != nil {
2724		return err
2725	}
2726	s.Value = float64(s1.Value)
2727	return nil
2728}
2729
2730// PerfSampleSeries: Resource representing a collection of performance
2731// samples (or data points)
2732type PerfSampleSeries struct {
2733	// BasicPerfSampleSeries: Basic series represented by a line chart
2734	BasicPerfSampleSeries *BasicPerfSampleSeries `json:"basicPerfSampleSeries,omitempty"`
2735
2736	// ExecutionId: A tool results execution ID. @OutputOnly
2737	ExecutionId string `json:"executionId,omitempty"`
2738
2739	// HistoryId: A tool results history ID. @OutputOnly
2740	HistoryId string `json:"historyId,omitempty"`
2741
2742	// ProjectId: The cloud project @OutputOnly
2743	ProjectId string `json:"projectId,omitempty"`
2744
2745	// SampleSeriesId: A sample series id @OutputOnly
2746	SampleSeriesId string `json:"sampleSeriesId,omitempty"`
2747
2748	// StepId: A tool results step ID. @OutputOnly
2749	StepId string `json:"stepId,omitempty"`
2750
2751	// ServerResponse contains the HTTP response code and headers from the
2752	// server.
2753	googleapi.ServerResponse `json:"-"`
2754
2755	// ForceSendFields is a list of field names (e.g.
2756	// "BasicPerfSampleSeries") to unconditionally include in API requests.
2757	// By default, fields with empty values are omitted from API requests.
2758	// However, any non-pointer, non-interface field appearing in
2759	// ForceSendFields will be sent to the server regardless of whether the
2760	// field is empty or not. This may be used to include empty fields in
2761	// Patch requests.
2762	ForceSendFields []string `json:"-"`
2763
2764	// NullFields is a list of field names (e.g. "BasicPerfSampleSeries") to
2765	// include in API requests with the JSON null value. By default, fields
2766	// with empty values are omitted from API requests. However, any field
2767	// with an empty value appearing in NullFields will be sent to the
2768	// server as null. It is an error if a field in this list has a
2769	// non-empty value. This may be used to include null fields in Patch
2770	// requests.
2771	NullFields []string `json:"-"`
2772}
2773
2774func (s *PerfSampleSeries) MarshalJSON() ([]byte, error) {
2775	type NoMethod PerfSampleSeries
2776	raw := NoMethod(*s)
2777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2778}
2779
2780// PerformedGoogleLogin: A notification that Robo signed in with Google.
2781type PerformedGoogleLogin struct {
2782}
2783
2784// PerformedMonkeyActions: A notification that Robo performed some
2785// monkey actions.
2786type PerformedMonkeyActions struct {
2787	// TotalActions: The total number of monkey actions performed during the
2788	// crawl.
2789	TotalActions int64 `json:"totalActions,omitempty"`
2790
2791	// ForceSendFields is a list of field names (e.g. "TotalActions") to
2792	// unconditionally include in API requests. By default, fields with
2793	// empty values are omitted from API requests. However, any non-pointer,
2794	// non-interface field appearing in ForceSendFields will be sent to the
2795	// server regardless of whether the field is empty or not. This may be
2796	// used to include empty fields in Patch requests.
2797	ForceSendFields []string `json:"-"`
2798
2799	// NullFields is a list of field names (e.g. "TotalActions") to include
2800	// in API requests with the JSON null value. By default, fields with
2801	// empty values are omitted from API requests. However, any field with
2802	// an empty value appearing in NullFields will be sent to the server as
2803	// null. It is an error if a field in this list has a non-empty value.
2804	// This may be used to include null fields in Patch requests.
2805	NullFields []string `json:"-"`
2806}
2807
2808func (s *PerformedMonkeyActions) MarshalJSON() ([]byte, error) {
2809	type NoMethod PerformedMonkeyActions
2810	raw := NoMethod(*s)
2811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2812}
2813
2814// PrimaryStep: Stores rollup test status of multiple steps that were
2815// run as a group and outcome of each individual step.
2816type PrimaryStep struct {
2817	// IndividualOutcome: Step Id and outcome of each individual step.
2818	IndividualOutcome []*IndividualOutcome `json:"individualOutcome,omitempty"`
2819
2820	// RollUp: Rollup test status of multiple steps that were run with the
2821	// same configuration as a group.
2822	//
2823	// Possible values:
2824	//   "unset" - Do not use. For proto versioning only.
2825	//   "success" - The test matrix run was successful, for instance: - All
2826	// the test cases passed. - Robo did not detect a crash of the
2827	// application under test.
2828	//   "failure" - A run failed, for instance: - One or more test case
2829	// failed. - A test timed out. - The application under test crashed.
2830	//   "inconclusive" - Something unexpected happened. The run should
2831	// still be considered unsuccessful but this is likely a transient
2832	// problem and re-running the test might be successful.
2833	//   "skipped" - All tests were skipped, for instance: - All device
2834	// configurations were incompatible.
2835	//   "flaky" - A group of steps that were run with the same
2836	// configuration had both failure and success outcomes.
2837	RollUp string `json:"rollUp,omitempty"`
2838
2839	// ForceSendFields is a list of field names (e.g. "IndividualOutcome")
2840	// to unconditionally include in API requests. By default, fields with
2841	// empty values are omitted from API requests. However, any non-pointer,
2842	// non-interface field appearing in ForceSendFields will be sent to the
2843	// server regardless of whether the field is empty or not. This may be
2844	// used to include empty fields in Patch requests.
2845	ForceSendFields []string `json:"-"`
2846
2847	// NullFields is a list of field names (e.g. "IndividualOutcome") to
2848	// include in API requests with the JSON null value. By default, fields
2849	// with empty values are omitted from API requests. However, any field
2850	// with an empty value appearing in NullFields will be sent to the
2851	// server as null. It is an error if a field in this list has a
2852	// non-empty value. This may be used to include null fields in Patch
2853	// requests.
2854	NullFields []string `json:"-"`
2855}
2856
2857func (s *PrimaryStep) MarshalJSON() ([]byte, error) {
2858	type NoMethod PrimaryStep
2859	raw := NoMethod(*s)
2860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2861}
2862
2863// ProjectSettings: Per-project settings for the Tool Results service.
2864type ProjectSettings struct {
2865	// DefaultBucket: The name of the Google Cloud Storage bucket to which
2866	// results are written. By default, this is unset. In update request:
2867	// optional In response: optional
2868	DefaultBucket string `json:"defaultBucket,omitempty"`
2869
2870	// Name: The name of the project's settings. Always of the form:
2871	// projects/{project-id}/settings In update request: never set In
2872	// response: always set
2873	Name string `json:"name,omitempty"`
2874
2875	// ServerResponse contains the HTTP response code and headers from the
2876	// server.
2877	googleapi.ServerResponse `json:"-"`
2878
2879	// ForceSendFields is a list of field names (e.g. "DefaultBucket") to
2880	// unconditionally include in API requests. By default, fields with
2881	// empty values are omitted from API requests. However, any non-pointer,
2882	// non-interface field appearing in ForceSendFields will be sent to the
2883	// server regardless of whether the field is empty or not. This may be
2884	// used to include empty fields in Patch requests.
2885	ForceSendFields []string `json:"-"`
2886
2887	// NullFields is a list of field names (e.g. "DefaultBucket") to include
2888	// in API requests with the JSON null value. By default, fields with
2889	// empty values are omitted from API requests. However, any field with
2890	// an empty value appearing in NullFields will be sent to the server as
2891	// null. It is an error if a field in this list has a non-empty value.
2892	// This may be used to include null fields in Patch requests.
2893	NullFields []string `json:"-"`
2894}
2895
2896func (s *ProjectSettings) MarshalJSON() ([]byte, error) {
2897	type NoMethod ProjectSettings
2898	raw := NoMethod(*s)
2899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2900}
2901
2902// PublishXunitXmlFilesRequest: Request message for
2903// StepService.PublishXunitXmlFiles.
2904type PublishXunitXmlFilesRequest struct {
2905	// XunitXmlFiles: URI of the Xunit XML files to publish. The maximum
2906	// size of the file this reference is pointing to is 50MB. Required.
2907	XunitXmlFiles []*FileReference `json:"xunitXmlFiles,omitempty"`
2908
2909	// ForceSendFields is a list of field names (e.g. "XunitXmlFiles") to
2910	// unconditionally include in API requests. By default, fields with
2911	// empty values are omitted from API requests. However, any non-pointer,
2912	// non-interface field appearing in ForceSendFields will be sent to the
2913	// server regardless of whether the field is empty or not. This may be
2914	// used to include empty fields in Patch requests.
2915	ForceSendFields []string `json:"-"`
2916
2917	// NullFields is a list of field names (e.g. "XunitXmlFiles") to include
2918	// in API requests with the JSON null value. By default, fields with
2919	// empty values are omitted from API requests. However, any field with
2920	// an empty value appearing in NullFields will be sent to the server as
2921	// null. It is an error if a field in this list has a non-empty value.
2922	// This may be used to include null fields in Patch requests.
2923	NullFields []string `json:"-"`
2924}
2925
2926func (s *PublishXunitXmlFilesRequest) MarshalJSON() ([]byte, error) {
2927	type NoMethod PublishXunitXmlFilesRequest
2928	raw := NoMethod(*s)
2929	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2930}
2931
2932// RegionProto: A rectangular region.
2933type RegionProto struct {
2934	// HeightPx: The height, in pixels. Always set.
2935	HeightPx int64 `json:"heightPx,omitempty"`
2936
2937	// LeftPx: The left side of the rectangle, in pixels. Always set.
2938	LeftPx int64 `json:"leftPx,omitempty"`
2939
2940	// TopPx: The top of the rectangle, in pixels. Always set.
2941	TopPx int64 `json:"topPx,omitempty"`
2942
2943	// WidthPx: The width, in pixels. Always set.
2944	WidthPx int64 `json:"widthPx,omitempty"`
2945
2946	// ForceSendFields is a list of field names (e.g. "HeightPx") to
2947	// unconditionally include in API requests. By default, fields with
2948	// empty values are omitted from API requests. However, any non-pointer,
2949	// non-interface field appearing in ForceSendFields will be sent to the
2950	// server regardless of whether the field is empty or not. This may be
2951	// used to include empty fields in Patch requests.
2952	ForceSendFields []string `json:"-"`
2953
2954	// NullFields is a list of field names (e.g. "HeightPx") to include in
2955	// API requests with the JSON null value. By default, fields with empty
2956	// values are omitted from API requests. However, any field with an
2957	// empty value appearing in NullFields will be sent to the server as
2958	// null. It is an error if a field in this list has a non-empty value.
2959	// This may be used to include null fields in Patch requests.
2960	NullFields []string `json:"-"`
2961}
2962
2963func (s *RegionProto) MarshalJSON() ([]byte, error) {
2964	type NoMethod RegionProto
2965	raw := NoMethod(*s)
2966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2967}
2968
2969// ResultsStorage: The storage for test results.
2970type ResultsStorage struct {
2971	// ResultsStoragePath: The root directory for test results.
2972	ResultsStoragePath *FileReference `json:"resultsStoragePath,omitempty"`
2973
2974	// XunitXmlFile: The path to the Xunit XML file.
2975	XunitXmlFile *FileReference `json:"xunitXmlFile,omitempty"`
2976
2977	// ForceSendFields is a list of field names (e.g. "ResultsStoragePath")
2978	// to unconditionally include in API requests. By default, fields with
2979	// empty values are omitted from API requests. However, any non-pointer,
2980	// non-interface field appearing in ForceSendFields will be sent to the
2981	// server regardless of whether the field is empty or not. This may be
2982	// used to include empty fields in Patch requests.
2983	ForceSendFields []string `json:"-"`
2984
2985	// NullFields is a list of field names (e.g. "ResultsStoragePath") to
2986	// include in API requests with the JSON null value. By default, fields
2987	// with empty values are omitted from API requests. However, any field
2988	// with an empty value appearing in NullFields will be sent to the
2989	// server as null. It is an error if a field in this list has a
2990	// non-empty value. This may be used to include null fields in Patch
2991	// requests.
2992	NullFields []string `json:"-"`
2993}
2994
2995func (s *ResultsStorage) MarshalJSON() ([]byte, error) {
2996	type NoMethod ResultsStorage
2997	raw := NoMethod(*s)
2998	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2999}
3000
3001// RoboScriptExecution: Execution stats for a user-provided Robo script.
3002type RoboScriptExecution struct {
3003	// SuccessfulActions: The number of Robo script actions executed
3004	// successfully.
3005	SuccessfulActions int64 `json:"successfulActions,omitempty"`
3006
3007	// TotalActions: The total number of actions in the Robo script.
3008	TotalActions int64 `json:"totalActions,omitempty"`
3009
3010	// ForceSendFields is a list of field names (e.g. "SuccessfulActions")
3011	// to unconditionally include in API requests. By default, fields with
3012	// empty values are omitted from API requests. However, any non-pointer,
3013	// non-interface field appearing in ForceSendFields will be sent to the
3014	// server regardless of whether the field is empty or not. This may be
3015	// used to include empty fields in Patch requests.
3016	ForceSendFields []string `json:"-"`
3017
3018	// NullFields is a list of field names (e.g. "SuccessfulActions") to
3019	// include in API requests with the JSON null value. By default, fields
3020	// with empty values are omitted from API requests. However, any field
3021	// with an empty value appearing in NullFields will be sent to the
3022	// server as null. It is an error if a field in this list has a
3023	// non-empty value. This may be used to include null fields in Patch
3024	// requests.
3025	NullFields []string `json:"-"`
3026}
3027
3028func (s *RoboScriptExecution) MarshalJSON() ([]byte, error) {
3029	type NoMethod RoboScriptExecution
3030	raw := NoMethod(*s)
3031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3032}
3033
3034// SafeHtmlProto: IMPORTANT: It is unsafe to accept this message from an
3035// untrusted source, since it's trivial for an attacker to forge
3036// serialized messages that don't fulfill the type's safety contract --
3037// for example, it could contain attacker controlled script. A system
3038// which receives a SafeHtmlProto implicitly trusts the producer of the
3039// SafeHtmlProto. So, it's generally safe to return this message in RPC
3040// responses, but generally unsafe to accept it in RPC requests.
3041type SafeHtmlProto struct {
3042	// PrivateDoNotAccessOrElseSafeHtmlWrappedValue: IMPORTANT: Never set or
3043	// read this field, even from tests, it is private. See documentation at
3044	// the top of .proto file for programming language packages with which
3045	// to create or read this message.
3046	PrivateDoNotAccessOrElseSafeHtmlWrappedValue string `json:"privateDoNotAccessOrElseSafeHtmlWrappedValue,omitempty"`
3047
3048	// ForceSendFields is a list of field names (e.g.
3049	// "PrivateDoNotAccessOrElseSafeHtmlWrappedValue") to unconditionally
3050	// include in API requests. By default, fields with empty values are
3051	// omitted from API requests. However, any non-pointer, non-interface
3052	// field appearing in ForceSendFields will be sent to the server
3053	// regardless of whether the field is empty or not. This may be used to
3054	// include empty fields in Patch requests.
3055	ForceSendFields []string `json:"-"`
3056
3057	// NullFields is a list of field names (e.g.
3058	// "PrivateDoNotAccessOrElseSafeHtmlWrappedValue") to include in API
3059	// requests with the JSON null value. By default, fields with empty
3060	// values are omitted from API requests. However, any field with an
3061	// empty value appearing in NullFields will be sent to the server as
3062	// null. It is an error if a field in this list has a non-empty value.
3063	// This may be used to include null fields in Patch requests.
3064	NullFields []string `json:"-"`
3065}
3066
3067func (s *SafeHtmlProto) MarshalJSON() ([]byte, error) {
3068	type NoMethod SafeHtmlProto
3069	raw := NoMethod(*s)
3070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3071}
3072
3073type Screen struct {
3074	// FileReference: File reference of the png file. Required.
3075	FileReference string `json:"fileReference,omitempty"`
3076
3077	// Locale: Locale of the device that the screenshot was taken on.
3078	// Required.
3079	Locale string `json:"locale,omitempty"`
3080
3081	// Model: Model of the device that the screenshot was taken on.
3082	// Required.
3083	Model string `json:"model,omitempty"`
3084
3085	// Version: OS version of the device that the screenshot was taken on.
3086	// Required.
3087	Version string `json:"version,omitempty"`
3088
3089	// ForceSendFields is a list of field names (e.g. "FileReference") to
3090	// unconditionally include in API requests. By default, fields with
3091	// empty values are omitted from API requests. However, any non-pointer,
3092	// non-interface field appearing in ForceSendFields will be sent to the
3093	// server regardless of whether the field is empty or not. This may be
3094	// used to include empty fields in Patch requests.
3095	ForceSendFields []string `json:"-"`
3096
3097	// NullFields is a list of field names (e.g. "FileReference") to include
3098	// in API requests with the JSON null value. By default, fields with
3099	// empty values are omitted from API requests. However, any field with
3100	// an empty value appearing in NullFields will be sent to the server as
3101	// null. It is an error if a field in this list has a non-empty value.
3102	// This may be used to include null fields in Patch requests.
3103	NullFields []string `json:"-"`
3104}
3105
3106func (s *Screen) MarshalJSON() ([]byte, error) {
3107	type NoMethod Screen
3108	raw := NoMethod(*s)
3109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3110}
3111
3112type ScreenshotCluster struct {
3113	// Activity: A string that describes the activity of every screen in the
3114	// cluster.
3115	Activity string `json:"activity,omitempty"`
3116
3117	// ClusterId: A unique identifier for the cluster. @OutputOnly
3118	ClusterId string `json:"clusterId,omitempty"`
3119
3120	// KeyScreen: A singular screen that represents the cluster as a whole.
3121	// This screen will act as the "cover" of the entire cluster. When users
3122	// look at the clusters, only the key screen from each cluster will be
3123	// shown. Which screen is the key screen is determined by the
3124	// ClusteringAlgorithm
3125	KeyScreen *Screen `json:"keyScreen,omitempty"`
3126
3127	// Screens: Full list of screens.
3128	Screens []*Screen `json:"screens,omitempty"`
3129
3130	// ServerResponse contains the HTTP response code and headers from the
3131	// server.
3132	googleapi.ServerResponse `json:"-"`
3133
3134	// ForceSendFields is a list of field names (e.g. "Activity") to
3135	// unconditionally include in API requests. By default, fields with
3136	// empty values are omitted from API requests. However, any non-pointer,
3137	// non-interface field appearing in ForceSendFields will be sent to the
3138	// server regardless of whether the field is empty or not. This may be
3139	// used to include empty fields in Patch requests.
3140	ForceSendFields []string `json:"-"`
3141
3142	// NullFields is a list of field names (e.g. "Activity") to include in
3143	// API requests with the JSON null value. By default, fields with empty
3144	// values are omitted from API requests. However, any field with an
3145	// empty value appearing in NullFields will be sent to the server as
3146	// null. It is an error if a field in this list has a non-empty value.
3147	// This may be used to include null fields in Patch requests.
3148	NullFields []string `json:"-"`
3149}
3150
3151func (s *ScreenshotCluster) MarshalJSON() ([]byte, error) {
3152	type NoMethod ScreenshotCluster
3153	raw := NoMethod(*s)
3154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3155}
3156
3157// ShardSummary: Result summary for a shard in an environment.
3158type ShardSummary struct {
3159	// Runs: Summaries of the steps belonging to the shard. With
3160	// flaky_test_attempts enabled from TestExecutionService, more than one
3161	// run (Step) can present. And the runs will be sorted by
3162	// multistep_number.
3163	Runs []*StepSummary `json:"runs,omitempty"`
3164
3165	// ShardResult: Merged result of the shard.
3166	ShardResult *MergedResult `json:"shardResult,omitempty"`
3167
3168	// ForceSendFields is a list of field names (e.g. "Runs") to
3169	// unconditionally include in API requests. By default, fields with
3170	// empty values are omitted from API requests. However, any non-pointer,
3171	// non-interface field appearing in ForceSendFields will be sent to the
3172	// server regardless of whether the field is empty or not. This may be
3173	// used to include empty fields in Patch requests.
3174	ForceSendFields []string `json:"-"`
3175
3176	// NullFields is a list of field names (e.g. "Runs") to include in API
3177	// requests with the JSON null value. By default, fields with empty
3178	// values are omitted from API requests. However, any field with an
3179	// empty value appearing in NullFields will be sent to the server as
3180	// null. It is an error if a field in this list has a non-empty value.
3181	// This may be used to include null fields in Patch requests.
3182	NullFields []string `json:"-"`
3183}
3184
3185func (s *ShardSummary) MarshalJSON() ([]byte, error) {
3186	type NoMethod ShardSummary
3187	raw := NoMethod(*s)
3188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3189}
3190
3191// SkippedDetail: Details for an outcome with a SKIPPED outcome summary.
3192type SkippedDetail struct {
3193	// IncompatibleAppVersion: If the App doesn't support the specific API
3194	// level.
3195	IncompatibleAppVersion bool `json:"incompatibleAppVersion,omitempty"`
3196
3197	// IncompatibleArchitecture: If the App doesn't run on the specific
3198	// architecture, for example, x86.
3199	IncompatibleArchitecture bool `json:"incompatibleArchitecture,omitempty"`
3200
3201	// IncompatibleDevice: If the requested OS version doesn't run on the
3202	// specific device model.
3203	IncompatibleDevice bool `json:"incompatibleDevice,omitempty"`
3204
3205	// ForceSendFields is a list of field names (e.g.
3206	// "IncompatibleAppVersion") to unconditionally include in API requests.
3207	// By default, fields with empty values are omitted from API requests.
3208	// However, any non-pointer, non-interface field appearing in
3209	// ForceSendFields will be sent to the server regardless of whether the
3210	// field is empty or not. This may be used to include empty fields in
3211	// Patch requests.
3212	ForceSendFields []string `json:"-"`
3213
3214	// NullFields is a list of field names (e.g. "IncompatibleAppVersion")
3215	// to include in API requests with the JSON null value. By default,
3216	// fields with empty values are omitted from API requests. However, any
3217	// field with an empty value appearing in NullFields will be sent to the
3218	// server as null. It is an error if a field in this list has a
3219	// non-empty value. This may be used to include null fields in Patch
3220	// requests.
3221	NullFields []string `json:"-"`
3222}
3223
3224func (s *SkippedDetail) MarshalJSON() ([]byte, error) {
3225	type NoMethod SkippedDetail
3226	raw := NoMethod(*s)
3227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3228}
3229
3230// Specification: The details about how to run the execution.
3231type Specification struct {
3232	// AndroidTest: An Android mobile test execution specification.
3233	AndroidTest *AndroidTest `json:"androidTest,omitempty"`
3234
3235	// IosTest: An iOS mobile test execution specification.
3236	IosTest *IosTest `json:"iosTest,omitempty"`
3237
3238	// ForceSendFields is a list of field names (e.g. "AndroidTest") to
3239	// unconditionally include in API requests. By default, fields with
3240	// empty values are omitted from API requests. However, any non-pointer,
3241	// non-interface field appearing in ForceSendFields will be sent to the
3242	// server regardless of whether the field is empty or not. This may be
3243	// used to include empty fields in Patch requests.
3244	ForceSendFields []string `json:"-"`
3245
3246	// NullFields is a list of field names (e.g. "AndroidTest") to include
3247	// in API requests with the JSON null value. By default, fields with
3248	// empty values are omitted from API requests. However, any field with
3249	// an empty value appearing in NullFields will be sent to the server as
3250	// null. It is an error if a field in this list has a non-empty value.
3251	// This may be used to include null fields in Patch requests.
3252	NullFields []string `json:"-"`
3253}
3254
3255func (s *Specification) MarshalJSON() ([]byte, error) {
3256	type NoMethod Specification
3257	raw := NoMethod(*s)
3258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3259}
3260
3261// StackTrace: A stacktrace.
3262type StackTrace struct {
3263	// Exception: The stack trace message. Required
3264	Exception string `json:"exception,omitempty"`
3265
3266	// ForceSendFields is a list of field names (e.g. "Exception") to
3267	// unconditionally include in API requests. By default, fields with
3268	// empty values are omitted from API requests. However, any non-pointer,
3269	// non-interface field appearing in ForceSendFields will be sent to the
3270	// server regardless of whether the field is empty or not. This may be
3271	// used to include empty fields in Patch requests.
3272	ForceSendFields []string `json:"-"`
3273
3274	// NullFields is a list of field names (e.g. "Exception") to include in
3275	// API requests with the JSON null value. By default, fields with empty
3276	// values are omitted from API requests. However, any field with an
3277	// empty value appearing in NullFields will be sent to the server as
3278	// null. It is an error if a field in this list has a non-empty value.
3279	// This may be used to include null fields in Patch requests.
3280	NullFields []string `json:"-"`
3281}
3282
3283func (s *StackTrace) MarshalJSON() ([]byte, error) {
3284	type NoMethod StackTrace
3285	raw := NoMethod(*s)
3286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3287}
3288
3289// StartActivityNotFound: User provided intent failed to resolve to an
3290// activity.
3291type StartActivityNotFound struct {
3292	Action string `json:"action,omitempty"`
3293
3294	Uri string `json:"uri,omitempty"`
3295
3296	// ForceSendFields is a list of field names (e.g. "Action") to
3297	// unconditionally include in API requests. By default, fields with
3298	// empty values are omitted from API requests. However, any non-pointer,
3299	// non-interface field appearing in ForceSendFields will be sent to the
3300	// server regardless of whether the field is empty or not. This may be
3301	// used to include empty fields in Patch requests.
3302	ForceSendFields []string `json:"-"`
3303
3304	// NullFields is a list of field names (e.g. "Action") to include in API
3305	// requests with the JSON null value. By default, fields with empty
3306	// values are omitted from API requests. However, any field with an
3307	// empty value appearing in NullFields will be sent to the server as
3308	// null. It is an error if a field in this list has a non-empty value.
3309	// This may be used to include null fields in Patch requests.
3310	NullFields []string `json:"-"`
3311}
3312
3313func (s *StartActivityNotFound) MarshalJSON() ([]byte, error) {
3314	type NoMethod StartActivityNotFound
3315	raw := NoMethod(*s)
3316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3317}
3318
3319// Status: The `Status` type defines a logical error model that is
3320// suitable for different programming environments, including REST APIs
3321// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
3322// `Status` message contains three pieces of data: error code, error
3323// message, and error details. You can find out more about this error
3324// model and how to work with it in the API Design Guide
3325// (https://cloud.google.com/apis/design/errors).
3326type Status struct {
3327	// Code: The status code, which should be an enum value of
3328	// google.rpc.Code.
3329	Code int64 `json:"code,omitempty"`
3330
3331	// Details: A list of messages that carry the error details. There is a
3332	// common set of message types for APIs to use.
3333	Details []googleapi.RawMessage `json:"details,omitempty"`
3334
3335	// Message: A developer-facing error message, which should be in
3336	// English. Any user-facing error message should be localized and sent
3337	// in the google.rpc.Status.details field, or localized by the client.
3338	Message string `json:"message,omitempty"`
3339
3340	// ForceSendFields is a list of field names (e.g. "Code") to
3341	// unconditionally include in API requests. By default, fields with
3342	// empty values are omitted from API requests. However, any non-pointer,
3343	// non-interface field appearing in ForceSendFields will be sent to the
3344	// server regardless of whether the field is empty or not. This may be
3345	// used to include empty fields in Patch requests.
3346	ForceSendFields []string `json:"-"`
3347
3348	// NullFields is a list of field names (e.g. "Code") to include in API
3349	// requests with the JSON null value. By default, fields with empty
3350	// values are omitted from API requests. However, any field with an
3351	// empty value appearing in NullFields will be sent to the server as
3352	// null. It is an error if a field in this list has a non-empty value.
3353	// This may be used to include null fields in Patch requests.
3354	NullFields []string `json:"-"`
3355}
3356
3357func (s *Status) MarshalJSON() ([]byte, error) {
3358	type NoMethod Status
3359	raw := NoMethod(*s)
3360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3361}
3362
3363// Step: A Step represents a single operation performed as part of
3364// Execution. A step can be used to represent the execution of a tool (
3365// for example a test runner execution or an execution of a compiler).
3366// Steps can overlap (for instance two steps might have the same start
3367// time if some operations are done in parallel). Here is an example,
3368// let's consider that we have a continuous build is executing a test
3369// runner for each iteration. The workflow would look like: - user
3370// creates a Execution with id 1 - user creates an TestExecutionStep
3371// with id 100 for Execution 1 - user update TestExecutionStep with id
3372// 100 to add a raw xml log + the service parses the xml logs and
3373// returns a TestExecutionStep with updated TestResult(s). - user update
3374// the status of TestExecutionStep with id 100 to COMPLETE A Step can be
3375// updated until its state is set to COMPLETE at which points it becomes
3376// immutable. Next tag: 27
3377type Step struct {
3378	// CompletionTime: The time when the step status was set to complete.
3379	// This value will be set automatically when state transitions to
3380	// COMPLETE. - In response: set if the execution state is COMPLETE. - In
3381	// create/update request: never set
3382	CompletionTime *Timestamp `json:"completionTime,omitempty"`
3383
3384	// CreationTime: The time when the step was created. - In response:
3385	// always set - In create/update request: never set
3386	CreationTime *Timestamp `json:"creationTime,omitempty"`
3387
3388	// Description: A description of this tool For example: mvn clean
3389	// package -D skipTests=true - In response: present if set by
3390	// create/update request - In create/update request: optional
3391	Description string `json:"description,omitempty"`
3392
3393	// DeviceUsageDuration: How much the device resource is used to perform
3394	// the test. This is the device usage used for billing purpose, which is
3395	// different from the run_duration, for example, infrastructure failure
3396	// won't be charged for device usage. PRECONDITION_FAILED will be
3397	// returned if one attempts to set a device_usage on a step which
3398	// already has this field set. - In response: present if previously set.
3399	// - In create request: optional - In update request: optional
3400	DeviceUsageDuration *Duration `json:"deviceUsageDuration,omitempty"`
3401
3402	// DimensionValue: If the execution containing this step has any
3403	// dimension_definition set, then this field allows the child to specify
3404	// the values of the dimensions. The keys must exactly match the
3405	// dimension_definition of the execution. For example, if the execution
3406	// has `dimension_definition = ['attempt', 'device']` then a step must
3407	// define values for those dimensions, eg. `dimension_value =
3408	// ['attempt': '1', 'device': 'Nexus 6']` If a step does not participate
3409	// in one dimension of the matrix, the value for that dimension should
3410	// be empty string. For example, if one of the tests is executed by a
3411	// runner which does not support retries, the step could have
3412	// `dimension_value = ['attempt': '', 'device': 'Nexus 6']` If the step
3413	// does not participate in any dimensions of the matrix, it may leave
3414	// dimension_value unset. A PRECONDITION_FAILED will be returned if any
3415	// of the keys do not exist in the dimension_definition of the
3416	// execution. A PRECONDITION_FAILED will be returned if another step in
3417	// this execution already has the same name and dimension_value, but
3418	// differs on other data fields, for example, step field is different. A
3419	// PRECONDITION_FAILED will be returned if dimension_value is set, and
3420	// there is a dimension_definition in the execution which is not
3421	// specified as one of the keys. - In response: present if set by create
3422	// - In create request: optional - In update request: never set
3423	DimensionValue []*StepDimensionValueEntry `json:"dimensionValue,omitempty"`
3424
3425	// HasImages: Whether any of the outputs of this step are images whose
3426	// thumbnails can be fetched with ListThumbnails. - In response: always
3427	// set - In create/update request: never set
3428	HasImages bool `json:"hasImages,omitempty"`
3429
3430	// Labels: Arbitrary user-supplied key/value pairs that are associated
3431	// with the step. Users are responsible for managing the key namespace
3432	// such that keys don't accidentally collide. An INVALID_ARGUMENT will
3433	// be returned if the number of labels exceeds 100 or if the length of
3434	// any of the keys or values exceeds 100 characters. - In response:
3435	// always set - In create request: optional - In update request:
3436	// optional; any new key/value pair will be added to the map, and any
3437	// new value for an existing key will update that key's value
3438	Labels []*StepLabelsEntry `json:"labels,omitempty"`
3439
3440	// MultiStep: Details when multiple steps are run with the same
3441	// configuration as a group. These details can be used identify which
3442	// group this step is part of. It also identifies the groups 'primary
3443	// step' which indexes all the group members. - In response: present if
3444	// previously set. - In create request: optional, set iff this step was
3445	// performed more than once. - In update request: optional
3446	MultiStep *MultiStep `json:"multiStep,omitempty"`
3447
3448	// Name: A short human-readable name to display in the UI. Maximum of
3449	// 100 characters. For example: Clean build A PRECONDITION_FAILED will
3450	// be returned upon creating a new step if it shares its name and
3451	// dimension_value with an existing step. If two steps represent a
3452	// similar action, but have different dimension values, they should
3453	// share the same name. For instance, if the same set of tests is run on
3454	// two different platforms, the two steps should have the same name. -
3455	// In response: always set - In create request: always set - In update
3456	// request: never set
3457	Name string `json:"name,omitempty"`
3458
3459	// Outcome: Classification of the result, for example into SUCCESS or
3460	// FAILURE - In response: present if set by create/update request - In
3461	// create/update request: optional
3462	Outcome *Outcome `json:"outcome,omitempty"`
3463
3464	// RunDuration: How long it took for this step to run. If unset, this is
3465	// set to the difference between creation_time and completion_time when
3466	// the step is set to the COMPLETE state. In some cases, it is
3467	// appropriate to set this value separately: For instance, if a step is
3468	// created, but the operation it represents is queued for a few minutes
3469	// before it executes, it would be appropriate not to include the time
3470	// spent queued in its run_duration. PRECONDITION_FAILED will be
3471	// returned if one attempts to set a run_duration on a step which
3472	// already has this field set. - In response: present if previously set;
3473	// always present on COMPLETE step - In create request: optional - In
3474	// update request: optional
3475	RunDuration *Duration `json:"runDuration,omitempty"`
3476
3477	// State: The initial state is IN_PROGRESS. The only legal state
3478	// transitions are * IN_PROGRESS -> COMPLETE A PRECONDITION_FAILED will
3479	// be returned if an invalid transition is requested. It is valid to
3480	// create Step with a state set to COMPLETE. The state can only be set
3481	// to COMPLETE once. A PRECONDITION_FAILED will be returned if the state
3482	// is set to COMPLETE multiple times. - In response: always set - In
3483	// create/update request: optional
3484	//
3485	// Possible values:
3486	//   "unknownState" - Should never be in this state. Exists for proto
3487	// deserialization backward compatibility.
3488	//   "pending" - The Execution/Step is created, ready to run, but not
3489	// running yet. If an Execution/Step is created without initial state,
3490	// it is assumed that the Execution/Step is in PENDING state.
3491	//   "inProgress" - The Execution/Step is in progress.
3492	//   "complete" - The finalized, immutable state. Steps/Executions in
3493	// this state cannot be modified.
3494	State string `json:"state,omitempty"`
3495
3496	// StepId: A unique identifier within a Execution for this Step. Returns
3497	// INVALID_ARGUMENT if this field is set or overwritten by the caller. -
3498	// In response: always set - In create/update request: never set
3499	StepId string `json:"stepId,omitempty"`
3500
3501	// TestExecutionStep: An execution of a test runner.
3502	TestExecutionStep *TestExecutionStep `json:"testExecutionStep,omitempty"`
3503
3504	// ToolExecutionStep: An execution of a tool (used for steps we don't
3505	// explicitly support).
3506	ToolExecutionStep *ToolExecutionStep `json:"toolExecutionStep,omitempty"`
3507
3508	// ServerResponse contains the HTTP response code and headers from the
3509	// server.
3510	googleapi.ServerResponse `json:"-"`
3511
3512	// ForceSendFields is a list of field names (e.g. "CompletionTime") to
3513	// unconditionally include in API requests. By default, fields with
3514	// empty values are omitted from API requests. However, any non-pointer,
3515	// non-interface field appearing in ForceSendFields will be sent to the
3516	// server regardless of whether the field is empty or not. This may be
3517	// used to include empty fields in Patch requests.
3518	ForceSendFields []string `json:"-"`
3519
3520	// NullFields is a list of field names (e.g. "CompletionTime") to
3521	// include in API requests with the JSON null value. By default, fields
3522	// with empty values are omitted from API requests. However, any field
3523	// with an empty value appearing in NullFields will be sent to the
3524	// server as null. It is an error if a field in this list has a
3525	// non-empty value. This may be used to include null fields in Patch
3526	// requests.
3527	NullFields []string `json:"-"`
3528}
3529
3530func (s *Step) MarshalJSON() ([]byte, error) {
3531	type NoMethod Step
3532	raw := NoMethod(*s)
3533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3534}
3535
3536type StepDimensionValueEntry struct {
3537	Key string `json:"key,omitempty"`
3538
3539	Value string `json:"value,omitempty"`
3540
3541	// ForceSendFields is a list of field names (e.g. "Key") to
3542	// unconditionally include in API requests. By default, fields with
3543	// empty values are omitted from API requests. However, any non-pointer,
3544	// non-interface field appearing in ForceSendFields will be sent to the
3545	// server regardless of whether the field is empty or not. This may be
3546	// used to include empty fields in Patch requests.
3547	ForceSendFields []string `json:"-"`
3548
3549	// NullFields is a list of field names (e.g. "Key") to include in API
3550	// requests with the JSON null value. By default, fields with empty
3551	// values are omitted from API requests. However, any field with an
3552	// empty value appearing in NullFields will be sent to the server as
3553	// null. It is an error if a field in this list has a non-empty value.
3554	// This may be used to include null fields in Patch requests.
3555	NullFields []string `json:"-"`
3556}
3557
3558func (s *StepDimensionValueEntry) MarshalJSON() ([]byte, error) {
3559	type NoMethod StepDimensionValueEntry
3560	raw := NoMethod(*s)
3561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3562}
3563
3564type StepLabelsEntry struct {
3565	Key string `json:"key,omitempty"`
3566
3567	Value string `json:"value,omitempty"`
3568
3569	// ForceSendFields is a list of field names (e.g. "Key") to
3570	// unconditionally include in API requests. By default, fields with
3571	// empty values are omitted from API requests. However, any non-pointer,
3572	// non-interface field appearing in ForceSendFields will be sent to the
3573	// server regardless of whether the field is empty or not. This may be
3574	// used to include empty fields in Patch requests.
3575	ForceSendFields []string `json:"-"`
3576
3577	// NullFields is a list of field names (e.g. "Key") to include in API
3578	// requests with the JSON null value. By default, fields with empty
3579	// values are omitted from API requests. However, any field with an
3580	// empty value appearing in NullFields will be sent to the server as
3581	// null. It is an error if a field in this list has a non-empty value.
3582	// This may be used to include null fields in Patch requests.
3583	NullFields []string `json:"-"`
3584}
3585
3586func (s *StepLabelsEntry) MarshalJSON() ([]byte, error) {
3587	type NoMethod StepLabelsEntry
3588	raw := NoMethod(*s)
3589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3590}
3591
3592// StepSummary: Lightweight summary of a step within this execution.
3593type StepSummary struct {
3594}
3595
3596// SuccessDetail: Details for an outcome with a SUCCESS outcome summary.
3597// LINT.IfChange
3598type SuccessDetail struct {
3599	// OtherNativeCrash: If a native process other than the app crashed.
3600	OtherNativeCrash bool `json:"otherNativeCrash,omitempty"`
3601
3602	// ForceSendFields is a list of field names (e.g. "OtherNativeCrash") to
3603	// unconditionally include in API requests. By default, fields with
3604	// empty values are omitted from API requests. However, any non-pointer,
3605	// non-interface field appearing in ForceSendFields will be sent to the
3606	// server regardless of whether the field is empty or not. This may be
3607	// used to include empty fields in Patch requests.
3608	ForceSendFields []string `json:"-"`
3609
3610	// NullFields is a list of field names (e.g. "OtherNativeCrash") to
3611	// include in API requests with the JSON null value. By default, fields
3612	// with empty values are omitted from API requests. However, any field
3613	// with an empty value appearing in NullFields will be sent to the
3614	// server as null. It is an error if a field in this list has a
3615	// non-empty value. This may be used to include null fields in Patch
3616	// requests.
3617	NullFields []string `json:"-"`
3618}
3619
3620func (s *SuccessDetail) MarshalJSON() ([]byte, error) {
3621	type NoMethod SuccessDetail
3622	raw := NoMethod(*s)
3623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3624}
3625
3626// SuggestionClusterProto: A set of similar suggestions that we suspect
3627// are closely related. This proto and most of the nested protos are
3628// branched from
3629// foxandcrown.prelaunchreport.service.SuggestionClusterProto, replacing
3630// PLR's dependencies with FTL's.
3631type SuggestionClusterProto struct {
3632	// Category: Category in which these types of suggestions should appear.
3633	// Always set.
3634	//
3635	// Possible values:
3636	//   "unknownCategory"
3637	//   "contentLabeling"
3638	//   "touchTargetSize"
3639	//   "lowContrast"
3640	//   "implementation"
3641	Category string `json:"category,omitempty"`
3642
3643	// Suggestions: A sequence of suggestions. All of the suggestions within
3644	// a cluster must have the same SuggestionPriority and belong to the
3645	// same SuggestionCategory. Suggestions with the same screenshot URL
3646	// should be adjacent.
3647	Suggestions []*SuggestionProto `json:"suggestions,omitempty"`
3648
3649	// ForceSendFields is a list of field names (e.g. "Category") to
3650	// unconditionally include in API requests. By default, fields with
3651	// empty values are omitted from API requests. However, any non-pointer,
3652	// non-interface field appearing in ForceSendFields will be sent to the
3653	// server regardless of whether the field is empty or not. This may be
3654	// used to include empty fields in Patch requests.
3655	ForceSendFields []string `json:"-"`
3656
3657	// NullFields is a list of field names (e.g. "Category") to include in
3658	// API requests with the JSON null value. By default, fields with empty
3659	// values are omitted from API requests. However, any field with an
3660	// empty value appearing in NullFields will be sent to the server as
3661	// null. It is an error if a field in this list has a non-empty value.
3662	// This may be used to include null fields in Patch requests.
3663	NullFields []string `json:"-"`
3664}
3665
3666func (s *SuggestionClusterProto) MarshalJSON() ([]byte, error) {
3667	type NoMethod SuggestionClusterProto
3668	raw := NoMethod(*s)
3669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3670}
3671
3672type SuggestionProto struct {
3673	// HelpUrl: Reference to a help center article concerning this type of
3674	// suggestion. Always set.
3675	HelpUrl string `json:"helpUrl,omitempty"`
3676
3677	// LongMessage: Message, in the user's language, explaining the
3678	// suggestion, which may contain markup. Always set.
3679	LongMessage *SafeHtmlProto `json:"longMessage,omitempty"`
3680
3681	// Priority: Relative importance of a suggestion. Always set.
3682	//
3683	// Possible values:
3684	//   "unknownPriority"
3685	//   "error"
3686	//   "warning"
3687	//   "info"
3688	Priority string `json:"priority,omitempty"`
3689
3690	// PseudoResourceId: A somewhat human readable identifier of the source
3691	// view, if it does not have a resource_name. This is a path within the
3692	// accessibility hierarchy, an element with resource name; similar to an
3693	// XPath.
3694	PseudoResourceId string `json:"pseudoResourceId,omitempty"`
3695
3696	// Region: Region within the screenshot that is relevant to this
3697	// suggestion. Optional.
3698	Region *RegionProto `json:"region,omitempty"`
3699
3700	// ResourceName: Reference to a view element, identified by its resource
3701	// name, if it has one.
3702	ResourceName string `json:"resourceName,omitempty"`
3703
3704	// ScreenId: ID of the screen for the suggestion. It is used for getting
3705	// the corresponding screenshot path. For example, screen_id "1"
3706	// corresponds to "1.png" file in GCS. Always set.
3707	ScreenId string `json:"screenId,omitempty"`
3708
3709	// SecondaryPriority: Relative importance of a suggestion as compared
3710	// with other suggestions that have the same priority and category. This
3711	// is a meaningless value that can be used to order suggestions that are
3712	// in the same category and have the same priority. The larger values
3713	// have higher priority (i.e., are more important). Optional.
3714	SecondaryPriority float64 `json:"secondaryPriority,omitempty"`
3715
3716	// ShortMessage: Concise message, in the user's language, representing
3717	// the suggestion, which may contain markup. Always set.
3718	ShortMessage *SafeHtmlProto `json:"shortMessage,omitempty"`
3719
3720	// Title: General title for the suggestion, in the user's language,
3721	// without markup. Always set.
3722	Title string `json:"title,omitempty"`
3723
3724	// ForceSendFields is a list of field names (e.g. "HelpUrl") to
3725	// unconditionally include in API requests. By default, fields with
3726	// empty values are omitted from API requests. However, any non-pointer,
3727	// non-interface field appearing in ForceSendFields will be sent to the
3728	// server regardless of whether the field is empty or not. This may be
3729	// used to include empty fields in Patch requests.
3730	ForceSendFields []string `json:"-"`
3731
3732	// NullFields is a list of field names (e.g. "HelpUrl") to include in
3733	// API requests with the JSON null value. By default, fields with empty
3734	// values are omitted from API requests. However, any field with an
3735	// empty value appearing in NullFields will be sent to the server as
3736	// null. It is an error if a field in this list has a non-empty value.
3737	// This may be used to include null fields in Patch requests.
3738	NullFields []string `json:"-"`
3739}
3740
3741func (s *SuggestionProto) MarshalJSON() ([]byte, error) {
3742	type NoMethod SuggestionProto
3743	raw := NoMethod(*s)
3744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3745}
3746
3747func (s *SuggestionProto) UnmarshalJSON(data []byte) error {
3748	type NoMethod SuggestionProto
3749	var s1 struct {
3750		SecondaryPriority gensupport.JSONFloat64 `json:"secondaryPriority"`
3751		*NoMethod
3752	}
3753	s1.NoMethod = (*NoMethod)(s)
3754	if err := json.Unmarshal(data, &s1); err != nil {
3755		return err
3756	}
3757	s.SecondaryPriority = float64(s1.SecondaryPriority)
3758	return nil
3759}
3760
3761type TestCase struct {
3762	// ElapsedTime: The elapsed run time of the test case. Required.
3763	ElapsedTime *Duration `json:"elapsedTime,omitempty"`
3764
3765	// EndTime: The end time of the test case.
3766	EndTime *Timestamp `json:"endTime,omitempty"`
3767
3768	// SkippedMessage: Why the test case was skipped. Present only for
3769	// skipped test case
3770	SkippedMessage string `json:"skippedMessage,omitempty"`
3771
3772	// StackTraces: The stack trace details if the test case failed or
3773	// encountered an error. The maximum size of the stack traces is 100KiB,
3774	// beyond which the stack track will be truncated. Zero if the test case
3775	// passed.
3776	StackTraces []*StackTrace `json:"stackTraces,omitempty"`
3777
3778	// StartTime: The start time of the test case.
3779	StartTime *Timestamp `json:"startTime,omitempty"`
3780
3781	// Status: The status of the test case. Required.
3782	//
3783	// Possible values:
3784	//   "passed" - Test passed.
3785	//   "failed" - Test failed.
3786	//   "error" - Test encountered an error
3787	//   "skipped" - Test skipped
3788	//   "flaky" - Test flaked. Present only for rollup test cases; test
3789	// cases from steps that were run with the same configuration had both
3790	// failure and success outcomes.
3791	Status string `json:"status,omitempty"`
3792
3793	// TestCaseId: A unique identifier within a Step for this Test Case.
3794	TestCaseId string `json:"testCaseId,omitempty"`
3795
3796	// TestCaseReference: Test case reference, e.g. name, class name and
3797	// test suite name. Required.
3798	TestCaseReference *TestCaseReference `json:"testCaseReference,omitempty"`
3799
3800	// ToolOutputs: References to opaque files of any format output by the
3801	// tool execution. @OutputOnly
3802	ToolOutputs []*ToolOutputReference `json:"toolOutputs,omitempty"`
3803
3804	// ServerResponse contains the HTTP response code and headers from the
3805	// server.
3806	googleapi.ServerResponse `json:"-"`
3807
3808	// ForceSendFields is a list of field names (e.g. "ElapsedTime") to
3809	// unconditionally include in API requests. By default, fields with
3810	// empty values are omitted from API requests. However, any non-pointer,
3811	// non-interface field appearing in ForceSendFields will be sent to the
3812	// server regardless of whether the field is empty or not. This may be
3813	// used to include empty fields in Patch requests.
3814	ForceSendFields []string `json:"-"`
3815
3816	// NullFields is a list of field names (e.g. "ElapsedTime") to include
3817	// in API requests with the JSON null value. By default, fields with
3818	// empty values are omitted from API requests. However, any field with
3819	// an empty value appearing in NullFields will be sent to the server as
3820	// null. It is an error if a field in this list has a non-empty value.
3821	// This may be used to include null fields in Patch requests.
3822	NullFields []string `json:"-"`
3823}
3824
3825func (s *TestCase) MarshalJSON() ([]byte, error) {
3826	type NoMethod TestCase
3827	raw := NoMethod(*s)
3828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3829}
3830
3831// TestCaseReference: A reference to a test case. Test case references
3832// are canonically ordered lexicographically by these three factors: *
3833// First, by test_suite_name. * Second, by class_name. * Third, by name.
3834type TestCaseReference struct {
3835	// ClassName: The name of the class.
3836	ClassName string `json:"className,omitempty"`
3837
3838	// Name: The name of the test case. Required.
3839	Name string `json:"name,omitempty"`
3840
3841	// TestSuiteName: The name of the test suite to which this test case
3842	// belongs.
3843	TestSuiteName string `json:"testSuiteName,omitempty"`
3844
3845	// ForceSendFields is a list of field names (e.g. "ClassName") to
3846	// unconditionally include in API requests. By default, fields with
3847	// empty values are omitted from API requests. However, any non-pointer,
3848	// non-interface field appearing in ForceSendFields will be sent to the
3849	// server regardless of whether the field is empty or not. This may be
3850	// used to include empty fields in Patch requests.
3851	ForceSendFields []string `json:"-"`
3852
3853	// NullFields is a list of field names (e.g. "ClassName") to include in
3854	// API requests with the JSON null value. By default, fields with empty
3855	// values are omitted from API requests. However, any field with an
3856	// empty value appearing in NullFields will be sent to the server as
3857	// null. It is an error if a field in this list has a non-empty value.
3858	// This may be used to include null fields in Patch requests.
3859	NullFields []string `json:"-"`
3860}
3861
3862func (s *TestCaseReference) MarshalJSON() ([]byte, error) {
3863	type NoMethod TestCaseReference
3864	raw := NoMethod(*s)
3865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3866}
3867
3868// TestExecutionStep: A step that represents running tests. It accepts
3869// ant-junit xml files which will be parsed into structured test results
3870// by the service. Xml file paths are updated in order to append more
3871// files, however they can't be deleted. Users can also add test results
3872// manually by using the test_result field.
3873type TestExecutionStep struct {
3874	// TestIssues: Issues observed during the test execution. For example,
3875	// if the mobile app under test crashed during the test, the error
3876	// message and the stack trace content can be recorded here to assist
3877	// debugging. - In response: present if set by create or update - In
3878	// create/update request: optional
3879	TestIssues []*TestIssue `json:"testIssues,omitempty"`
3880
3881	// TestSuiteOverviews: List of test suite overview contents. This could
3882	// be parsed from xUnit XML log by server, or uploaded directly by user.
3883	// This references should only be called when test suites are fully
3884	// parsed or uploaded. The maximum allowed number of test suite
3885	// overviews per step is 1000. - In response: always set - In create
3886	// request: optional - In update request: never (use
3887	// publishXunitXmlFiles custom method instead)
3888	TestSuiteOverviews []*TestSuiteOverview `json:"testSuiteOverviews,omitempty"`
3889
3890	// TestTiming: The timing break down of the test execution. - In
3891	// response: present if set by create or update - In create/update
3892	// request: optional
3893	TestTiming *TestTiming `json:"testTiming,omitempty"`
3894
3895	// ToolExecution: Represents the execution of the test runner. The exit
3896	// code of this tool will be used to determine if the test passed. - In
3897	// response: always set - In create/update request: optional
3898	ToolExecution *ToolExecution `json:"toolExecution,omitempty"`
3899
3900	// ForceSendFields is a list of field names (e.g. "TestIssues") to
3901	// unconditionally include in API requests. By default, fields with
3902	// empty values are omitted from API requests. However, any non-pointer,
3903	// non-interface field appearing in ForceSendFields will be sent to the
3904	// server regardless of whether the field is empty or not. This may be
3905	// used to include empty fields in Patch requests.
3906	ForceSendFields []string `json:"-"`
3907
3908	// NullFields is a list of field names (e.g. "TestIssues") to include in
3909	// API requests with the JSON null value. By default, fields with empty
3910	// values are omitted from API requests. However, any field with an
3911	// empty value appearing in NullFields will be sent to the server as
3912	// null. It is an error if a field in this list has a non-empty value.
3913	// This may be used to include null fields in Patch requests.
3914	NullFields []string `json:"-"`
3915}
3916
3917func (s *TestExecutionStep) MarshalJSON() ([]byte, error) {
3918	type NoMethod TestExecutionStep
3919	raw := NoMethod(*s)
3920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3921}
3922
3923// TestIssue: An issue detected occurring during a test execution.
3924type TestIssue struct {
3925	// Category: Category of issue. Required.
3926	//
3927	// Possible values:
3928	//   "unspecifiedCategory" - Default unspecified category. Do not use.
3929	// For versioning only.
3930	//   "common" - Issue is not specific to a particular test kind (e.g., a
3931	// native crash).
3932	//   "robo" - Issue is specific to Robo run.
3933	Category string `json:"category,omitempty"`
3934
3935	// ErrorMessage: A brief human-readable message describing the issue.
3936	// Required.
3937	ErrorMessage string `json:"errorMessage,omitempty"`
3938
3939	// Severity: Severity of issue. Required.
3940	//
3941	// Possible values:
3942	//   "unspecifiedSeverity" - Default unspecified severity. Do not use.
3943	// For versioning only.
3944	//   "info" - Non critical issue, providing users with some info about
3945	// the test run.
3946	//   "suggestion" - Non critical issue, providing users with some hints
3947	// on improving their testing experience, e.g., suggesting to use Game
3948	// Loops.
3949	//   "warning" - Potentially critical issue.
3950	//   "severe" - Critical issue.
3951	Severity string `json:"severity,omitempty"`
3952
3953	// StackTrace: Deprecated in favor of stack trace fields inside specific
3954	// warnings.
3955	StackTrace *StackTrace `json:"stackTrace,omitempty"`
3956
3957	// Type: Type of issue. Required.
3958	//
3959	// Possible values:
3960	//   "unspecifiedType" - Default unspecified type. Do not use. For
3961	// versioning only.
3962	//   "fatalException" - Issue is a fatal exception.
3963	//   "nativeCrash" - Issue is a native crash.
3964	//   "anr" - Issue is an ANR crash.
3965	//   "unusedRoboDirective" - Issue is an unused robo directive.
3966	//   "compatibleWithOrchestrator" - Issue is a suggestion to use
3967	// orchestrator.
3968	//   "launcherActivityNotFound" - Issue with finding a launcher activity
3969	//   "startActivityNotFound" - Issue with resolving a user-provided
3970	// intent to start an activity
3971	//   "incompleteRoboScriptExecution" - A Robo script was not fully
3972	// executed.
3973	//   "completeRoboScriptExecution" - A Robo script was fully and
3974	// successfully executed.
3975	//   "failedToInstall" - The APK failed to install.
3976	//   "availableDeepLinks" - The app-under-test has deep links, but none
3977	// were provided to Robo.
3978	//   "nonSdkApiUsageViolation" - App accessed a non-sdk Api.
3979	//   "nonSdkApiUsageReport" - App accessed a non-sdk Api (new detailed
3980	// report)
3981	//   "encounteredNonAndroidUiWidgetScreen" - Robo crawl encountered at
3982	// least one screen with elements that are not Android UI widgets.
3983	//   "encounteredLoginScreen" - Robo crawl encountered at least one
3984	// probable login screen.
3985	//   "performedGoogleLogin" - Robo signed in with Google.
3986	//   "iosException" - iOS App crashed with an exception.
3987	//   "iosCrash" - iOS App crashed without an exception (e.g. killed).
3988	//   "performedMonkeyActions" - Robo crawl involved performing some
3989	// monkey actions.
3990	//   "usedRoboDirective" - Robo crawl used a Robo directive.
3991	//   "usedRoboIgnoreDirective" - Robo crawl used a Robo directive to
3992	// ignore an UI element.
3993	//   "insufficientCoverage" - Robo did not crawl some potentially
3994	// important parts of the app.
3995	//   "inAppPurchases" - Robo crawl involved some in-app purchases.
3996	//   "crashDialogError" - Crash dialog was detected during the test
3997	// execution
3998	//   "uiElementsTooDeep" - UI element depth is greater than the
3999	// threshold
4000	//   "blankScreen" - Blank screen is found in the Robo crawl
4001	//   "overlappingUiElements" - Overlapping UI elements are found in the
4002	// Robo crawl
4003	//   "unityException" - An uncaught Unity exception was detected (these
4004	// don't crash apps).
4005	//   "deviceOutOfMemory" - Device running out of memory was detected
4006	//   "logcatCollectionError" - Problems detected while collecting logcat
4007	Type string `json:"type,omitempty"`
4008
4009	// Warning: Warning message with additional details of the issue. Should
4010	// always be a message from com.google.devtools.toolresults.v1.warnings
4011	Warning *Any `json:"warning,omitempty"`
4012
4013	// ForceSendFields is a list of field names (e.g. "Category") to
4014	// unconditionally include in API requests. By default, fields with
4015	// empty values are omitted from API requests. However, any non-pointer,
4016	// non-interface field appearing in ForceSendFields will be sent to the
4017	// server regardless of whether the field is empty or not. This may be
4018	// used to include empty fields in Patch requests.
4019	ForceSendFields []string `json:"-"`
4020
4021	// NullFields is a list of field names (e.g. "Category") to include in
4022	// API requests with the JSON null value. By default, fields with empty
4023	// values are omitted from API requests. However, any field with an
4024	// empty value appearing in NullFields will be sent to the server as
4025	// null. It is an error if a field in this list has a non-empty value.
4026	// This may be used to include null fields in Patch requests.
4027	NullFields []string `json:"-"`
4028}
4029
4030func (s *TestIssue) MarshalJSON() ([]byte, error) {
4031	type NoMethod TestIssue
4032	raw := NoMethod(*s)
4033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4034}
4035
4036// TestSuiteOverview: A summary of a test suite result either parsed
4037// from XML or uploaded directly by a user. Note: the API related
4038// comments are for StepService only. This message is also being used in
4039// ExecutionService in a read only mode for the corresponding step.
4040type TestSuiteOverview struct {
4041	// ElapsedTime: Elapsed time of test suite.
4042	ElapsedTime *Duration `json:"elapsedTime,omitempty"`
4043
4044	// ErrorCount: Number of test cases in error, typically set by the
4045	// service by parsing the xml_source. - In create/response: always set -
4046	// In update request: never
4047	ErrorCount int64 `json:"errorCount,omitempty"`
4048
4049	// FailureCount: Number of failed test cases, typically set by the
4050	// service by parsing the xml_source. May also be set by the user. - In
4051	// create/response: always set - In update request: never
4052	FailureCount int64 `json:"failureCount,omitempty"`
4053
4054	// FlakyCount: Number of flaky test cases, set by the service by rolling
4055	// up flaky test attempts. Present only for rollup test suite overview
4056	// at environment level. A step cannot have flaky test cases.
4057	FlakyCount int64 `json:"flakyCount,omitempty"`
4058
4059	// Name: The name of the test suite. - In create/response: always set -
4060	// In update request: never
4061	Name string `json:"name,omitempty"`
4062
4063	// SkippedCount: Number of test cases not run, typically set by the
4064	// service by parsing the xml_source. - In create/response: always set -
4065	// In update request: never
4066	SkippedCount int64 `json:"skippedCount,omitempty"`
4067
4068	// TotalCount: Number of test cases, typically set by the service by
4069	// parsing the xml_source. - In create/response: always set - In update
4070	// request: never
4071	TotalCount int64 `json:"totalCount,omitempty"`
4072
4073	// XmlSource: If this test suite was parsed from XML, this is the URI
4074	// where the original XML file is stored. Note: Multiple test suites can
4075	// share the same xml_source Returns INVALID_ARGUMENT if the uri format
4076	// is not supported. - In create/response: optional - In update request:
4077	// never
4078	XmlSource *FileReference `json:"xmlSource,omitempty"`
4079
4080	// ForceSendFields is a list of field names (e.g. "ElapsedTime") to
4081	// unconditionally include in API requests. By default, fields with
4082	// empty values are omitted from API requests. However, any non-pointer,
4083	// non-interface field appearing in ForceSendFields will be sent to the
4084	// server regardless of whether the field is empty or not. This may be
4085	// used to include empty fields in Patch requests.
4086	ForceSendFields []string `json:"-"`
4087
4088	// NullFields is a list of field names (e.g. "ElapsedTime") to include
4089	// in API requests with the JSON null value. By default, fields with
4090	// empty values are omitted from API requests. However, any field with
4091	// an empty value appearing in NullFields will be sent to the server as
4092	// null. It is an error if a field in this list has a non-empty value.
4093	// This may be used to include null fields in Patch requests.
4094	NullFields []string `json:"-"`
4095}
4096
4097func (s *TestSuiteOverview) MarshalJSON() ([]byte, error) {
4098	type NoMethod TestSuiteOverview
4099	raw := NoMethod(*s)
4100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4101}
4102
4103// TestTiming: Testing timing break down to know phases.
4104type TestTiming struct {
4105	// TestProcessDuration: How long it took to run the test process. - In
4106	// response: present if previously set. - In create/update request:
4107	// optional
4108	TestProcessDuration *Duration `json:"testProcessDuration,omitempty"`
4109
4110	// ForceSendFields is a list of field names (e.g. "TestProcessDuration")
4111	// to unconditionally include in API requests. By default, fields with
4112	// empty values are omitted from API requests. However, any non-pointer,
4113	// non-interface field appearing in ForceSendFields will be sent to the
4114	// server regardless of whether the field is empty or not. This may be
4115	// used to include empty fields in Patch requests.
4116	ForceSendFields []string `json:"-"`
4117
4118	// NullFields is a list of field names (e.g. "TestProcessDuration") to
4119	// include in API requests with the JSON null value. By default, fields
4120	// with empty values are omitted from API requests. However, any field
4121	// with an empty value appearing in NullFields will be sent to the
4122	// server as null. It is an error if a field in this list has a
4123	// non-empty value. This may be used to include null fields in Patch
4124	// requests.
4125	NullFields []string `json:"-"`
4126}
4127
4128func (s *TestTiming) MarshalJSON() ([]byte, error) {
4129	type NoMethod TestTiming
4130	raw := NoMethod(*s)
4131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4132}
4133
4134// Thumbnail: A single thumbnail, with its size and format.
4135type Thumbnail struct {
4136	// ContentType: The thumbnail's content type, i.e. "image/png". Always
4137	// set.
4138	ContentType string `json:"contentType,omitempty"`
4139
4140	// Data: The thumbnail file itself. That is, the bytes here are
4141	// precisely the bytes that make up the thumbnail file; they can be
4142	// served as an image as-is (with the appropriate content type.) Always
4143	// set.
4144	Data string `json:"data,omitempty"`
4145
4146	// HeightPx: The height of the thumbnail, in pixels. Always set.
4147	HeightPx int64 `json:"heightPx,omitempty"`
4148
4149	// WidthPx: The width of the thumbnail, in pixels. Always set.
4150	WidthPx int64 `json:"widthPx,omitempty"`
4151
4152	// ForceSendFields is a list of field names (e.g. "ContentType") to
4153	// unconditionally include in API requests. By default, fields with
4154	// empty values are omitted from API requests. However, any non-pointer,
4155	// non-interface field appearing in ForceSendFields will be sent to the
4156	// server regardless of whether the field is empty or not. This may be
4157	// used to include empty fields in Patch requests.
4158	ForceSendFields []string `json:"-"`
4159
4160	// NullFields is a list of field names (e.g. "ContentType") to include
4161	// in API requests with the JSON null value. By default, fields with
4162	// empty values are omitted from API requests. However, any field with
4163	// an empty value appearing in NullFields will be sent to the server as
4164	// null. It is an error if a field in this list has a non-empty value.
4165	// This may be used to include null fields in Patch requests.
4166	NullFields []string `json:"-"`
4167}
4168
4169func (s *Thumbnail) MarshalJSON() ([]byte, error) {
4170	type NoMethod Thumbnail
4171	raw := NoMethod(*s)
4172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4173}
4174
4175// Timestamp: A Timestamp represents a point in time independent of any
4176// time zone or local calendar, encoded as a count of seconds and
4177// fractions of seconds at nanosecond resolution. The count is relative
4178// to an epoch at UTC midnight on January 1, 1970, in the proleptic
4179// Gregorian calendar which extends the Gregorian calendar backwards to
4180// year one. All minutes are 60 seconds long. Leap seconds are "smeared"
4181// so that no leap second table is needed for interpretation, using a
4182// 24-hour linear smear (https://developers.google.com/time/smear). The
4183// range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
4184// By restricting to that range, we ensure that we can convert to and
4185// from RFC 3339 (https://www.ietf.org/rfc/rfc3339.txt) date strings.
4186type Timestamp struct {
4187	// Nanos: Non-negative fractions of a second at nanosecond resolution.
4188	// Negative second values with fractions must still have non-negative
4189	// nanos values that count forward in time. Must be from 0 to
4190	// 999,999,999 inclusive.
4191	Nanos int64 `json:"nanos,omitempty"`
4192
4193	// Seconds: Represents seconds of UTC time since Unix epoch
4194	// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
4195	// 9999-12-31T23:59:59Z inclusive.
4196	Seconds int64 `json:"seconds,omitempty,string"`
4197
4198	// ForceSendFields is a list of field names (e.g. "Nanos") to
4199	// unconditionally include in API requests. By default, fields with
4200	// empty values are omitted from API requests. However, any non-pointer,
4201	// non-interface field appearing in ForceSendFields will be sent to the
4202	// server regardless of whether the field is empty or not. This may be
4203	// used to include empty fields in Patch requests.
4204	ForceSendFields []string `json:"-"`
4205
4206	// NullFields is a list of field names (e.g. "Nanos") to include in API
4207	// requests with the JSON null value. By default, fields with empty
4208	// values are omitted from API requests. However, any field with an
4209	// empty value appearing in NullFields will be sent to the server as
4210	// null. It is an error if a field in this list has a non-empty value.
4211	// This may be used to include null fields in Patch requests.
4212	NullFields []string `json:"-"`
4213}
4214
4215func (s *Timestamp) MarshalJSON() ([]byte, error) {
4216	type NoMethod Timestamp
4217	raw := NoMethod(*s)
4218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4219}
4220
4221// ToolExecution: An execution of an arbitrary tool. It could be a test
4222// runner or a tool copying artifacts or deploying code.
4223type ToolExecution struct {
4224	// CommandLineArguments: The full tokenized command line including the
4225	// program name (equivalent to argv in a C program). - In response:
4226	// present if set by create request - In create request: optional - In
4227	// update request: never set
4228	CommandLineArguments []string `json:"commandLineArguments,omitempty"`
4229
4230	// ExitCode: Tool execution exit code. This field will be set once the
4231	// tool has exited. - In response: present if set by create/update
4232	// request - In create request: optional - In update request: optional,
4233	// a FAILED_PRECONDITION error will be returned if an exit_code is
4234	// already set.
4235	ExitCode *ToolExitCode `json:"exitCode,omitempty"`
4236
4237	// ToolLogs: References to any plain text logs output the tool
4238	// execution. This field can be set before the tool has exited in order
4239	// to be able to have access to a live view of the logs while the tool
4240	// is running. The maximum allowed number of tool logs per step is 1000.
4241	// - In response: present if set by create/update request - In create
4242	// request: optional - In update request: optional, any value provided
4243	// will be appended to the existing list
4244	ToolLogs []*FileReference `json:"toolLogs,omitempty"`
4245
4246	// ToolOutputs: References to opaque files of any format output by the
4247	// tool execution. The maximum allowed number of tool outputs per step
4248	// is 1000. - In response: present if set by create/update request - In
4249	// create request: optional - In update request: optional, any value
4250	// provided will be appended to the existing list
4251	ToolOutputs []*ToolOutputReference `json:"toolOutputs,omitempty"`
4252
4253	// ForceSendFields is a list of field names (e.g.
4254	// "CommandLineArguments") to unconditionally include in API requests.
4255	// By default, fields with empty values are omitted from API requests.
4256	// However, any non-pointer, non-interface field appearing in
4257	// ForceSendFields will be sent to the server regardless of whether the
4258	// field is empty or not. This may be used to include empty fields in
4259	// Patch requests.
4260	ForceSendFields []string `json:"-"`
4261
4262	// NullFields is a list of field names (e.g. "CommandLineArguments") to
4263	// include in API requests with the JSON null value. By default, fields
4264	// with empty values are omitted from API requests. However, any field
4265	// with an empty value appearing in NullFields will be sent to the
4266	// server as null. It is an error if a field in this list has a
4267	// non-empty value. This may be used to include null fields in Patch
4268	// requests.
4269	NullFields []string `json:"-"`
4270}
4271
4272func (s *ToolExecution) MarshalJSON() ([]byte, error) {
4273	type NoMethod ToolExecution
4274	raw := NoMethod(*s)
4275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4276}
4277
4278// ToolExecutionStep: Generic tool step to be used for binaries we do
4279// not explicitly support. For example: running cp to copy artifacts
4280// from one location to another.
4281type ToolExecutionStep struct {
4282	// ToolExecution: A Tool execution. - In response: present if set by
4283	// create/update request - In create/update request: optional
4284	ToolExecution *ToolExecution `json:"toolExecution,omitempty"`
4285
4286	// ForceSendFields is a list of field names (e.g. "ToolExecution") to
4287	// unconditionally include in API requests. By default, fields with
4288	// empty values are omitted from API requests. However, any non-pointer,
4289	// non-interface field appearing in ForceSendFields will be sent to the
4290	// server regardless of whether the field is empty or not. This may be
4291	// used to include empty fields in Patch requests.
4292	ForceSendFields []string `json:"-"`
4293
4294	// NullFields is a list of field names (e.g. "ToolExecution") to include
4295	// in API requests with the JSON null value. By default, fields with
4296	// empty values are omitted from API requests. However, any field with
4297	// an empty value appearing in NullFields will be sent to the server as
4298	// null. It is an error if a field in this list has a non-empty value.
4299	// This may be used to include null fields in Patch requests.
4300	NullFields []string `json:"-"`
4301}
4302
4303func (s *ToolExecutionStep) MarshalJSON() ([]byte, error) {
4304	type NoMethod ToolExecutionStep
4305	raw := NoMethod(*s)
4306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4307}
4308
4309// ToolExitCode: Exit code from a tool execution.
4310type ToolExitCode struct {
4311	// Number: Tool execution exit code. A value of 0 means that the
4312	// execution was successful. - In response: always set - In
4313	// create/update request: always set
4314	Number int64 `json:"number,omitempty"`
4315
4316	// ForceSendFields is a list of field names (e.g. "Number") to
4317	// unconditionally include in API requests. By default, fields with
4318	// empty values are omitted from API requests. However, any non-pointer,
4319	// non-interface field appearing in ForceSendFields will be sent to the
4320	// server regardless of whether the field is empty or not. This may be
4321	// used to include empty fields in Patch requests.
4322	ForceSendFields []string `json:"-"`
4323
4324	// NullFields is a list of field names (e.g. "Number") to include in API
4325	// requests with the JSON null value. By default, fields with empty
4326	// values are omitted from API requests. However, any field with an
4327	// empty value appearing in NullFields will be sent to the server as
4328	// null. It is an error if a field in this list has a non-empty value.
4329	// This may be used to include null fields in Patch requests.
4330	NullFields []string `json:"-"`
4331}
4332
4333func (s *ToolExitCode) MarshalJSON() ([]byte, error) {
4334	type NoMethod ToolExitCode
4335	raw := NoMethod(*s)
4336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4337}
4338
4339// ToolOutputReference: A reference to a ToolExecution output file.
4340type ToolOutputReference struct {
4341	// CreationTime: The creation time of the file. - In response: present
4342	// if set by create/update request - In create/update request: optional
4343	CreationTime *Timestamp `json:"creationTime,omitempty"`
4344
4345	// Output: A FileReference to an output file. - In response: always set
4346	// - In create/update request: always set
4347	Output *FileReference `json:"output,omitempty"`
4348
4349	// TestCase: The test case to which this output file belongs. - In
4350	// response: present if set by create/update request - In create/update
4351	// request: optional
4352	TestCase *TestCaseReference `json:"testCase,omitempty"`
4353
4354	// ForceSendFields is a list of field names (e.g. "CreationTime") to
4355	// unconditionally include in API requests. By default, fields with
4356	// empty values are omitted from API requests. However, any non-pointer,
4357	// non-interface field appearing in ForceSendFields will be sent to the
4358	// server regardless of whether the field is empty or not. This may be
4359	// used to include empty fields in Patch requests.
4360	ForceSendFields []string `json:"-"`
4361
4362	// NullFields is a list of field names (e.g. "CreationTime") to include
4363	// in API requests with the JSON null value. By default, fields with
4364	// empty values are omitted from API requests. However, any field with
4365	// an empty value appearing in NullFields will be sent to the server as
4366	// null. It is an error if a field in this list has a non-empty value.
4367	// This may be used to include null fields in Patch requests.
4368	NullFields []string `json:"-"`
4369}
4370
4371func (s *ToolOutputReference) MarshalJSON() ([]byte, error) {
4372	type NoMethod ToolOutputReference
4373	raw := NoMethod(*s)
4374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4375}
4376
4377// UIElementTooDeep: A warning that the screen hierarchy is deeper than
4378// the recommended threshold.
4379type UIElementTooDeep struct {
4380	// Depth: The depth of the screen element
4381	Depth int64 `json:"depth,omitempty"`
4382
4383	// ScreenId: The screen id of the element
4384	ScreenId string `json:"screenId,omitempty"`
4385
4386	// ScreenStateId: The screen state id of the element
4387	ScreenStateId string `json:"screenStateId,omitempty"`
4388
4389	// ForceSendFields is a list of field names (e.g. "Depth") to
4390	// unconditionally include in API requests. By default, fields with
4391	// empty values are omitted from API requests. However, any non-pointer,
4392	// non-interface field appearing in ForceSendFields will be sent to the
4393	// server regardless of whether the field is empty or not. This may be
4394	// used to include empty fields in Patch requests.
4395	ForceSendFields []string `json:"-"`
4396
4397	// NullFields is a list of field names (e.g. "Depth") to include in API
4398	// requests with the JSON null value. By default, fields with empty
4399	// values are omitted from API requests. However, any field with an
4400	// empty value appearing in NullFields will be sent to the server as
4401	// null. It is an error if a field in this list has a non-empty value.
4402	// This may be used to include null fields in Patch requests.
4403	NullFields []string `json:"-"`
4404}
4405
4406func (s *UIElementTooDeep) MarshalJSON() ([]byte, error) {
4407	type NoMethod UIElementTooDeep
4408	raw := NoMethod(*s)
4409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4410}
4411
4412// UnspecifiedWarning: Default unspecified warning.
4413type UnspecifiedWarning struct {
4414}
4415
4416// UnusedRoboDirective: Additional details of an unused robodirective.
4417type UnusedRoboDirective struct {
4418	// ResourceName: The name of the resource that was unused.
4419	ResourceName string `json:"resourceName,omitempty"`
4420
4421	// ForceSendFields is a list of field names (e.g. "ResourceName") to
4422	// unconditionally include in API requests. By default, fields with
4423	// empty values are omitted from API requests. However, any non-pointer,
4424	// non-interface field appearing in ForceSendFields will be sent to the
4425	// server regardless of whether the field is empty or not. This may be
4426	// used to include empty fields in Patch requests.
4427	ForceSendFields []string `json:"-"`
4428
4429	// NullFields is a list of field names (e.g. "ResourceName") to include
4430	// in API requests with the JSON null value. By default, fields with
4431	// empty values are omitted from API requests. However, any field with
4432	// an empty value appearing in NullFields will be sent to the server as
4433	// null. It is an error if a field in this list has a non-empty value.
4434	// This may be used to include null fields in Patch requests.
4435	NullFields []string `json:"-"`
4436}
4437
4438func (s *UnusedRoboDirective) MarshalJSON() ([]byte, error) {
4439	type NoMethod UnusedRoboDirective
4440	raw := NoMethod(*s)
4441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4442}
4443
4444// UpgradeInsight: This insight is a recommendation to upgrade a given
4445// library to the specified version, in order to avoid dependencies on
4446// non-SDK APIs.
4447type UpgradeInsight struct {
4448	// PackageName: The name of the package to be upgraded.
4449	PackageName string `json:"packageName,omitempty"`
4450
4451	// UpgradeToVersion: The suggested version to upgrade to. Optional: In
4452	// case we are not sure which version solves this problem
4453	UpgradeToVersion string `json:"upgradeToVersion,omitempty"`
4454
4455	// ForceSendFields is a list of field names (e.g. "PackageName") to
4456	// unconditionally include in API requests. By default, fields with
4457	// empty values are omitted from API requests. However, any non-pointer,
4458	// non-interface field appearing in ForceSendFields will be sent to the
4459	// server regardless of whether the field is empty or not. This may be
4460	// used to include empty fields in Patch requests.
4461	ForceSendFields []string `json:"-"`
4462
4463	// NullFields is a list of field names (e.g. "PackageName") to include
4464	// in API requests with the JSON null value. By default, fields with
4465	// empty values are omitted from API requests. However, any field with
4466	// an empty value appearing in NullFields will be sent to the server as
4467	// null. It is an error if a field in this list has a non-empty value.
4468	// This may be used to include null fields in Patch requests.
4469	NullFields []string `json:"-"`
4470}
4471
4472func (s *UpgradeInsight) MarshalJSON() ([]byte, error) {
4473	type NoMethod UpgradeInsight
4474	raw := NoMethod(*s)
4475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4476}
4477
4478// UsedRoboDirective: Additional details of a used Robo directive.
4479type UsedRoboDirective struct {
4480	// ResourceName: The name of the resource that was used.
4481	ResourceName string `json:"resourceName,omitempty"`
4482
4483	// ForceSendFields is a list of field names (e.g. "ResourceName") to
4484	// unconditionally include in API requests. By default, fields with
4485	// empty values are omitted from API requests. However, any non-pointer,
4486	// non-interface field appearing in ForceSendFields will be sent to the
4487	// server regardless of whether the field is empty or not. This may be
4488	// used to include empty fields in Patch requests.
4489	ForceSendFields []string `json:"-"`
4490
4491	// NullFields is a list of field names (e.g. "ResourceName") to include
4492	// in API requests with the JSON null value. By default, fields with
4493	// empty values are omitted from API requests. However, any field with
4494	// an empty value appearing in NullFields will be sent to the server as
4495	// null. It is an error if a field in this list has a non-empty value.
4496	// This may be used to include null fields in Patch requests.
4497	NullFields []string `json:"-"`
4498}
4499
4500func (s *UsedRoboDirective) MarshalJSON() ([]byte, error) {
4501	type NoMethod UsedRoboDirective
4502	raw := NoMethod(*s)
4503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4504}
4505
4506// UsedRoboIgnoreDirective: Additional details of a used Robo directive
4507// with an ignore action. Note: This is a different scenario than unused
4508// directive.
4509type UsedRoboIgnoreDirective struct {
4510	// ResourceName: The name of the resource that was ignored.
4511	ResourceName string `json:"resourceName,omitempty"`
4512
4513	// ForceSendFields is a list of field names (e.g. "ResourceName") to
4514	// unconditionally include in API requests. By default, fields with
4515	// empty values are omitted from API requests. However, any non-pointer,
4516	// non-interface field appearing in ForceSendFields will be sent to the
4517	// server regardless of whether the field is empty or not. This may be
4518	// used to include empty fields in Patch requests.
4519	ForceSendFields []string `json:"-"`
4520
4521	// NullFields is a list of field names (e.g. "ResourceName") to include
4522	// in API requests with the JSON null value. By default, fields with
4523	// empty values are omitted from API requests. However, any field with
4524	// an empty value appearing in NullFields will be sent to the server as
4525	// null. It is an error if a field in this list has a non-empty value.
4526	// This may be used to include null fields in Patch requests.
4527	NullFields []string `json:"-"`
4528}
4529
4530func (s *UsedRoboIgnoreDirective) MarshalJSON() ([]byte, error) {
4531	type NoMethod UsedRoboIgnoreDirective
4532	raw := NoMethod(*s)
4533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4534}
4535
4536// method id "toolresults.projects.getSettings":
4537
4538type ProjectsGetSettingsCall struct {
4539	s            *Service
4540	projectId    string
4541	urlParams_   gensupport.URLParams
4542	ifNoneMatch_ string
4543	ctx_         context.Context
4544	header_      http.Header
4545}
4546
4547// GetSettings: Gets the Tool Results settings for a project. May return
4548// any of the following canonical error codes: - PERMISSION_DENIED - if
4549// the user is not authorized to read from project
4550//
4551// - projectId: A Project id.
4552func (r *ProjectsService) GetSettings(projectId string) *ProjectsGetSettingsCall {
4553	c := &ProjectsGetSettingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4554	c.projectId = projectId
4555	return c
4556}
4557
4558// Fields allows partial responses to be retrieved. See
4559// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4560// for more information.
4561func (c *ProjectsGetSettingsCall) Fields(s ...googleapi.Field) *ProjectsGetSettingsCall {
4562	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4563	return c
4564}
4565
4566// IfNoneMatch sets the optional parameter which makes the operation
4567// fail if the object's ETag matches the given value. This is useful for
4568// getting updates only after the object has changed since the last
4569// request. Use googleapi.IsNotModified to check whether the response
4570// error from Do is the result of In-None-Match.
4571func (c *ProjectsGetSettingsCall) IfNoneMatch(entityTag string) *ProjectsGetSettingsCall {
4572	c.ifNoneMatch_ = entityTag
4573	return c
4574}
4575
4576// Context sets the context to be used in this call's Do method. Any
4577// pending HTTP request will be aborted if the provided context is
4578// canceled.
4579func (c *ProjectsGetSettingsCall) Context(ctx context.Context) *ProjectsGetSettingsCall {
4580	c.ctx_ = ctx
4581	return c
4582}
4583
4584// Header returns an http.Header that can be modified by the caller to
4585// add HTTP headers to the request.
4586func (c *ProjectsGetSettingsCall) Header() http.Header {
4587	if c.header_ == nil {
4588		c.header_ = make(http.Header)
4589	}
4590	return c.header_
4591}
4592
4593func (c *ProjectsGetSettingsCall) doRequest(alt string) (*http.Response, error) {
4594	reqHeaders := make(http.Header)
4595	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4596	for k, v := range c.header_ {
4597		reqHeaders[k] = v
4598	}
4599	reqHeaders.Set("User-Agent", c.s.userAgent())
4600	if c.ifNoneMatch_ != "" {
4601		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4602	}
4603	var body io.Reader = nil
4604	c.urlParams_.Set("alt", alt)
4605	c.urlParams_.Set("prettyPrint", "false")
4606	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/settings")
4607	urls += "?" + c.urlParams_.Encode()
4608	req, err := http.NewRequest("GET", urls, body)
4609	if err != nil {
4610		return nil, err
4611	}
4612	req.Header = reqHeaders
4613	googleapi.Expand(req.URL, map[string]string{
4614		"projectId": c.projectId,
4615	})
4616	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4617}
4618
4619// Do executes the "toolresults.projects.getSettings" call.
4620// Exactly one of *ProjectSettings or error will be non-nil. Any non-2xx
4621// status code is an error. Response headers are in either
4622// *ProjectSettings.ServerResponse.Header or (if a response was returned
4623// at all) in error.(*googleapi.Error).Header. Use
4624// googleapi.IsNotModified to check whether the returned error was
4625// because http.StatusNotModified was returned.
4626func (c *ProjectsGetSettingsCall) Do(opts ...googleapi.CallOption) (*ProjectSettings, error) {
4627	gensupport.SetOptions(c.urlParams_, opts...)
4628	res, err := c.doRequest("json")
4629	if res != nil && res.StatusCode == http.StatusNotModified {
4630		if res.Body != nil {
4631			res.Body.Close()
4632		}
4633		return nil, &googleapi.Error{
4634			Code:   res.StatusCode,
4635			Header: res.Header,
4636		}
4637	}
4638	if err != nil {
4639		return nil, err
4640	}
4641	defer googleapi.CloseBody(res)
4642	if err := googleapi.CheckResponse(res); err != nil {
4643		return nil, err
4644	}
4645	ret := &ProjectSettings{
4646		ServerResponse: googleapi.ServerResponse{
4647			Header:         res.Header,
4648			HTTPStatusCode: res.StatusCode,
4649		},
4650	}
4651	target := &ret
4652	if err := gensupport.DecodeResponse(target, res); err != nil {
4653		return nil, err
4654	}
4655	return ret, nil
4656	// {
4657	//   "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",
4658	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/settings",
4659	//   "httpMethod": "GET",
4660	//   "id": "toolresults.projects.getSettings",
4661	//   "parameterOrder": [
4662	//     "projectId"
4663	//   ],
4664	//   "parameters": {
4665	//     "projectId": {
4666	//       "description": "A Project id. Required.",
4667	//       "location": "path",
4668	//       "required": true,
4669	//       "type": "string"
4670	//     }
4671	//   },
4672	//   "path": "toolresults/v1beta3/projects/{projectId}/settings",
4673	//   "response": {
4674	//     "$ref": "ProjectSettings"
4675	//   },
4676	//   "scopes": [
4677	//     "https://www.googleapis.com/auth/cloud-platform"
4678	//   ]
4679	// }
4680
4681}
4682
4683// method id "toolresults.projects.initializeSettings":
4684
4685type ProjectsInitializeSettingsCall struct {
4686	s          *Service
4687	projectId  string
4688	urlParams_ gensupport.URLParams
4689	ctx_       context.Context
4690	header_    http.Header
4691}
4692
4693// InitializeSettings: Creates resources for settings which have not yet
4694// been set. Currently, this creates a single resource: a Google Cloud
4695// Storage bucket, to be used as the default bucket for this project.
4696// The bucket is created in an FTL-own storage project. Except for in
4697// rare cases, calling this method in parallel from multiple clients
4698// will only create a single bucket. In order to avoid unnecessary
4699// storage charges, the bucket is configured to automatically delete
4700// objects older than 90 days. The bucket is created with the following
4701// permissions: - Owner access for owners of central storage project
4702// (FTL-owned) - Writer access for owners/editors of customer project -
4703// Reader access for viewers of customer project The default ACL on
4704// objects created in the bucket is: - Owner access for owners of
4705// central storage project - Reader access for owners/editors/viewers of
4706// customer project See Google Cloud Storage documentation for more
4707// details. If there is already a default bucket set and the project can
4708// access the bucket, this call does nothing. However, if the project
4709// doesn't have the permission to access the bucket or the bucket is
4710// deleted, a new bucket will be created. May return any canonical error
4711// codes, including the following: - PERMISSION_DENIED - if the user is
4712// not authorized to write to project - Any error code raised by Google
4713// Cloud Storage
4714//
4715// - projectId: A Project id.
4716func (r *ProjectsService) InitializeSettings(projectId string) *ProjectsInitializeSettingsCall {
4717	c := &ProjectsInitializeSettingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4718	c.projectId = projectId
4719	return c
4720}
4721
4722// Fields allows partial responses to be retrieved. See
4723// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4724// for more information.
4725func (c *ProjectsInitializeSettingsCall) Fields(s ...googleapi.Field) *ProjectsInitializeSettingsCall {
4726	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4727	return c
4728}
4729
4730// Context sets the context to be used in this call's Do method. Any
4731// pending HTTP request will be aborted if the provided context is
4732// canceled.
4733func (c *ProjectsInitializeSettingsCall) Context(ctx context.Context) *ProjectsInitializeSettingsCall {
4734	c.ctx_ = ctx
4735	return c
4736}
4737
4738// Header returns an http.Header that can be modified by the caller to
4739// add HTTP headers to the request.
4740func (c *ProjectsInitializeSettingsCall) Header() http.Header {
4741	if c.header_ == nil {
4742		c.header_ = make(http.Header)
4743	}
4744	return c.header_
4745}
4746
4747func (c *ProjectsInitializeSettingsCall) doRequest(alt string) (*http.Response, error) {
4748	reqHeaders := make(http.Header)
4749	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4750	for k, v := range c.header_ {
4751		reqHeaders[k] = v
4752	}
4753	reqHeaders.Set("User-Agent", c.s.userAgent())
4754	var body io.Reader = nil
4755	c.urlParams_.Set("alt", alt)
4756	c.urlParams_.Set("prettyPrint", "false")
4757	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}:initializeSettings")
4758	urls += "?" + c.urlParams_.Encode()
4759	req, err := http.NewRequest("POST", urls, body)
4760	if err != nil {
4761		return nil, err
4762	}
4763	req.Header = reqHeaders
4764	googleapi.Expand(req.URL, map[string]string{
4765		"projectId": c.projectId,
4766	})
4767	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4768}
4769
4770// Do executes the "toolresults.projects.initializeSettings" call.
4771// Exactly one of *ProjectSettings or error will be non-nil. Any non-2xx
4772// status code is an error. Response headers are in either
4773// *ProjectSettings.ServerResponse.Header or (if a response was returned
4774// at all) in error.(*googleapi.Error).Header. Use
4775// googleapi.IsNotModified to check whether the returned error was
4776// because http.StatusNotModified was returned.
4777func (c *ProjectsInitializeSettingsCall) Do(opts ...googleapi.CallOption) (*ProjectSettings, error) {
4778	gensupport.SetOptions(c.urlParams_, opts...)
4779	res, err := c.doRequest("json")
4780	if res != nil && res.StatusCode == http.StatusNotModified {
4781		if res.Body != nil {
4782			res.Body.Close()
4783		}
4784		return nil, &googleapi.Error{
4785			Code:   res.StatusCode,
4786			Header: res.Header,
4787		}
4788	}
4789	if err != nil {
4790		return nil, err
4791	}
4792	defer googleapi.CloseBody(res)
4793	if err := googleapi.CheckResponse(res); err != nil {
4794		return nil, err
4795	}
4796	ret := &ProjectSettings{
4797		ServerResponse: googleapi.ServerResponse{
4798			Header:         res.Header,
4799			HTTPStatusCode: res.StatusCode,
4800		},
4801	}
4802	target := &ret
4803	if err := gensupport.DecodeResponse(target, res); err != nil {
4804		return nil, err
4805	}
4806	return ret, nil
4807	// {
4808	//   "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",
4809	//   "flatPath": "toolresults/v1beta3/projects/{projectId}:initializeSettings",
4810	//   "httpMethod": "POST",
4811	//   "id": "toolresults.projects.initializeSettings",
4812	//   "parameterOrder": [
4813	//     "projectId"
4814	//   ],
4815	//   "parameters": {
4816	//     "projectId": {
4817	//       "description": "A Project id. Required.",
4818	//       "location": "path",
4819	//       "required": true,
4820	//       "type": "string"
4821	//     }
4822	//   },
4823	//   "path": "toolresults/v1beta3/projects/{projectId}:initializeSettings",
4824	//   "response": {
4825	//     "$ref": "ProjectSettings"
4826	//   },
4827	//   "scopes": [
4828	//     "https://www.googleapis.com/auth/cloud-platform"
4829	//   ]
4830	// }
4831
4832}
4833
4834// method id "toolresults.projects.histories.create":
4835
4836type ProjectsHistoriesCreateCall struct {
4837	s          *Service
4838	projectId  string
4839	history    *History
4840	urlParams_ gensupport.URLParams
4841	ctx_       context.Context
4842	header_    http.Header
4843}
4844
4845// Create: Creates a History. The returned History will have the id set.
4846// May return any of the following canonical error codes: -
4847// PERMISSION_DENIED - if the user is not authorized to write to project
4848// - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the
4849// containing project does not exist
4850//
4851// - projectId: A Project id.
4852func (r *ProjectsHistoriesService) Create(projectId string, history *History) *ProjectsHistoriesCreateCall {
4853	c := &ProjectsHistoriesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4854	c.projectId = projectId
4855	c.history = history
4856	return c
4857}
4858
4859// RequestId sets the optional parameter "requestId": A unique request
4860// ID for server to detect duplicated requests. For example, a UUID.
4861// Optional, but strongly recommended.
4862func (c *ProjectsHistoriesCreateCall) RequestId(requestId string) *ProjectsHistoriesCreateCall {
4863	c.urlParams_.Set("requestId", requestId)
4864	return c
4865}
4866
4867// Fields allows partial responses to be retrieved. See
4868// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4869// for more information.
4870func (c *ProjectsHistoriesCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesCreateCall {
4871	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4872	return c
4873}
4874
4875// Context sets the context to be used in this call's Do method. Any
4876// pending HTTP request will be aborted if the provided context is
4877// canceled.
4878func (c *ProjectsHistoriesCreateCall) Context(ctx context.Context) *ProjectsHistoriesCreateCall {
4879	c.ctx_ = ctx
4880	return c
4881}
4882
4883// Header returns an http.Header that can be modified by the caller to
4884// add HTTP headers to the request.
4885func (c *ProjectsHistoriesCreateCall) Header() http.Header {
4886	if c.header_ == nil {
4887		c.header_ = make(http.Header)
4888	}
4889	return c.header_
4890}
4891
4892func (c *ProjectsHistoriesCreateCall) doRequest(alt string) (*http.Response, error) {
4893	reqHeaders := make(http.Header)
4894	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4895	for k, v := range c.header_ {
4896		reqHeaders[k] = v
4897	}
4898	reqHeaders.Set("User-Agent", c.s.userAgent())
4899	var body io.Reader = nil
4900	body, err := googleapi.WithoutDataWrapper.JSONReader(c.history)
4901	if err != nil {
4902		return nil, err
4903	}
4904	reqHeaders.Set("Content-Type", "application/json")
4905	c.urlParams_.Set("alt", alt)
4906	c.urlParams_.Set("prettyPrint", "false")
4907	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories")
4908	urls += "?" + c.urlParams_.Encode()
4909	req, err := http.NewRequest("POST", urls, body)
4910	if err != nil {
4911		return nil, err
4912	}
4913	req.Header = reqHeaders
4914	googleapi.Expand(req.URL, map[string]string{
4915		"projectId": c.projectId,
4916	})
4917	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4918}
4919
4920// Do executes the "toolresults.projects.histories.create" call.
4921// Exactly one of *History or error will be non-nil. Any non-2xx status
4922// code is an error. Response headers are in either
4923// *History.ServerResponse.Header or (if a response was returned at all)
4924// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4925// check whether the returned error was because http.StatusNotModified
4926// was returned.
4927func (c *ProjectsHistoriesCreateCall) Do(opts ...googleapi.CallOption) (*History, error) {
4928	gensupport.SetOptions(c.urlParams_, opts...)
4929	res, err := c.doRequest("json")
4930	if res != nil && res.StatusCode == http.StatusNotModified {
4931		if res.Body != nil {
4932			res.Body.Close()
4933		}
4934		return nil, &googleapi.Error{
4935			Code:   res.StatusCode,
4936			Header: res.Header,
4937		}
4938	}
4939	if err != nil {
4940		return nil, err
4941	}
4942	defer googleapi.CloseBody(res)
4943	if err := googleapi.CheckResponse(res); err != nil {
4944		return nil, err
4945	}
4946	ret := &History{
4947		ServerResponse: googleapi.ServerResponse{
4948			Header:         res.Header,
4949			HTTPStatusCode: res.StatusCode,
4950		},
4951	}
4952	target := &ret
4953	if err := gensupport.DecodeResponse(target, res); err != nil {
4954		return nil, err
4955	}
4956	return ret, nil
4957	// {
4958	//   "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",
4959	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories",
4960	//   "httpMethod": "POST",
4961	//   "id": "toolresults.projects.histories.create",
4962	//   "parameterOrder": [
4963	//     "projectId"
4964	//   ],
4965	//   "parameters": {
4966	//     "projectId": {
4967	//       "description": "A Project id. Required.",
4968	//       "location": "path",
4969	//       "required": true,
4970	//       "type": "string"
4971	//     },
4972	//     "requestId": {
4973	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID. Optional, but strongly recommended.",
4974	//       "location": "query",
4975	//       "type": "string"
4976	//     }
4977	//   },
4978	//   "path": "toolresults/v1beta3/projects/{projectId}/histories",
4979	//   "request": {
4980	//     "$ref": "History"
4981	//   },
4982	//   "response": {
4983	//     "$ref": "History"
4984	//   },
4985	//   "scopes": [
4986	//     "https://www.googleapis.com/auth/cloud-platform"
4987	//   ]
4988	// }
4989
4990}
4991
4992// method id "toolresults.projects.histories.get":
4993
4994type ProjectsHistoriesGetCall struct {
4995	s            *Service
4996	projectId    string
4997	historyId    string
4998	urlParams_   gensupport.URLParams
4999	ifNoneMatch_ string
5000	ctx_         context.Context
5001	header_      http.Header
5002}
5003
5004// Get: Gets a History. May return any of the following canonical error
5005// codes: - PERMISSION_DENIED - if the user is not authorized to read
5006// project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND
5007// - if the History does not exist
5008//
5009// - historyId: A History id.
5010// - projectId: A Project id.
5011func (r *ProjectsHistoriesService) Get(projectId string, historyId string) *ProjectsHistoriesGetCall {
5012	c := &ProjectsHistoriesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5013	c.projectId = projectId
5014	c.historyId = historyId
5015	return c
5016}
5017
5018// Fields allows partial responses to be retrieved. See
5019// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5020// for more information.
5021func (c *ProjectsHistoriesGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesGetCall {
5022	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5023	return c
5024}
5025
5026// IfNoneMatch sets the optional parameter which makes the operation
5027// fail if the object's ETag matches the given value. This is useful for
5028// getting updates only after the object has changed since the last
5029// request. Use googleapi.IsNotModified to check whether the response
5030// error from Do is the result of In-None-Match.
5031func (c *ProjectsHistoriesGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesGetCall {
5032	c.ifNoneMatch_ = entityTag
5033	return c
5034}
5035
5036// Context sets the context to be used in this call's Do method. Any
5037// pending HTTP request will be aborted if the provided context is
5038// canceled.
5039func (c *ProjectsHistoriesGetCall) Context(ctx context.Context) *ProjectsHistoriesGetCall {
5040	c.ctx_ = ctx
5041	return c
5042}
5043
5044// Header returns an http.Header that can be modified by the caller to
5045// add HTTP headers to the request.
5046func (c *ProjectsHistoriesGetCall) Header() http.Header {
5047	if c.header_ == nil {
5048		c.header_ = make(http.Header)
5049	}
5050	return c.header_
5051}
5052
5053func (c *ProjectsHistoriesGetCall) doRequest(alt string) (*http.Response, error) {
5054	reqHeaders := make(http.Header)
5055	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5056	for k, v := range c.header_ {
5057		reqHeaders[k] = v
5058	}
5059	reqHeaders.Set("User-Agent", c.s.userAgent())
5060	if c.ifNoneMatch_ != "" {
5061		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5062	}
5063	var body io.Reader = nil
5064	c.urlParams_.Set("alt", alt)
5065	c.urlParams_.Set("prettyPrint", "false")
5066	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}")
5067	urls += "?" + c.urlParams_.Encode()
5068	req, err := http.NewRequest("GET", urls, body)
5069	if err != nil {
5070		return nil, err
5071	}
5072	req.Header = reqHeaders
5073	googleapi.Expand(req.URL, map[string]string{
5074		"projectId": c.projectId,
5075		"historyId": c.historyId,
5076	})
5077	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5078}
5079
5080// Do executes the "toolresults.projects.histories.get" call.
5081// Exactly one of *History or error will be non-nil. Any non-2xx status
5082// code is an error. Response headers are in either
5083// *History.ServerResponse.Header or (if a response was returned at all)
5084// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5085// check whether the returned error was because http.StatusNotModified
5086// was returned.
5087func (c *ProjectsHistoriesGetCall) Do(opts ...googleapi.CallOption) (*History, error) {
5088	gensupport.SetOptions(c.urlParams_, opts...)
5089	res, err := c.doRequest("json")
5090	if res != nil && res.StatusCode == http.StatusNotModified {
5091		if res.Body != nil {
5092			res.Body.Close()
5093		}
5094		return nil, &googleapi.Error{
5095			Code:   res.StatusCode,
5096			Header: res.Header,
5097		}
5098	}
5099	if err != nil {
5100		return nil, err
5101	}
5102	defer googleapi.CloseBody(res)
5103	if err := googleapi.CheckResponse(res); err != nil {
5104		return nil, err
5105	}
5106	ret := &History{
5107		ServerResponse: googleapi.ServerResponse{
5108			Header:         res.Header,
5109			HTTPStatusCode: res.StatusCode,
5110		},
5111	}
5112	target := &ret
5113	if err := gensupport.DecodeResponse(target, res); err != nil {
5114		return nil, err
5115	}
5116	return ret, nil
5117	// {
5118	//   "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",
5119	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}",
5120	//   "httpMethod": "GET",
5121	//   "id": "toolresults.projects.histories.get",
5122	//   "parameterOrder": [
5123	//     "projectId",
5124	//     "historyId"
5125	//   ],
5126	//   "parameters": {
5127	//     "historyId": {
5128	//       "description": "A History id. Required.",
5129	//       "location": "path",
5130	//       "required": true,
5131	//       "type": "string"
5132	//     },
5133	//     "projectId": {
5134	//       "description": "A Project id. Required.",
5135	//       "location": "path",
5136	//       "required": true,
5137	//       "type": "string"
5138	//     }
5139	//   },
5140	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}",
5141	//   "response": {
5142	//     "$ref": "History"
5143	//   },
5144	//   "scopes": [
5145	//     "https://www.googleapis.com/auth/cloud-platform"
5146	//   ]
5147	// }
5148
5149}
5150
5151// method id "toolresults.projects.histories.list":
5152
5153type ProjectsHistoriesListCall struct {
5154	s            *Service
5155	projectId    string
5156	urlParams_   gensupport.URLParams
5157	ifNoneMatch_ string
5158	ctx_         context.Context
5159	header_      http.Header
5160}
5161
5162// List: Lists Histories for a given Project. The histories are sorted
5163// by modification time in descending order. The history_id key will be
5164// used to order the history with the same modification time. May return
5165// any of the following canonical error codes: - PERMISSION_DENIED - if
5166// the user is not authorized to read project - INVALID_ARGUMENT - if
5167// the request is malformed - NOT_FOUND - if the History does not exist
5168//
5169// - projectId: A Project id.
5170func (r *ProjectsHistoriesService) List(projectId string) *ProjectsHistoriesListCall {
5171	c := &ProjectsHistoriesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5172	c.projectId = projectId
5173	return c
5174}
5175
5176// FilterByName sets the optional parameter "filterByName": If set, only
5177// return histories with the given name.
5178func (c *ProjectsHistoriesListCall) FilterByName(filterByName string) *ProjectsHistoriesListCall {
5179	c.urlParams_.Set("filterByName", filterByName)
5180	return c
5181}
5182
5183// PageSize sets the optional parameter "pageSize": The maximum number
5184// of Histories to fetch. Default value: 20. The server will use this
5185// default if the field is not set or has a value of 0. Any value
5186// greater than 100 will be treated as 100.
5187func (c *ProjectsHistoriesListCall) PageSize(pageSize int64) *ProjectsHistoriesListCall {
5188	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
5189	return c
5190}
5191
5192// PageToken sets the optional parameter "pageToken": A continuation
5193// token to resume the query at the next item.
5194func (c *ProjectsHistoriesListCall) PageToken(pageToken string) *ProjectsHistoriesListCall {
5195	c.urlParams_.Set("pageToken", pageToken)
5196	return c
5197}
5198
5199// Fields allows partial responses to be retrieved. See
5200// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5201// for more information.
5202func (c *ProjectsHistoriesListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesListCall {
5203	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5204	return c
5205}
5206
5207// IfNoneMatch sets the optional parameter which makes the operation
5208// fail if the object's ETag matches the given value. This is useful for
5209// getting updates only after the object has changed since the last
5210// request. Use googleapi.IsNotModified to check whether the response
5211// error from Do is the result of In-None-Match.
5212func (c *ProjectsHistoriesListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesListCall {
5213	c.ifNoneMatch_ = entityTag
5214	return c
5215}
5216
5217// Context sets the context to be used in this call's Do method. Any
5218// pending HTTP request will be aborted if the provided context is
5219// canceled.
5220func (c *ProjectsHistoriesListCall) Context(ctx context.Context) *ProjectsHistoriesListCall {
5221	c.ctx_ = ctx
5222	return c
5223}
5224
5225// Header returns an http.Header that can be modified by the caller to
5226// add HTTP headers to the request.
5227func (c *ProjectsHistoriesListCall) Header() http.Header {
5228	if c.header_ == nil {
5229		c.header_ = make(http.Header)
5230	}
5231	return c.header_
5232}
5233
5234func (c *ProjectsHistoriesListCall) doRequest(alt string) (*http.Response, error) {
5235	reqHeaders := make(http.Header)
5236	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5237	for k, v := range c.header_ {
5238		reqHeaders[k] = v
5239	}
5240	reqHeaders.Set("User-Agent", c.s.userAgent())
5241	if c.ifNoneMatch_ != "" {
5242		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5243	}
5244	var body io.Reader = nil
5245	c.urlParams_.Set("alt", alt)
5246	c.urlParams_.Set("prettyPrint", "false")
5247	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories")
5248	urls += "?" + c.urlParams_.Encode()
5249	req, err := http.NewRequest("GET", urls, body)
5250	if err != nil {
5251		return nil, err
5252	}
5253	req.Header = reqHeaders
5254	googleapi.Expand(req.URL, map[string]string{
5255		"projectId": c.projectId,
5256	})
5257	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5258}
5259
5260// Do executes the "toolresults.projects.histories.list" call.
5261// Exactly one of *ListHistoriesResponse or error will be non-nil. Any
5262// non-2xx status code is an error. Response headers are in either
5263// *ListHistoriesResponse.ServerResponse.Header or (if a response was
5264// returned at all) in error.(*googleapi.Error).Header. Use
5265// googleapi.IsNotModified to check whether the returned error was
5266// because http.StatusNotModified was returned.
5267func (c *ProjectsHistoriesListCall) Do(opts ...googleapi.CallOption) (*ListHistoriesResponse, error) {
5268	gensupport.SetOptions(c.urlParams_, opts...)
5269	res, err := c.doRequest("json")
5270	if res != nil && res.StatusCode == http.StatusNotModified {
5271		if res.Body != nil {
5272			res.Body.Close()
5273		}
5274		return nil, &googleapi.Error{
5275			Code:   res.StatusCode,
5276			Header: res.Header,
5277		}
5278	}
5279	if err != nil {
5280		return nil, err
5281	}
5282	defer googleapi.CloseBody(res)
5283	if err := googleapi.CheckResponse(res); err != nil {
5284		return nil, err
5285	}
5286	ret := &ListHistoriesResponse{
5287		ServerResponse: googleapi.ServerResponse{
5288			Header:         res.Header,
5289			HTTPStatusCode: res.StatusCode,
5290		},
5291	}
5292	target := &ret
5293	if err := gensupport.DecodeResponse(target, res); err != nil {
5294		return nil, err
5295	}
5296	return ret, nil
5297	// {
5298	//   "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",
5299	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories",
5300	//   "httpMethod": "GET",
5301	//   "id": "toolresults.projects.histories.list",
5302	//   "parameterOrder": [
5303	//     "projectId"
5304	//   ],
5305	//   "parameters": {
5306	//     "filterByName": {
5307	//       "description": "If set, only return histories with the given name. Optional.",
5308	//       "location": "query",
5309	//       "type": "string"
5310	//     },
5311	//     "pageSize": {
5312	//       "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.",
5313	//       "format": "int32",
5314	//       "location": "query",
5315	//       "type": "integer"
5316	//     },
5317	//     "pageToken": {
5318	//       "description": "A continuation token to resume the query at the next item. Optional.",
5319	//       "location": "query",
5320	//       "type": "string"
5321	//     },
5322	//     "projectId": {
5323	//       "description": "A Project id. Required.",
5324	//       "location": "path",
5325	//       "required": true,
5326	//       "type": "string"
5327	//     }
5328	//   },
5329	//   "path": "toolresults/v1beta3/projects/{projectId}/histories",
5330	//   "response": {
5331	//     "$ref": "ListHistoriesResponse"
5332	//   },
5333	//   "scopes": [
5334	//     "https://www.googleapis.com/auth/cloud-platform"
5335	//   ]
5336	// }
5337
5338}
5339
5340// Pages invokes f for each page of results.
5341// A non-nil error returned from f will halt the iteration.
5342// The provided context supersedes any context provided to the Context method.
5343func (c *ProjectsHistoriesListCall) Pages(ctx context.Context, f func(*ListHistoriesResponse) error) error {
5344	c.ctx_ = ctx
5345	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5346	for {
5347		x, err := c.Do()
5348		if err != nil {
5349			return err
5350		}
5351		if err := f(x); err != nil {
5352			return err
5353		}
5354		if x.NextPageToken == "" {
5355			return nil
5356		}
5357		c.PageToken(x.NextPageToken)
5358	}
5359}
5360
5361// method id "toolresults.projects.histories.executions.create":
5362
5363type ProjectsHistoriesExecutionsCreateCall struct {
5364	s          *Service
5365	projectId  string
5366	historyId  string
5367	execution  *Execution
5368	urlParams_ gensupport.URLParams
5369	ctx_       context.Context
5370	header_    http.Header
5371}
5372
5373// Create: Creates an Execution. The returned Execution will have the id
5374// set. May return any of the following canonical error codes: -
5375// PERMISSION_DENIED - if the user is not authorized to write to project
5376// - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the
5377// containing History does not exist
5378//
5379// - historyId: A History id.
5380// - projectId: A Project id.
5381func (r *ProjectsHistoriesExecutionsService) Create(projectId string, historyId string, execution *Execution) *ProjectsHistoriesExecutionsCreateCall {
5382	c := &ProjectsHistoriesExecutionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5383	c.projectId = projectId
5384	c.historyId = historyId
5385	c.execution = execution
5386	return c
5387}
5388
5389// RequestId sets the optional parameter "requestId": A unique request
5390// ID for server to detect duplicated requests. For example, a UUID.
5391// Optional, but strongly recommended.
5392func (c *ProjectsHistoriesExecutionsCreateCall) RequestId(requestId string) *ProjectsHistoriesExecutionsCreateCall {
5393	c.urlParams_.Set("requestId", requestId)
5394	return c
5395}
5396
5397// Fields allows partial responses to be retrieved. See
5398// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5399// for more information.
5400func (c *ProjectsHistoriesExecutionsCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsCreateCall {
5401	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5402	return c
5403}
5404
5405// Context sets the context to be used in this call's Do method. Any
5406// pending HTTP request will be aborted if the provided context is
5407// canceled.
5408func (c *ProjectsHistoriesExecutionsCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsCreateCall {
5409	c.ctx_ = ctx
5410	return c
5411}
5412
5413// Header returns an http.Header that can be modified by the caller to
5414// add HTTP headers to the request.
5415func (c *ProjectsHistoriesExecutionsCreateCall) Header() http.Header {
5416	if c.header_ == nil {
5417		c.header_ = make(http.Header)
5418	}
5419	return c.header_
5420}
5421
5422func (c *ProjectsHistoriesExecutionsCreateCall) doRequest(alt string) (*http.Response, error) {
5423	reqHeaders := make(http.Header)
5424	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5425	for k, v := range c.header_ {
5426		reqHeaders[k] = v
5427	}
5428	reqHeaders.Set("User-Agent", c.s.userAgent())
5429	var body io.Reader = nil
5430	body, err := googleapi.WithoutDataWrapper.JSONReader(c.execution)
5431	if err != nil {
5432		return nil, err
5433	}
5434	reqHeaders.Set("Content-Type", "application/json")
5435	c.urlParams_.Set("alt", alt)
5436	c.urlParams_.Set("prettyPrint", "false")
5437	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions")
5438	urls += "?" + c.urlParams_.Encode()
5439	req, err := http.NewRequest("POST", urls, body)
5440	if err != nil {
5441		return nil, err
5442	}
5443	req.Header = reqHeaders
5444	googleapi.Expand(req.URL, map[string]string{
5445		"projectId": c.projectId,
5446		"historyId": c.historyId,
5447	})
5448	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5449}
5450
5451// Do executes the "toolresults.projects.histories.executions.create" call.
5452// Exactly one of *Execution or error will be non-nil. Any non-2xx
5453// status code is an error. Response headers are in either
5454// *Execution.ServerResponse.Header or (if a response was returned at
5455// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5456// to check whether the returned error was because
5457// http.StatusNotModified was returned.
5458func (c *ProjectsHistoriesExecutionsCreateCall) Do(opts ...googleapi.CallOption) (*Execution, error) {
5459	gensupport.SetOptions(c.urlParams_, opts...)
5460	res, err := c.doRequest("json")
5461	if res != nil && res.StatusCode == http.StatusNotModified {
5462		if res.Body != nil {
5463			res.Body.Close()
5464		}
5465		return nil, &googleapi.Error{
5466			Code:   res.StatusCode,
5467			Header: res.Header,
5468		}
5469	}
5470	if err != nil {
5471		return nil, err
5472	}
5473	defer googleapi.CloseBody(res)
5474	if err := googleapi.CheckResponse(res); err != nil {
5475		return nil, err
5476	}
5477	ret := &Execution{
5478		ServerResponse: googleapi.ServerResponse{
5479			Header:         res.Header,
5480			HTTPStatusCode: res.StatusCode,
5481		},
5482	}
5483	target := &ret
5484	if err := gensupport.DecodeResponse(target, res); err != nil {
5485		return nil, err
5486	}
5487	return ret, nil
5488	// {
5489	//   "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",
5490	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions",
5491	//   "httpMethod": "POST",
5492	//   "id": "toolresults.projects.histories.executions.create",
5493	//   "parameterOrder": [
5494	//     "projectId",
5495	//     "historyId"
5496	//   ],
5497	//   "parameters": {
5498	//     "historyId": {
5499	//       "description": "A History id. Required.",
5500	//       "location": "path",
5501	//       "required": true,
5502	//       "type": "string"
5503	//     },
5504	//     "projectId": {
5505	//       "description": "A Project id. Required.",
5506	//       "location": "path",
5507	//       "required": true,
5508	//       "type": "string"
5509	//     },
5510	//     "requestId": {
5511	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID. Optional, but strongly recommended.",
5512	//       "location": "query",
5513	//       "type": "string"
5514	//     }
5515	//   },
5516	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions",
5517	//   "request": {
5518	//     "$ref": "Execution"
5519	//   },
5520	//   "response": {
5521	//     "$ref": "Execution"
5522	//   },
5523	//   "scopes": [
5524	//     "https://www.googleapis.com/auth/cloud-platform"
5525	//   ]
5526	// }
5527
5528}
5529
5530// method id "toolresults.projects.histories.executions.get":
5531
5532type ProjectsHistoriesExecutionsGetCall struct {
5533	s            *Service
5534	projectId    string
5535	historyId    string
5536	executionId  string
5537	urlParams_   gensupport.URLParams
5538	ifNoneMatch_ string
5539	ctx_         context.Context
5540	header_      http.Header
5541}
5542
5543// Get: Gets an Execution. May return any of the following canonical
5544// error codes: - PERMISSION_DENIED - if the user is not authorized to
5545// write to project - INVALID_ARGUMENT - if the request is malformed -
5546// NOT_FOUND - if the Execution does not exist
5547//
5548// - executionId: An Execution id.
5549// - historyId: A History id.
5550// - projectId: A Project id.
5551func (r *ProjectsHistoriesExecutionsService) Get(projectId string, historyId string, executionId string) *ProjectsHistoriesExecutionsGetCall {
5552	c := &ProjectsHistoriesExecutionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5553	c.projectId = projectId
5554	c.historyId = historyId
5555	c.executionId = executionId
5556	return c
5557}
5558
5559// Fields allows partial responses to be retrieved. See
5560// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5561// for more information.
5562func (c *ProjectsHistoriesExecutionsGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsGetCall {
5563	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5564	return c
5565}
5566
5567// IfNoneMatch sets the optional parameter which makes the operation
5568// fail if the object's ETag matches the given value. This is useful for
5569// getting updates only after the object has changed since the last
5570// request. Use googleapi.IsNotModified to check whether the response
5571// error from Do is the result of In-None-Match.
5572func (c *ProjectsHistoriesExecutionsGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsGetCall {
5573	c.ifNoneMatch_ = entityTag
5574	return c
5575}
5576
5577// Context sets the context to be used in this call's Do method. Any
5578// pending HTTP request will be aborted if the provided context is
5579// canceled.
5580func (c *ProjectsHistoriesExecutionsGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsGetCall {
5581	c.ctx_ = ctx
5582	return c
5583}
5584
5585// Header returns an http.Header that can be modified by the caller to
5586// add HTTP headers to the request.
5587func (c *ProjectsHistoriesExecutionsGetCall) Header() http.Header {
5588	if c.header_ == nil {
5589		c.header_ = make(http.Header)
5590	}
5591	return c.header_
5592}
5593
5594func (c *ProjectsHistoriesExecutionsGetCall) doRequest(alt string) (*http.Response, error) {
5595	reqHeaders := make(http.Header)
5596	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5597	for k, v := range c.header_ {
5598		reqHeaders[k] = v
5599	}
5600	reqHeaders.Set("User-Agent", c.s.userAgent())
5601	if c.ifNoneMatch_ != "" {
5602		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5603	}
5604	var body io.Reader = nil
5605	c.urlParams_.Set("alt", alt)
5606	c.urlParams_.Set("prettyPrint", "false")
5607	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}")
5608	urls += "?" + c.urlParams_.Encode()
5609	req, err := http.NewRequest("GET", urls, body)
5610	if err != nil {
5611		return nil, err
5612	}
5613	req.Header = reqHeaders
5614	googleapi.Expand(req.URL, map[string]string{
5615		"projectId":   c.projectId,
5616		"historyId":   c.historyId,
5617		"executionId": c.executionId,
5618	})
5619	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5620}
5621
5622// Do executes the "toolresults.projects.histories.executions.get" call.
5623// Exactly one of *Execution or error will be non-nil. Any non-2xx
5624// status code is an error. Response headers are in either
5625// *Execution.ServerResponse.Header or (if a response was returned at
5626// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5627// to check whether the returned error was because
5628// http.StatusNotModified was returned.
5629func (c *ProjectsHistoriesExecutionsGetCall) Do(opts ...googleapi.CallOption) (*Execution, error) {
5630	gensupport.SetOptions(c.urlParams_, opts...)
5631	res, err := c.doRequest("json")
5632	if res != nil && res.StatusCode == http.StatusNotModified {
5633		if res.Body != nil {
5634			res.Body.Close()
5635		}
5636		return nil, &googleapi.Error{
5637			Code:   res.StatusCode,
5638			Header: res.Header,
5639		}
5640	}
5641	if err != nil {
5642		return nil, err
5643	}
5644	defer googleapi.CloseBody(res)
5645	if err := googleapi.CheckResponse(res); err != nil {
5646		return nil, err
5647	}
5648	ret := &Execution{
5649		ServerResponse: googleapi.ServerResponse{
5650			Header:         res.Header,
5651			HTTPStatusCode: res.StatusCode,
5652		},
5653	}
5654	target := &ret
5655	if err := gensupport.DecodeResponse(target, res); err != nil {
5656		return nil, err
5657	}
5658	return ret, nil
5659	// {
5660	//   "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",
5661	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}",
5662	//   "httpMethod": "GET",
5663	//   "id": "toolresults.projects.histories.executions.get",
5664	//   "parameterOrder": [
5665	//     "projectId",
5666	//     "historyId",
5667	//     "executionId"
5668	//   ],
5669	//   "parameters": {
5670	//     "executionId": {
5671	//       "description": "An Execution id. Required.",
5672	//       "location": "path",
5673	//       "required": true,
5674	//       "type": "string"
5675	//     },
5676	//     "historyId": {
5677	//       "description": "A History id. Required.",
5678	//       "location": "path",
5679	//       "required": true,
5680	//       "type": "string"
5681	//     },
5682	//     "projectId": {
5683	//       "description": "A Project id. Required.",
5684	//       "location": "path",
5685	//       "required": true,
5686	//       "type": "string"
5687	//     }
5688	//   },
5689	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}",
5690	//   "response": {
5691	//     "$ref": "Execution"
5692	//   },
5693	//   "scopes": [
5694	//     "https://www.googleapis.com/auth/cloud-platform"
5695	//   ]
5696	// }
5697
5698}
5699
5700// method id "toolresults.projects.histories.executions.list":
5701
5702type ProjectsHistoriesExecutionsListCall struct {
5703	s            *Service
5704	projectId    string
5705	historyId    string
5706	urlParams_   gensupport.URLParams
5707	ifNoneMatch_ string
5708	ctx_         context.Context
5709	header_      http.Header
5710}
5711
5712// List: Lists Executions for a given History. The executions are sorted
5713// by creation_time in descending order. The execution_id key will be
5714// used to order the executions with the same creation_time. May return
5715// any of the following canonical error codes: - PERMISSION_DENIED - if
5716// the user is not authorized to read project - INVALID_ARGUMENT - if
5717// the request is malformed - NOT_FOUND - if the containing History does
5718// not exist
5719//
5720// - historyId: A History id.
5721// - projectId: A Project id.
5722func (r *ProjectsHistoriesExecutionsService) List(projectId string, historyId string) *ProjectsHistoriesExecutionsListCall {
5723	c := &ProjectsHistoriesExecutionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5724	c.projectId = projectId
5725	c.historyId = historyId
5726	return c
5727}
5728
5729// PageSize sets the optional parameter "pageSize": The maximum number
5730// of Executions to fetch. Default value: 25. The server will use this
5731// default if the field is not set or has a value of 0.
5732func (c *ProjectsHistoriesExecutionsListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsListCall {
5733	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
5734	return c
5735}
5736
5737// PageToken sets the optional parameter "pageToken": A continuation
5738// token to resume the query at the next item.
5739func (c *ProjectsHistoriesExecutionsListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsListCall {
5740	c.urlParams_.Set("pageToken", pageToken)
5741	return c
5742}
5743
5744// Fields allows partial responses to be retrieved. See
5745// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5746// for more information.
5747func (c *ProjectsHistoriesExecutionsListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsListCall {
5748	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5749	return c
5750}
5751
5752// IfNoneMatch sets the optional parameter which makes the operation
5753// fail if the object's ETag matches the given value. This is useful for
5754// getting updates only after the object has changed since the last
5755// request. Use googleapi.IsNotModified to check whether the response
5756// error from Do is the result of In-None-Match.
5757func (c *ProjectsHistoriesExecutionsListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsListCall {
5758	c.ifNoneMatch_ = entityTag
5759	return c
5760}
5761
5762// Context sets the context to be used in this call's Do method. Any
5763// pending HTTP request will be aborted if the provided context is
5764// canceled.
5765func (c *ProjectsHistoriesExecutionsListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsListCall {
5766	c.ctx_ = ctx
5767	return c
5768}
5769
5770// Header returns an http.Header that can be modified by the caller to
5771// add HTTP headers to the request.
5772func (c *ProjectsHistoriesExecutionsListCall) Header() http.Header {
5773	if c.header_ == nil {
5774		c.header_ = make(http.Header)
5775	}
5776	return c.header_
5777}
5778
5779func (c *ProjectsHistoriesExecutionsListCall) doRequest(alt string) (*http.Response, error) {
5780	reqHeaders := make(http.Header)
5781	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5782	for k, v := range c.header_ {
5783		reqHeaders[k] = v
5784	}
5785	reqHeaders.Set("User-Agent", c.s.userAgent())
5786	if c.ifNoneMatch_ != "" {
5787		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5788	}
5789	var body io.Reader = nil
5790	c.urlParams_.Set("alt", alt)
5791	c.urlParams_.Set("prettyPrint", "false")
5792	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions")
5793	urls += "?" + c.urlParams_.Encode()
5794	req, err := http.NewRequest("GET", urls, body)
5795	if err != nil {
5796		return nil, err
5797	}
5798	req.Header = reqHeaders
5799	googleapi.Expand(req.URL, map[string]string{
5800		"projectId": c.projectId,
5801		"historyId": c.historyId,
5802	})
5803	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5804}
5805
5806// Do executes the "toolresults.projects.histories.executions.list" call.
5807// Exactly one of *ListExecutionsResponse or error will be non-nil. Any
5808// non-2xx status code is an error. Response headers are in either
5809// *ListExecutionsResponse.ServerResponse.Header or (if a response was
5810// returned at all) in error.(*googleapi.Error).Header. Use
5811// googleapi.IsNotModified to check whether the returned error was
5812// because http.StatusNotModified was returned.
5813func (c *ProjectsHistoriesExecutionsListCall) Do(opts ...googleapi.CallOption) (*ListExecutionsResponse, error) {
5814	gensupport.SetOptions(c.urlParams_, opts...)
5815	res, err := c.doRequest("json")
5816	if res != nil && res.StatusCode == http.StatusNotModified {
5817		if res.Body != nil {
5818			res.Body.Close()
5819		}
5820		return nil, &googleapi.Error{
5821			Code:   res.StatusCode,
5822			Header: res.Header,
5823		}
5824	}
5825	if err != nil {
5826		return nil, err
5827	}
5828	defer googleapi.CloseBody(res)
5829	if err := googleapi.CheckResponse(res); err != nil {
5830		return nil, err
5831	}
5832	ret := &ListExecutionsResponse{
5833		ServerResponse: googleapi.ServerResponse{
5834			Header:         res.Header,
5835			HTTPStatusCode: res.StatusCode,
5836		},
5837	}
5838	target := &ret
5839	if err := gensupport.DecodeResponse(target, res); err != nil {
5840		return nil, err
5841	}
5842	return ret, nil
5843	// {
5844	//   "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",
5845	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions",
5846	//   "httpMethod": "GET",
5847	//   "id": "toolresults.projects.histories.executions.list",
5848	//   "parameterOrder": [
5849	//     "projectId",
5850	//     "historyId"
5851	//   ],
5852	//   "parameters": {
5853	//     "historyId": {
5854	//       "description": "A History id. Required.",
5855	//       "location": "path",
5856	//       "required": true,
5857	//       "type": "string"
5858	//     },
5859	//     "pageSize": {
5860	//       "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.",
5861	//       "format": "int32",
5862	//       "location": "query",
5863	//       "type": "integer"
5864	//     },
5865	//     "pageToken": {
5866	//       "description": "A continuation token to resume the query at the next item. Optional.",
5867	//       "location": "query",
5868	//       "type": "string"
5869	//     },
5870	//     "projectId": {
5871	//       "description": "A Project id. Required.",
5872	//       "location": "path",
5873	//       "required": true,
5874	//       "type": "string"
5875	//     }
5876	//   },
5877	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions",
5878	//   "response": {
5879	//     "$ref": "ListExecutionsResponse"
5880	//   },
5881	//   "scopes": [
5882	//     "https://www.googleapis.com/auth/cloud-platform"
5883	//   ]
5884	// }
5885
5886}
5887
5888// Pages invokes f for each page of results.
5889// A non-nil error returned from f will halt the iteration.
5890// The provided context supersedes any context provided to the Context method.
5891func (c *ProjectsHistoriesExecutionsListCall) Pages(ctx context.Context, f func(*ListExecutionsResponse) error) error {
5892	c.ctx_ = ctx
5893	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5894	for {
5895		x, err := c.Do()
5896		if err != nil {
5897			return err
5898		}
5899		if err := f(x); err != nil {
5900			return err
5901		}
5902		if x.NextPageToken == "" {
5903			return nil
5904		}
5905		c.PageToken(x.NextPageToken)
5906	}
5907}
5908
5909// method id "toolresults.projects.histories.executions.patch":
5910
5911type ProjectsHistoriesExecutionsPatchCall struct {
5912	s           *Service
5913	projectId   string
5914	historyId   string
5915	executionId string
5916	execution   *Execution
5917	urlParams_  gensupport.URLParams
5918	ctx_        context.Context
5919	header_     http.Header
5920}
5921
5922// Patch: Updates an existing Execution with the supplied partial
5923// entity. May return any of the following canonical error codes: -
5924// PERMISSION_DENIED - if the user is not authorized to write to project
5925// - INVALID_ARGUMENT - if the request is malformed -
5926// FAILED_PRECONDITION - if the requested state transition is illegal -
5927// NOT_FOUND - if the containing History does not exist
5928//
5929// - executionId: .
5930// - historyId: .
5931// - projectId: A Project id.
5932func (r *ProjectsHistoriesExecutionsService) Patch(projectId string, historyId string, executionId string, execution *Execution) *ProjectsHistoriesExecutionsPatchCall {
5933	c := &ProjectsHistoriesExecutionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5934	c.projectId = projectId
5935	c.historyId = historyId
5936	c.executionId = executionId
5937	c.execution = execution
5938	return c
5939}
5940
5941// RequestId sets the optional parameter "requestId": A unique request
5942// ID for server to detect duplicated requests. For example, a UUID.
5943// Optional, but strongly recommended.
5944func (c *ProjectsHistoriesExecutionsPatchCall) RequestId(requestId string) *ProjectsHistoriesExecutionsPatchCall {
5945	c.urlParams_.Set("requestId", requestId)
5946	return c
5947}
5948
5949// Fields allows partial responses to be retrieved. See
5950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5951// for more information.
5952func (c *ProjectsHistoriesExecutionsPatchCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsPatchCall {
5953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5954	return c
5955}
5956
5957// Context sets the context to be used in this call's Do method. Any
5958// pending HTTP request will be aborted if the provided context is
5959// canceled.
5960func (c *ProjectsHistoriesExecutionsPatchCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsPatchCall {
5961	c.ctx_ = ctx
5962	return c
5963}
5964
5965// Header returns an http.Header that can be modified by the caller to
5966// add HTTP headers to the request.
5967func (c *ProjectsHistoriesExecutionsPatchCall) Header() http.Header {
5968	if c.header_ == nil {
5969		c.header_ = make(http.Header)
5970	}
5971	return c.header_
5972}
5973
5974func (c *ProjectsHistoriesExecutionsPatchCall) doRequest(alt string) (*http.Response, error) {
5975	reqHeaders := make(http.Header)
5976	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5977	for k, v := range c.header_ {
5978		reqHeaders[k] = v
5979	}
5980	reqHeaders.Set("User-Agent", c.s.userAgent())
5981	var body io.Reader = nil
5982	body, err := googleapi.WithoutDataWrapper.JSONReader(c.execution)
5983	if err != nil {
5984		return nil, err
5985	}
5986	reqHeaders.Set("Content-Type", "application/json")
5987	c.urlParams_.Set("alt", alt)
5988	c.urlParams_.Set("prettyPrint", "false")
5989	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}")
5990	urls += "?" + c.urlParams_.Encode()
5991	req, err := http.NewRequest("PATCH", urls, body)
5992	if err != nil {
5993		return nil, err
5994	}
5995	req.Header = reqHeaders
5996	googleapi.Expand(req.URL, map[string]string{
5997		"projectId":   c.projectId,
5998		"historyId":   c.historyId,
5999		"executionId": c.executionId,
6000	})
6001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6002}
6003
6004// Do executes the "toolresults.projects.histories.executions.patch" call.
6005// Exactly one of *Execution or error will be non-nil. Any non-2xx
6006// status code is an error. Response headers are in either
6007// *Execution.ServerResponse.Header or (if a response was returned at
6008// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6009// to check whether the returned error was because
6010// http.StatusNotModified was returned.
6011func (c *ProjectsHistoriesExecutionsPatchCall) Do(opts ...googleapi.CallOption) (*Execution, error) {
6012	gensupport.SetOptions(c.urlParams_, opts...)
6013	res, err := c.doRequest("json")
6014	if res != nil && res.StatusCode == http.StatusNotModified {
6015		if res.Body != nil {
6016			res.Body.Close()
6017		}
6018		return nil, &googleapi.Error{
6019			Code:   res.StatusCode,
6020			Header: res.Header,
6021		}
6022	}
6023	if err != nil {
6024		return nil, err
6025	}
6026	defer googleapi.CloseBody(res)
6027	if err := googleapi.CheckResponse(res); err != nil {
6028		return nil, err
6029	}
6030	ret := &Execution{
6031		ServerResponse: googleapi.ServerResponse{
6032			Header:         res.Header,
6033			HTTPStatusCode: res.StatusCode,
6034		},
6035	}
6036	target := &ret
6037	if err := gensupport.DecodeResponse(target, res); err != nil {
6038		return nil, err
6039	}
6040	return ret, nil
6041	// {
6042	//   "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",
6043	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}",
6044	//   "httpMethod": "PATCH",
6045	//   "id": "toolresults.projects.histories.executions.patch",
6046	//   "parameterOrder": [
6047	//     "projectId",
6048	//     "historyId",
6049	//     "executionId"
6050	//   ],
6051	//   "parameters": {
6052	//     "executionId": {
6053	//       "description": "Required.",
6054	//       "location": "path",
6055	//       "required": true,
6056	//       "type": "string"
6057	//     },
6058	//     "historyId": {
6059	//       "description": "Required.",
6060	//       "location": "path",
6061	//       "required": true,
6062	//       "type": "string"
6063	//     },
6064	//     "projectId": {
6065	//       "description": "A Project id. Required.",
6066	//       "location": "path",
6067	//       "required": true,
6068	//       "type": "string"
6069	//     },
6070	//     "requestId": {
6071	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID. Optional, but strongly recommended.",
6072	//       "location": "query",
6073	//       "type": "string"
6074	//     }
6075	//   },
6076	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}",
6077	//   "request": {
6078	//     "$ref": "Execution"
6079	//   },
6080	//   "response": {
6081	//     "$ref": "Execution"
6082	//   },
6083	//   "scopes": [
6084	//     "https://www.googleapis.com/auth/cloud-platform"
6085	//   ]
6086	// }
6087
6088}
6089
6090// method id "toolresults.projects.histories.executions.clusters.get":
6091
6092type ProjectsHistoriesExecutionsClustersGetCall struct {
6093	s            *Service
6094	projectId    string
6095	historyId    string
6096	executionId  string
6097	clusterId    string
6098	urlParams_   gensupport.URLParams
6099	ifNoneMatch_ string
6100	ctx_         context.Context
6101	header_      http.Header
6102}
6103
6104// Get: Retrieves a single screenshot cluster by its ID
6105//
6106// - clusterId: A Cluster id.
6107// - executionId: An Execution id.
6108// - historyId: A History id.
6109// - projectId: A Project id.
6110func (r *ProjectsHistoriesExecutionsClustersService) Get(projectId string, historyId string, executionId string, clusterId string) *ProjectsHistoriesExecutionsClustersGetCall {
6111	c := &ProjectsHistoriesExecutionsClustersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6112	c.projectId = projectId
6113	c.historyId = historyId
6114	c.executionId = executionId
6115	c.clusterId = clusterId
6116	return c
6117}
6118
6119// Fields allows partial responses to be retrieved. See
6120// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6121// for more information.
6122func (c *ProjectsHistoriesExecutionsClustersGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsClustersGetCall {
6123	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6124	return c
6125}
6126
6127// IfNoneMatch sets the optional parameter which makes the operation
6128// fail if the object's ETag matches the given value. This is useful for
6129// getting updates only after the object has changed since the last
6130// request. Use googleapi.IsNotModified to check whether the response
6131// error from Do is the result of In-None-Match.
6132func (c *ProjectsHistoriesExecutionsClustersGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsClustersGetCall {
6133	c.ifNoneMatch_ = entityTag
6134	return c
6135}
6136
6137// Context sets the context to be used in this call's Do method. Any
6138// pending HTTP request will be aborted if the provided context is
6139// canceled.
6140func (c *ProjectsHistoriesExecutionsClustersGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsClustersGetCall {
6141	c.ctx_ = ctx
6142	return c
6143}
6144
6145// Header returns an http.Header that can be modified by the caller to
6146// add HTTP headers to the request.
6147func (c *ProjectsHistoriesExecutionsClustersGetCall) Header() http.Header {
6148	if c.header_ == nil {
6149		c.header_ = make(http.Header)
6150	}
6151	return c.header_
6152}
6153
6154func (c *ProjectsHistoriesExecutionsClustersGetCall) doRequest(alt string) (*http.Response, error) {
6155	reqHeaders := make(http.Header)
6156	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6157	for k, v := range c.header_ {
6158		reqHeaders[k] = v
6159	}
6160	reqHeaders.Set("User-Agent", c.s.userAgent())
6161	if c.ifNoneMatch_ != "" {
6162		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6163	}
6164	var body io.Reader = nil
6165	c.urlParams_.Set("alt", alt)
6166	c.urlParams_.Set("prettyPrint", "false")
6167	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters/{clusterId}")
6168	urls += "?" + c.urlParams_.Encode()
6169	req, err := http.NewRequest("GET", urls, body)
6170	if err != nil {
6171		return nil, err
6172	}
6173	req.Header = reqHeaders
6174	googleapi.Expand(req.URL, map[string]string{
6175		"projectId":   c.projectId,
6176		"historyId":   c.historyId,
6177		"executionId": c.executionId,
6178		"clusterId":   c.clusterId,
6179	})
6180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6181}
6182
6183// Do executes the "toolresults.projects.histories.executions.clusters.get" call.
6184// Exactly one of *ScreenshotCluster or error will be non-nil. Any
6185// non-2xx status code is an error. Response headers are in either
6186// *ScreenshotCluster.ServerResponse.Header or (if a response was
6187// returned at all) in error.(*googleapi.Error).Header. Use
6188// googleapi.IsNotModified to check whether the returned error was
6189// because http.StatusNotModified was returned.
6190func (c *ProjectsHistoriesExecutionsClustersGetCall) Do(opts ...googleapi.CallOption) (*ScreenshotCluster, error) {
6191	gensupport.SetOptions(c.urlParams_, opts...)
6192	res, err := c.doRequest("json")
6193	if res != nil && res.StatusCode == http.StatusNotModified {
6194		if res.Body != nil {
6195			res.Body.Close()
6196		}
6197		return nil, &googleapi.Error{
6198			Code:   res.StatusCode,
6199			Header: res.Header,
6200		}
6201	}
6202	if err != nil {
6203		return nil, err
6204	}
6205	defer googleapi.CloseBody(res)
6206	if err := googleapi.CheckResponse(res); err != nil {
6207		return nil, err
6208	}
6209	ret := &ScreenshotCluster{
6210		ServerResponse: googleapi.ServerResponse{
6211			Header:         res.Header,
6212			HTTPStatusCode: res.StatusCode,
6213		},
6214	}
6215	target := &ret
6216	if err := gensupport.DecodeResponse(target, res); err != nil {
6217		return nil, err
6218	}
6219	return ret, nil
6220	// {
6221	//   "description": "Retrieves a single screenshot cluster by its ID",
6222	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters/{clusterId}",
6223	//   "httpMethod": "GET",
6224	//   "id": "toolresults.projects.histories.executions.clusters.get",
6225	//   "parameterOrder": [
6226	//     "projectId",
6227	//     "historyId",
6228	//     "executionId",
6229	//     "clusterId"
6230	//   ],
6231	//   "parameters": {
6232	//     "clusterId": {
6233	//       "description": "A Cluster id Required.",
6234	//       "location": "path",
6235	//       "required": true,
6236	//       "type": "string"
6237	//     },
6238	//     "executionId": {
6239	//       "description": "An Execution id. Required.",
6240	//       "location": "path",
6241	//       "required": true,
6242	//       "type": "string"
6243	//     },
6244	//     "historyId": {
6245	//       "description": "A History id. Required.",
6246	//       "location": "path",
6247	//       "required": true,
6248	//       "type": "string"
6249	//     },
6250	//     "projectId": {
6251	//       "description": "A Project id. Required.",
6252	//       "location": "path",
6253	//       "required": true,
6254	//       "type": "string"
6255	//     }
6256	//   },
6257	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters/{clusterId}",
6258	//   "response": {
6259	//     "$ref": "ScreenshotCluster"
6260	//   },
6261	//   "scopes": [
6262	//     "https://www.googleapis.com/auth/cloud-platform"
6263	//   ]
6264	// }
6265
6266}
6267
6268// method id "toolresults.projects.histories.executions.clusters.list":
6269
6270type ProjectsHistoriesExecutionsClustersListCall struct {
6271	s            *Service
6272	projectId    string
6273	historyId    string
6274	executionId  string
6275	urlParams_   gensupport.URLParams
6276	ifNoneMatch_ string
6277	ctx_         context.Context
6278	header_      http.Header
6279}
6280
6281// List: Lists Screenshot Clusters Returns the list of screenshot
6282// clusters corresponding to an execution. Screenshot clusters are
6283// created after the execution is finished. Clusters are created from a
6284// set of screenshots. Between any two screenshots, a matching score is
6285// calculated based off their metadata that determines how similar they
6286// are. Screenshots are placed in the cluster that has screens which
6287// have the highest matching scores.
6288//
6289// - executionId: An Execution id.
6290// - historyId: A History id.
6291// - projectId: A Project id.
6292func (r *ProjectsHistoriesExecutionsClustersService) List(projectId string, historyId string, executionId string) *ProjectsHistoriesExecutionsClustersListCall {
6293	c := &ProjectsHistoriesExecutionsClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6294	c.projectId = projectId
6295	c.historyId = historyId
6296	c.executionId = executionId
6297	return c
6298}
6299
6300// Fields allows partial responses to be retrieved. See
6301// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6302// for more information.
6303func (c *ProjectsHistoriesExecutionsClustersListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsClustersListCall {
6304	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6305	return c
6306}
6307
6308// IfNoneMatch sets the optional parameter which makes the operation
6309// fail if the object's ETag matches the given value. This is useful for
6310// getting updates only after the object has changed since the last
6311// request. Use googleapi.IsNotModified to check whether the response
6312// error from Do is the result of In-None-Match.
6313func (c *ProjectsHistoriesExecutionsClustersListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsClustersListCall {
6314	c.ifNoneMatch_ = entityTag
6315	return c
6316}
6317
6318// Context sets the context to be used in this call's Do method. Any
6319// pending HTTP request will be aborted if the provided context is
6320// canceled.
6321func (c *ProjectsHistoriesExecutionsClustersListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsClustersListCall {
6322	c.ctx_ = ctx
6323	return c
6324}
6325
6326// Header returns an http.Header that can be modified by the caller to
6327// add HTTP headers to the request.
6328func (c *ProjectsHistoriesExecutionsClustersListCall) Header() http.Header {
6329	if c.header_ == nil {
6330		c.header_ = make(http.Header)
6331	}
6332	return c.header_
6333}
6334
6335func (c *ProjectsHistoriesExecutionsClustersListCall) doRequest(alt string) (*http.Response, error) {
6336	reqHeaders := make(http.Header)
6337	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6338	for k, v := range c.header_ {
6339		reqHeaders[k] = v
6340	}
6341	reqHeaders.Set("User-Agent", c.s.userAgent())
6342	if c.ifNoneMatch_ != "" {
6343		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6344	}
6345	var body io.Reader = nil
6346	c.urlParams_.Set("alt", alt)
6347	c.urlParams_.Set("prettyPrint", "false")
6348	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters")
6349	urls += "?" + c.urlParams_.Encode()
6350	req, err := http.NewRequest("GET", urls, body)
6351	if err != nil {
6352		return nil, err
6353	}
6354	req.Header = reqHeaders
6355	googleapi.Expand(req.URL, map[string]string{
6356		"projectId":   c.projectId,
6357		"historyId":   c.historyId,
6358		"executionId": c.executionId,
6359	})
6360	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6361}
6362
6363// Do executes the "toolresults.projects.histories.executions.clusters.list" call.
6364// Exactly one of *ListScreenshotClustersResponse or error will be
6365// non-nil. Any non-2xx status code is an error. Response headers are in
6366// either *ListScreenshotClustersResponse.ServerResponse.Header or (if a
6367// response was returned at all) in error.(*googleapi.Error).Header. Use
6368// googleapi.IsNotModified to check whether the returned error was
6369// because http.StatusNotModified was returned.
6370func (c *ProjectsHistoriesExecutionsClustersListCall) Do(opts ...googleapi.CallOption) (*ListScreenshotClustersResponse, error) {
6371	gensupport.SetOptions(c.urlParams_, opts...)
6372	res, err := c.doRequest("json")
6373	if res != nil && res.StatusCode == http.StatusNotModified {
6374		if res.Body != nil {
6375			res.Body.Close()
6376		}
6377		return nil, &googleapi.Error{
6378			Code:   res.StatusCode,
6379			Header: res.Header,
6380		}
6381	}
6382	if err != nil {
6383		return nil, err
6384	}
6385	defer googleapi.CloseBody(res)
6386	if err := googleapi.CheckResponse(res); err != nil {
6387		return nil, err
6388	}
6389	ret := &ListScreenshotClustersResponse{
6390		ServerResponse: googleapi.ServerResponse{
6391			Header:         res.Header,
6392			HTTPStatusCode: res.StatusCode,
6393		},
6394	}
6395	target := &ret
6396	if err := gensupport.DecodeResponse(target, res); err != nil {
6397		return nil, err
6398	}
6399	return ret, nil
6400	// {
6401	//   "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.",
6402	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters",
6403	//   "httpMethod": "GET",
6404	//   "id": "toolresults.projects.histories.executions.clusters.list",
6405	//   "parameterOrder": [
6406	//     "projectId",
6407	//     "historyId",
6408	//     "executionId"
6409	//   ],
6410	//   "parameters": {
6411	//     "executionId": {
6412	//       "description": "An Execution id. Required.",
6413	//       "location": "path",
6414	//       "required": true,
6415	//       "type": "string"
6416	//     },
6417	//     "historyId": {
6418	//       "description": "A History id. Required.",
6419	//       "location": "path",
6420	//       "required": true,
6421	//       "type": "string"
6422	//     },
6423	//     "projectId": {
6424	//       "description": "A Project id. Required.",
6425	//       "location": "path",
6426	//       "required": true,
6427	//       "type": "string"
6428	//     }
6429	//   },
6430	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/clusters",
6431	//   "response": {
6432	//     "$ref": "ListScreenshotClustersResponse"
6433	//   },
6434	//   "scopes": [
6435	//     "https://www.googleapis.com/auth/cloud-platform"
6436	//   ]
6437	// }
6438
6439}
6440
6441// method id "toolresults.projects.histories.executions.environments.get":
6442
6443type ProjectsHistoriesExecutionsEnvironmentsGetCall struct {
6444	s             *Service
6445	projectId     string
6446	historyId     string
6447	executionId   string
6448	environmentId string
6449	urlParams_    gensupport.URLParams
6450	ifNoneMatch_  string
6451	ctx_          context.Context
6452	header_       http.Header
6453}
6454
6455// Get: Gets an Environment. May return any of the following canonical
6456// error codes: - PERMISSION_DENIED - if the user is not authorized to
6457// read project - INVALID_ARGUMENT - if the request is malformed -
6458// NOT_FOUND - if the Environment does not exist
6459//
6460// - environmentId: An Environment id.
6461// - executionId: An Execution id.
6462// - historyId: A History id.
6463// - projectId: A Project id.
6464func (r *ProjectsHistoriesExecutionsEnvironmentsService) Get(projectId string, historyId string, executionId string, environmentId string) *ProjectsHistoriesExecutionsEnvironmentsGetCall {
6465	c := &ProjectsHistoriesExecutionsEnvironmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6466	c.projectId = projectId
6467	c.historyId = historyId
6468	c.executionId = executionId
6469	c.environmentId = environmentId
6470	return c
6471}
6472
6473// Fields allows partial responses to be retrieved. See
6474// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6475// for more information.
6476func (c *ProjectsHistoriesExecutionsEnvironmentsGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsEnvironmentsGetCall {
6477	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6478	return c
6479}
6480
6481// IfNoneMatch sets the optional parameter which makes the operation
6482// fail if the object's ETag matches the given value. This is useful for
6483// getting updates only after the object has changed since the last
6484// request. Use googleapi.IsNotModified to check whether the response
6485// error from Do is the result of In-None-Match.
6486func (c *ProjectsHistoriesExecutionsEnvironmentsGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsEnvironmentsGetCall {
6487	c.ifNoneMatch_ = entityTag
6488	return c
6489}
6490
6491// Context sets the context to be used in this call's Do method. Any
6492// pending HTTP request will be aborted if the provided context is
6493// canceled.
6494func (c *ProjectsHistoriesExecutionsEnvironmentsGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsEnvironmentsGetCall {
6495	c.ctx_ = ctx
6496	return c
6497}
6498
6499// Header returns an http.Header that can be modified by the caller to
6500// add HTTP headers to the request.
6501func (c *ProjectsHistoriesExecutionsEnvironmentsGetCall) Header() http.Header {
6502	if c.header_ == nil {
6503		c.header_ = make(http.Header)
6504	}
6505	return c.header_
6506}
6507
6508func (c *ProjectsHistoriesExecutionsEnvironmentsGetCall) doRequest(alt string) (*http.Response, error) {
6509	reqHeaders := make(http.Header)
6510	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6511	for k, v := range c.header_ {
6512		reqHeaders[k] = v
6513	}
6514	reqHeaders.Set("User-Agent", c.s.userAgent())
6515	if c.ifNoneMatch_ != "" {
6516		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6517	}
6518	var body io.Reader = nil
6519	c.urlParams_.Set("alt", alt)
6520	c.urlParams_.Set("prettyPrint", "false")
6521	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments/{environmentId}")
6522	urls += "?" + c.urlParams_.Encode()
6523	req, err := http.NewRequest("GET", urls, body)
6524	if err != nil {
6525		return nil, err
6526	}
6527	req.Header = reqHeaders
6528	googleapi.Expand(req.URL, map[string]string{
6529		"projectId":     c.projectId,
6530		"historyId":     c.historyId,
6531		"executionId":   c.executionId,
6532		"environmentId": c.environmentId,
6533	})
6534	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6535}
6536
6537// Do executes the "toolresults.projects.histories.executions.environments.get" call.
6538// Exactly one of *Environment or error will be non-nil. Any non-2xx
6539// status code is an error. Response headers are in either
6540// *Environment.ServerResponse.Header or (if a response was returned at
6541// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6542// to check whether the returned error was because
6543// http.StatusNotModified was returned.
6544func (c *ProjectsHistoriesExecutionsEnvironmentsGetCall) Do(opts ...googleapi.CallOption) (*Environment, error) {
6545	gensupport.SetOptions(c.urlParams_, opts...)
6546	res, err := c.doRequest("json")
6547	if res != nil && res.StatusCode == http.StatusNotModified {
6548		if res.Body != nil {
6549			res.Body.Close()
6550		}
6551		return nil, &googleapi.Error{
6552			Code:   res.StatusCode,
6553			Header: res.Header,
6554		}
6555	}
6556	if err != nil {
6557		return nil, err
6558	}
6559	defer googleapi.CloseBody(res)
6560	if err := googleapi.CheckResponse(res); err != nil {
6561		return nil, err
6562	}
6563	ret := &Environment{
6564		ServerResponse: googleapi.ServerResponse{
6565			Header:         res.Header,
6566			HTTPStatusCode: res.StatusCode,
6567		},
6568	}
6569	target := &ret
6570	if err := gensupport.DecodeResponse(target, res); err != nil {
6571		return nil, err
6572	}
6573	return ret, nil
6574	// {
6575	//   "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",
6576	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments/{environmentId}",
6577	//   "httpMethod": "GET",
6578	//   "id": "toolresults.projects.histories.executions.environments.get",
6579	//   "parameterOrder": [
6580	//     "projectId",
6581	//     "historyId",
6582	//     "executionId",
6583	//     "environmentId"
6584	//   ],
6585	//   "parameters": {
6586	//     "environmentId": {
6587	//       "description": "Required. An Environment id.",
6588	//       "location": "path",
6589	//       "required": true,
6590	//       "type": "string"
6591	//     },
6592	//     "executionId": {
6593	//       "description": "Required. An Execution id.",
6594	//       "location": "path",
6595	//       "required": true,
6596	//       "type": "string"
6597	//     },
6598	//     "historyId": {
6599	//       "description": "Required. A History id.",
6600	//       "location": "path",
6601	//       "required": true,
6602	//       "type": "string"
6603	//     },
6604	//     "projectId": {
6605	//       "description": "Required. A Project id.",
6606	//       "location": "path",
6607	//       "required": true,
6608	//       "type": "string"
6609	//     }
6610	//   },
6611	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments/{environmentId}",
6612	//   "response": {
6613	//     "$ref": "Environment"
6614	//   },
6615	//   "scopes": [
6616	//     "https://www.googleapis.com/auth/cloud-platform"
6617	//   ]
6618	// }
6619
6620}
6621
6622// method id "toolresults.projects.histories.executions.environments.list":
6623
6624type ProjectsHistoriesExecutionsEnvironmentsListCall struct {
6625	s            *Service
6626	projectId    string
6627	historyId    string
6628	executionId  string
6629	urlParams_   gensupport.URLParams
6630	ifNoneMatch_ string
6631	ctx_         context.Context
6632	header_      http.Header
6633}
6634
6635// List: Lists Environments for a given Execution. The Environments are
6636// sorted by display name. May return any of the following canonical
6637// error codes: - PERMISSION_DENIED - if the user is not authorized to
6638// read project - INVALID_ARGUMENT - if the request is malformed -
6639// NOT_FOUND - if the containing Execution does not exist
6640//
6641// - executionId: An Execution id.
6642// - historyId: A History id.
6643// - projectId: A Project id.
6644func (r *ProjectsHistoriesExecutionsEnvironmentsService) List(projectId string, historyId string, executionId string) *ProjectsHistoriesExecutionsEnvironmentsListCall {
6645	c := &ProjectsHistoriesExecutionsEnvironmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6646	c.projectId = projectId
6647	c.historyId = historyId
6648	c.executionId = executionId
6649	return c
6650}
6651
6652// PageSize sets the optional parameter "pageSize": The maximum number
6653// of Environments to fetch. Default value: 25. The server will use this
6654// default if the field is not set or has a value of 0.
6655func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsEnvironmentsListCall {
6656	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
6657	return c
6658}
6659
6660// PageToken sets the optional parameter "pageToken": A continuation
6661// token to resume the query at the next item.
6662func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsEnvironmentsListCall {
6663	c.urlParams_.Set("pageToken", pageToken)
6664	return c
6665}
6666
6667// Fields allows partial responses to be retrieved. See
6668// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6669// for more information.
6670func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsEnvironmentsListCall {
6671	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6672	return c
6673}
6674
6675// IfNoneMatch sets the optional parameter which makes the operation
6676// fail if the object's ETag matches the given value. This is useful for
6677// getting updates only after the object has changed since the last
6678// request. Use googleapi.IsNotModified to check whether the response
6679// error from Do is the result of In-None-Match.
6680func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsEnvironmentsListCall {
6681	c.ifNoneMatch_ = entityTag
6682	return c
6683}
6684
6685// Context sets the context to be used in this call's Do method. Any
6686// pending HTTP request will be aborted if the provided context is
6687// canceled.
6688func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsEnvironmentsListCall {
6689	c.ctx_ = ctx
6690	return c
6691}
6692
6693// Header returns an http.Header that can be modified by the caller to
6694// add HTTP headers to the request.
6695func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) Header() http.Header {
6696	if c.header_ == nil {
6697		c.header_ = make(http.Header)
6698	}
6699	return c.header_
6700}
6701
6702func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) doRequest(alt string) (*http.Response, error) {
6703	reqHeaders := make(http.Header)
6704	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6705	for k, v := range c.header_ {
6706		reqHeaders[k] = v
6707	}
6708	reqHeaders.Set("User-Agent", c.s.userAgent())
6709	if c.ifNoneMatch_ != "" {
6710		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6711	}
6712	var body io.Reader = nil
6713	c.urlParams_.Set("alt", alt)
6714	c.urlParams_.Set("prettyPrint", "false")
6715	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments")
6716	urls += "?" + c.urlParams_.Encode()
6717	req, err := http.NewRequest("GET", urls, body)
6718	if err != nil {
6719		return nil, err
6720	}
6721	req.Header = reqHeaders
6722	googleapi.Expand(req.URL, map[string]string{
6723		"projectId":   c.projectId,
6724		"historyId":   c.historyId,
6725		"executionId": c.executionId,
6726	})
6727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6728}
6729
6730// Do executes the "toolresults.projects.histories.executions.environments.list" call.
6731// Exactly one of *ListEnvironmentsResponse or error will be non-nil.
6732// Any non-2xx status code is an error. Response headers are in either
6733// *ListEnvironmentsResponse.ServerResponse.Header or (if a response was
6734// returned at all) in error.(*googleapi.Error).Header. Use
6735// googleapi.IsNotModified to check whether the returned error was
6736// because http.StatusNotModified was returned.
6737func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) Do(opts ...googleapi.CallOption) (*ListEnvironmentsResponse, error) {
6738	gensupport.SetOptions(c.urlParams_, opts...)
6739	res, err := c.doRequest("json")
6740	if res != nil && res.StatusCode == http.StatusNotModified {
6741		if res.Body != nil {
6742			res.Body.Close()
6743		}
6744		return nil, &googleapi.Error{
6745			Code:   res.StatusCode,
6746			Header: res.Header,
6747		}
6748	}
6749	if err != nil {
6750		return nil, err
6751	}
6752	defer googleapi.CloseBody(res)
6753	if err := googleapi.CheckResponse(res); err != nil {
6754		return nil, err
6755	}
6756	ret := &ListEnvironmentsResponse{
6757		ServerResponse: googleapi.ServerResponse{
6758			Header:         res.Header,
6759			HTTPStatusCode: res.StatusCode,
6760		},
6761	}
6762	target := &ret
6763	if err := gensupport.DecodeResponse(target, res); err != nil {
6764		return nil, err
6765	}
6766	return ret, nil
6767	// {
6768	//   "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",
6769	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments",
6770	//   "httpMethod": "GET",
6771	//   "id": "toolresults.projects.histories.executions.environments.list",
6772	//   "parameterOrder": [
6773	//     "projectId",
6774	//     "historyId",
6775	//     "executionId"
6776	//   ],
6777	//   "parameters": {
6778	//     "executionId": {
6779	//       "description": "Required. An Execution id.",
6780	//       "location": "path",
6781	//       "required": true,
6782	//       "type": "string"
6783	//     },
6784	//     "historyId": {
6785	//       "description": "Required. A History id.",
6786	//       "location": "path",
6787	//       "required": true,
6788	//       "type": "string"
6789	//     },
6790	//     "pageSize": {
6791	//       "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.",
6792	//       "format": "int32",
6793	//       "location": "query",
6794	//       "type": "integer"
6795	//     },
6796	//     "pageToken": {
6797	//       "description": "A continuation token to resume the query at the next item.",
6798	//       "location": "query",
6799	//       "type": "string"
6800	//     },
6801	//     "projectId": {
6802	//       "description": "Required. A Project id.",
6803	//       "location": "path",
6804	//       "required": true,
6805	//       "type": "string"
6806	//     }
6807	//   },
6808	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/environments",
6809	//   "response": {
6810	//     "$ref": "ListEnvironmentsResponse"
6811	//   },
6812	//   "scopes": [
6813	//     "https://www.googleapis.com/auth/cloud-platform"
6814	//   ]
6815	// }
6816
6817}
6818
6819// Pages invokes f for each page of results.
6820// A non-nil error returned from f will halt the iteration.
6821// The provided context supersedes any context provided to the Context method.
6822func (c *ProjectsHistoriesExecutionsEnvironmentsListCall) Pages(ctx context.Context, f func(*ListEnvironmentsResponse) error) error {
6823	c.ctx_ = ctx
6824	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
6825	for {
6826		x, err := c.Do()
6827		if err != nil {
6828			return err
6829		}
6830		if err := f(x); err != nil {
6831			return err
6832		}
6833		if x.NextPageToken == "" {
6834			return nil
6835		}
6836		c.PageToken(x.NextPageToken)
6837	}
6838}
6839
6840// method id "toolresults.projects.histories.executions.steps.accessibilityClusters":
6841
6842type ProjectsHistoriesExecutionsStepsAccessibilityClustersCall struct {
6843	s            *Service
6844	name         string
6845	urlParams_   gensupport.URLParams
6846	ifNoneMatch_ string
6847	ctx_         context.Context
6848	header_      http.Header
6849}
6850
6851// AccessibilityClusters: Lists accessibility clusters for a given Step
6852// May return any of the following canonical error codes: -
6853// PERMISSION_DENIED - if the user is not authorized to read project -
6854// INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION
6855// - if an argument in the request happens to be invalid; e.g. if the
6856// locale format is incorrect - NOT_FOUND - if the containing Step does
6857// not exist
6858//
6859// - name: A full resource name of the step. For example,
6860//   projects/my-project/histories/bh.1234567890abcdef/executions/
6861//   1234567890123456789/steps/bs.1234567890abcdef.
6862func (r *ProjectsHistoriesExecutionsStepsService) AccessibilityClusters(name string) *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall {
6863	c := &ProjectsHistoriesExecutionsStepsAccessibilityClustersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6864	c.name = name
6865	return c
6866}
6867
6868// Locale sets the optional parameter "locale": The accepted format is
6869// the canonical Unicode format with hyphen as a delimiter. Language
6870// must be lowercase, Language Script - Capitalized, Region - UPPERCASE.
6871// See http://www.unicode.org/reports/tr35/#Unicode_locale_identifier
6872// for details. Required.
6873func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) Locale(locale string) *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall {
6874	c.urlParams_.Set("locale", locale)
6875	return c
6876}
6877
6878// Fields allows partial responses to be retrieved. See
6879// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6880// for more information.
6881func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall {
6882	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6883	return c
6884}
6885
6886// IfNoneMatch sets the optional parameter which makes the operation
6887// fail if the object's ETag matches the given value. This is useful for
6888// getting updates only after the object has changed since the last
6889// request. Use googleapi.IsNotModified to check whether the response
6890// error from Do is the result of In-None-Match.
6891func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall {
6892	c.ifNoneMatch_ = entityTag
6893	return c
6894}
6895
6896// Context sets the context to be used in this call's Do method. Any
6897// pending HTTP request will be aborted if the provided context is
6898// canceled.
6899func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall {
6900	c.ctx_ = ctx
6901	return c
6902}
6903
6904// Header returns an http.Header that can be modified by the caller to
6905// add HTTP headers to the request.
6906func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) Header() http.Header {
6907	if c.header_ == nil {
6908		c.header_ = make(http.Header)
6909	}
6910	return c.header_
6911}
6912
6913func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) doRequest(alt string) (*http.Response, error) {
6914	reqHeaders := make(http.Header)
6915	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6916	for k, v := range c.header_ {
6917		reqHeaders[k] = v
6918	}
6919	reqHeaders.Set("User-Agent", c.s.userAgent())
6920	if c.ifNoneMatch_ != "" {
6921		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6922	}
6923	var body io.Reader = nil
6924	c.urlParams_.Set("alt", alt)
6925	c.urlParams_.Set("prettyPrint", "false")
6926	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/{+name}:accessibilityClusters")
6927	urls += "?" + c.urlParams_.Encode()
6928	req, err := http.NewRequest("GET", urls, body)
6929	if err != nil {
6930		return nil, err
6931	}
6932	req.Header = reqHeaders
6933	googleapi.Expand(req.URL, map[string]string{
6934		"name": c.name,
6935	})
6936	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6937}
6938
6939// Do executes the "toolresults.projects.histories.executions.steps.accessibilityClusters" call.
6940// Exactly one of *ListStepAccessibilityClustersResponse or error will
6941// be non-nil. Any non-2xx status code is an error. Response headers are
6942// in either
6943// *ListStepAccessibilityClustersResponse.ServerResponse.Header or (if a
6944// response was returned at all) in error.(*googleapi.Error).Header. Use
6945// googleapi.IsNotModified to check whether the returned error was
6946// because http.StatusNotModified was returned.
6947func (c *ProjectsHistoriesExecutionsStepsAccessibilityClustersCall) Do(opts ...googleapi.CallOption) (*ListStepAccessibilityClustersResponse, error) {
6948	gensupport.SetOptions(c.urlParams_, opts...)
6949	res, err := c.doRequest("json")
6950	if res != nil && res.StatusCode == http.StatusNotModified {
6951		if res.Body != nil {
6952			res.Body.Close()
6953		}
6954		return nil, &googleapi.Error{
6955			Code:   res.StatusCode,
6956			Header: res.Header,
6957		}
6958	}
6959	if err != nil {
6960		return nil, err
6961	}
6962	defer googleapi.CloseBody(res)
6963	if err := googleapi.CheckResponse(res); err != nil {
6964		return nil, err
6965	}
6966	ret := &ListStepAccessibilityClustersResponse{
6967		ServerResponse: googleapi.ServerResponse{
6968			Header:         res.Header,
6969			HTTPStatusCode: res.StatusCode,
6970		},
6971	}
6972	target := &ret
6973	if err := gensupport.DecodeResponse(target, res); err != nil {
6974		return nil, err
6975	}
6976	return ret, nil
6977	// {
6978	//   "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",
6979	//   "flatPath": "toolresults/v1beta3/projects/{projectsId}/histories/{historiesId}/executions/{executionsId}/steps/{stepsId}:accessibilityClusters",
6980	//   "httpMethod": "GET",
6981	//   "id": "toolresults.projects.histories.executions.steps.accessibilityClusters",
6982	//   "parameterOrder": [
6983	//     "name"
6984	//   ],
6985	//   "parameters": {
6986	//     "locale": {
6987	//       "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.",
6988	//       "location": "query",
6989	//       "type": "string"
6990	//     },
6991	//     "name": {
6992	//       "description": "A full resource name of the step. For example, projects/my-project/histories/bh.1234567890abcdef/executions/ 1234567890123456789/steps/bs.1234567890abcdef Required.",
6993	//       "location": "path",
6994	//       "pattern": "^projects/[^/]+/histories/[^/]+/executions/[^/]+/steps/[^/]+$",
6995	//       "required": true,
6996	//       "type": "string"
6997	//     }
6998	//   },
6999	//   "path": "toolresults/v1beta3/{+name}:accessibilityClusters",
7000	//   "response": {
7001	//     "$ref": "ListStepAccessibilityClustersResponse"
7002	//   },
7003	//   "scopes": [
7004	//     "https://www.googleapis.com/auth/cloud-platform"
7005	//   ]
7006	// }
7007
7008}
7009
7010// method id "toolresults.projects.histories.executions.steps.create":
7011
7012type ProjectsHistoriesExecutionsStepsCreateCall struct {
7013	s           *Service
7014	projectId   string
7015	historyId   string
7016	executionId string
7017	step        *Step
7018	urlParams_  gensupport.URLParams
7019	ctx_        context.Context
7020	header_     http.Header
7021}
7022
7023// Create: Creates a Step. The returned Step will have the id set. May
7024// return any of the following canonical error codes: -
7025// PERMISSION_DENIED - if the user is not authorized to write to project
7026// - INVALID_ARGUMENT - if the request is malformed -
7027// FAILED_PRECONDITION - if the step is too large (more than 10Mib) -
7028// NOT_FOUND - if the containing Execution does not exist
7029//
7030// - executionId: An Execution id.
7031// - historyId: A History id.
7032// - projectId: A Project id.
7033func (r *ProjectsHistoriesExecutionsStepsService) Create(projectId string, historyId string, executionId string, step *Step) *ProjectsHistoriesExecutionsStepsCreateCall {
7034	c := &ProjectsHistoriesExecutionsStepsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7035	c.projectId = projectId
7036	c.historyId = historyId
7037	c.executionId = executionId
7038	c.step = step
7039	return c
7040}
7041
7042// RequestId sets the optional parameter "requestId": A unique request
7043// ID for server to detect duplicated requests. For example, a UUID.
7044// Optional, but strongly recommended.
7045func (c *ProjectsHistoriesExecutionsStepsCreateCall) RequestId(requestId string) *ProjectsHistoriesExecutionsStepsCreateCall {
7046	c.urlParams_.Set("requestId", requestId)
7047	return c
7048}
7049
7050// Fields allows partial responses to be retrieved. See
7051// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7052// for more information.
7053func (c *ProjectsHistoriesExecutionsStepsCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsCreateCall {
7054	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7055	return c
7056}
7057
7058// Context sets the context to be used in this call's Do method. Any
7059// pending HTTP request will be aborted if the provided context is
7060// canceled.
7061func (c *ProjectsHistoriesExecutionsStepsCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsCreateCall {
7062	c.ctx_ = ctx
7063	return c
7064}
7065
7066// Header returns an http.Header that can be modified by the caller to
7067// add HTTP headers to the request.
7068func (c *ProjectsHistoriesExecutionsStepsCreateCall) Header() http.Header {
7069	if c.header_ == nil {
7070		c.header_ = make(http.Header)
7071	}
7072	return c.header_
7073}
7074
7075func (c *ProjectsHistoriesExecutionsStepsCreateCall) doRequest(alt string) (*http.Response, error) {
7076	reqHeaders := make(http.Header)
7077	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
7078	for k, v := range c.header_ {
7079		reqHeaders[k] = v
7080	}
7081	reqHeaders.Set("User-Agent", c.s.userAgent())
7082	var body io.Reader = nil
7083	body, err := googleapi.WithoutDataWrapper.JSONReader(c.step)
7084	if err != nil {
7085		return nil, err
7086	}
7087	reqHeaders.Set("Content-Type", "application/json")
7088	c.urlParams_.Set("alt", alt)
7089	c.urlParams_.Set("prettyPrint", "false")
7090	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps")
7091	urls += "?" + c.urlParams_.Encode()
7092	req, err := http.NewRequest("POST", urls, body)
7093	if err != nil {
7094		return nil, err
7095	}
7096	req.Header = reqHeaders
7097	googleapi.Expand(req.URL, map[string]string{
7098		"projectId":   c.projectId,
7099		"historyId":   c.historyId,
7100		"executionId": c.executionId,
7101	})
7102	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7103}
7104
7105// Do executes the "toolresults.projects.histories.executions.steps.create" call.
7106// Exactly one of *Step or error will be non-nil. Any non-2xx status
7107// code is an error. Response headers are in either
7108// *Step.ServerResponse.Header or (if a response was returned at all) in
7109// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
7110// whether the returned error was because http.StatusNotModified was
7111// returned.
7112func (c *ProjectsHistoriesExecutionsStepsCreateCall) Do(opts ...googleapi.CallOption) (*Step, error) {
7113	gensupport.SetOptions(c.urlParams_, opts...)
7114	res, err := c.doRequest("json")
7115	if res != nil && res.StatusCode == http.StatusNotModified {
7116		if res.Body != nil {
7117			res.Body.Close()
7118		}
7119		return nil, &googleapi.Error{
7120			Code:   res.StatusCode,
7121			Header: res.Header,
7122		}
7123	}
7124	if err != nil {
7125		return nil, err
7126	}
7127	defer googleapi.CloseBody(res)
7128	if err := googleapi.CheckResponse(res); err != nil {
7129		return nil, err
7130	}
7131	ret := &Step{
7132		ServerResponse: googleapi.ServerResponse{
7133			Header:         res.Header,
7134			HTTPStatusCode: res.StatusCode,
7135		},
7136	}
7137	target := &ret
7138	if err := gensupport.DecodeResponse(target, res); err != nil {
7139		return nil, err
7140	}
7141	return ret, nil
7142	// {
7143	//   "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",
7144	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps",
7145	//   "httpMethod": "POST",
7146	//   "id": "toolresults.projects.histories.executions.steps.create",
7147	//   "parameterOrder": [
7148	//     "projectId",
7149	//     "historyId",
7150	//     "executionId"
7151	//   ],
7152	//   "parameters": {
7153	//     "executionId": {
7154	//       "description": "Required. An Execution id.",
7155	//       "location": "path",
7156	//       "required": true,
7157	//       "type": "string"
7158	//     },
7159	//     "historyId": {
7160	//       "description": "Required. A History id.",
7161	//       "location": "path",
7162	//       "required": true,
7163	//       "type": "string"
7164	//     },
7165	//     "projectId": {
7166	//       "description": "Required. A Project id.",
7167	//       "location": "path",
7168	//       "required": true,
7169	//       "type": "string"
7170	//     },
7171	//     "requestId": {
7172	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID. Optional, but strongly recommended.",
7173	//       "location": "query",
7174	//       "type": "string"
7175	//     }
7176	//   },
7177	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps",
7178	//   "request": {
7179	//     "$ref": "Step"
7180	//   },
7181	//   "response": {
7182	//     "$ref": "Step"
7183	//   },
7184	//   "scopes": [
7185	//     "https://www.googleapis.com/auth/cloud-platform"
7186	//   ]
7187	// }
7188
7189}
7190
7191// method id "toolresults.projects.histories.executions.steps.get":
7192
7193type ProjectsHistoriesExecutionsStepsGetCall struct {
7194	s            *Service
7195	projectId    string
7196	historyId    string
7197	executionId  string
7198	stepId       string
7199	urlParams_   gensupport.URLParams
7200	ifNoneMatch_ string
7201	ctx_         context.Context
7202	header_      http.Header
7203}
7204
7205// Get: Gets a Step. May return any of the following canonical error
7206// codes: - PERMISSION_DENIED - if the user is not authorized to read
7207// project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND
7208// - if the Step does not exist
7209//
7210// - executionId: A Execution id.
7211// - historyId: A History id.
7212// - projectId: A Project id.
7213// - stepId: A Step id.
7214func (r *ProjectsHistoriesExecutionsStepsService) Get(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsGetCall {
7215	c := &ProjectsHistoriesExecutionsStepsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7216	c.projectId = projectId
7217	c.historyId = historyId
7218	c.executionId = executionId
7219	c.stepId = stepId
7220	return c
7221}
7222
7223// Fields allows partial responses to be retrieved. See
7224// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7225// for more information.
7226func (c *ProjectsHistoriesExecutionsStepsGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsGetCall {
7227	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7228	return c
7229}
7230
7231// IfNoneMatch sets the optional parameter which makes the operation
7232// fail if the object's ETag matches the given value. This is useful for
7233// getting updates only after the object has changed since the last
7234// request. Use googleapi.IsNotModified to check whether the response
7235// error from Do is the result of In-None-Match.
7236func (c *ProjectsHistoriesExecutionsStepsGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsGetCall {
7237	c.ifNoneMatch_ = entityTag
7238	return c
7239}
7240
7241// Context sets the context to be used in this call's Do method. Any
7242// pending HTTP request will be aborted if the provided context is
7243// canceled.
7244func (c *ProjectsHistoriesExecutionsStepsGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsGetCall {
7245	c.ctx_ = ctx
7246	return c
7247}
7248
7249// Header returns an http.Header that can be modified by the caller to
7250// add HTTP headers to the request.
7251func (c *ProjectsHistoriesExecutionsStepsGetCall) Header() http.Header {
7252	if c.header_ == nil {
7253		c.header_ = make(http.Header)
7254	}
7255	return c.header_
7256}
7257
7258func (c *ProjectsHistoriesExecutionsStepsGetCall) doRequest(alt string) (*http.Response, error) {
7259	reqHeaders := make(http.Header)
7260	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
7261	for k, v := range c.header_ {
7262		reqHeaders[k] = v
7263	}
7264	reqHeaders.Set("User-Agent", c.s.userAgent())
7265	if c.ifNoneMatch_ != "" {
7266		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7267	}
7268	var body io.Reader = nil
7269	c.urlParams_.Set("alt", alt)
7270	c.urlParams_.Set("prettyPrint", "false")
7271	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}")
7272	urls += "?" + c.urlParams_.Encode()
7273	req, err := http.NewRequest("GET", urls, body)
7274	if err != nil {
7275		return nil, err
7276	}
7277	req.Header = reqHeaders
7278	googleapi.Expand(req.URL, map[string]string{
7279		"projectId":   c.projectId,
7280		"historyId":   c.historyId,
7281		"executionId": c.executionId,
7282		"stepId":      c.stepId,
7283	})
7284	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7285}
7286
7287// Do executes the "toolresults.projects.histories.executions.steps.get" call.
7288// Exactly one of *Step or error will be non-nil. Any non-2xx status
7289// code is an error. Response headers are in either
7290// *Step.ServerResponse.Header or (if a response was returned at all) in
7291// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
7292// whether the returned error was because http.StatusNotModified was
7293// returned.
7294func (c *ProjectsHistoriesExecutionsStepsGetCall) Do(opts ...googleapi.CallOption) (*Step, error) {
7295	gensupport.SetOptions(c.urlParams_, opts...)
7296	res, err := c.doRequest("json")
7297	if res != nil && res.StatusCode == http.StatusNotModified {
7298		if res.Body != nil {
7299			res.Body.Close()
7300		}
7301		return nil, &googleapi.Error{
7302			Code:   res.StatusCode,
7303			Header: res.Header,
7304		}
7305	}
7306	if err != nil {
7307		return nil, err
7308	}
7309	defer googleapi.CloseBody(res)
7310	if err := googleapi.CheckResponse(res); err != nil {
7311		return nil, err
7312	}
7313	ret := &Step{
7314		ServerResponse: googleapi.ServerResponse{
7315			Header:         res.Header,
7316			HTTPStatusCode: res.StatusCode,
7317		},
7318	}
7319	target := &ret
7320	if err := gensupport.DecodeResponse(target, res); err != nil {
7321		return nil, err
7322	}
7323	return ret, nil
7324	// {
7325	//   "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",
7326	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
7327	//   "httpMethod": "GET",
7328	//   "id": "toolresults.projects.histories.executions.steps.get",
7329	//   "parameterOrder": [
7330	//     "projectId",
7331	//     "historyId",
7332	//     "executionId",
7333	//     "stepId"
7334	//   ],
7335	//   "parameters": {
7336	//     "executionId": {
7337	//       "description": "A Execution id. Required.",
7338	//       "location": "path",
7339	//       "required": true,
7340	//       "type": "string"
7341	//     },
7342	//     "historyId": {
7343	//       "description": "A History id. Required.",
7344	//       "location": "path",
7345	//       "required": true,
7346	//       "type": "string"
7347	//     },
7348	//     "projectId": {
7349	//       "description": "A Project id. Required.",
7350	//       "location": "path",
7351	//       "required": true,
7352	//       "type": "string"
7353	//     },
7354	//     "stepId": {
7355	//       "description": "A Step id. Required.",
7356	//       "location": "path",
7357	//       "required": true,
7358	//       "type": "string"
7359	//     }
7360	//   },
7361	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
7362	//   "response": {
7363	//     "$ref": "Step"
7364	//   },
7365	//   "scopes": [
7366	//     "https://www.googleapis.com/auth/cloud-platform"
7367	//   ]
7368	// }
7369
7370}
7371
7372// method id "toolresults.projects.histories.executions.steps.getPerfMetricsSummary":
7373
7374type ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall struct {
7375	s            *Service
7376	projectId    string
7377	historyId    string
7378	executionId  string
7379	stepId       string
7380	urlParams_   gensupport.URLParams
7381	ifNoneMatch_ string
7382	ctx_         context.Context
7383	header_      http.Header
7384}
7385
7386// GetPerfMetricsSummary: Retrieves a PerfMetricsSummary. May return any
7387// of the following error code(s): - NOT_FOUND - The specified
7388// PerfMetricsSummary does not exist
7389//
7390// - executionId: A tool results execution ID.
7391// - historyId: A tool results history ID.
7392// - projectId: The cloud project.
7393// - stepId: A tool results step ID.
7394func (r *ProjectsHistoriesExecutionsStepsService) GetPerfMetricsSummary(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall {
7395	c := &ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7396	c.projectId = projectId
7397	c.historyId = historyId
7398	c.executionId = executionId
7399	c.stepId = stepId
7400	return c
7401}
7402
7403// Fields allows partial responses to be retrieved. See
7404// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7405// for more information.
7406func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall {
7407	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7408	return c
7409}
7410
7411// IfNoneMatch sets the optional parameter which makes the operation
7412// fail if the object's ETag matches the given value. This is useful for
7413// getting updates only after the object has changed since the last
7414// request. Use googleapi.IsNotModified to check whether the response
7415// error from Do is the result of In-None-Match.
7416func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall {
7417	c.ifNoneMatch_ = entityTag
7418	return c
7419}
7420
7421// Context sets the context to be used in this call's Do method. Any
7422// pending HTTP request will be aborted if the provided context is
7423// canceled.
7424func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall {
7425	c.ctx_ = ctx
7426	return c
7427}
7428
7429// Header returns an http.Header that can be modified by the caller to
7430// add HTTP headers to the request.
7431func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) Header() http.Header {
7432	if c.header_ == nil {
7433		c.header_ = make(http.Header)
7434	}
7435	return c.header_
7436}
7437
7438func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) doRequest(alt string) (*http.Response, error) {
7439	reqHeaders := make(http.Header)
7440	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
7441	for k, v := range c.header_ {
7442		reqHeaders[k] = v
7443	}
7444	reqHeaders.Set("User-Agent", c.s.userAgent())
7445	if c.ifNoneMatch_ != "" {
7446		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7447	}
7448	var body io.Reader = nil
7449	c.urlParams_.Set("alt", alt)
7450	c.urlParams_.Set("prettyPrint", "false")
7451	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary")
7452	urls += "?" + c.urlParams_.Encode()
7453	req, err := http.NewRequest("GET", urls, body)
7454	if err != nil {
7455		return nil, err
7456	}
7457	req.Header = reqHeaders
7458	googleapi.Expand(req.URL, map[string]string{
7459		"projectId":   c.projectId,
7460		"historyId":   c.historyId,
7461		"executionId": c.executionId,
7462		"stepId":      c.stepId,
7463	})
7464	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7465}
7466
7467// Do executes the "toolresults.projects.histories.executions.steps.getPerfMetricsSummary" call.
7468// Exactly one of *PerfMetricsSummary or error will be non-nil. Any
7469// non-2xx status code is an error. Response headers are in either
7470// *PerfMetricsSummary.ServerResponse.Header or (if a response was
7471// returned at all) in error.(*googleapi.Error).Header. Use
7472// googleapi.IsNotModified to check whether the returned error was
7473// because http.StatusNotModified was returned.
7474func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) Do(opts ...googleapi.CallOption) (*PerfMetricsSummary, error) {
7475	gensupport.SetOptions(c.urlParams_, opts...)
7476	res, err := c.doRequest("json")
7477	if res != nil && res.StatusCode == http.StatusNotModified {
7478		if res.Body != nil {
7479			res.Body.Close()
7480		}
7481		return nil, &googleapi.Error{
7482			Code:   res.StatusCode,
7483			Header: res.Header,
7484		}
7485	}
7486	if err != nil {
7487		return nil, err
7488	}
7489	defer googleapi.CloseBody(res)
7490	if err := googleapi.CheckResponse(res); err != nil {
7491		return nil, err
7492	}
7493	ret := &PerfMetricsSummary{
7494		ServerResponse: googleapi.ServerResponse{
7495			Header:         res.Header,
7496			HTTPStatusCode: res.StatusCode,
7497		},
7498	}
7499	target := &ret
7500	if err := gensupport.DecodeResponse(target, res); err != nil {
7501		return nil, err
7502	}
7503	return ret, nil
7504	// {
7505	//   "description": "Retrieves a PerfMetricsSummary. May return any of the following error code(s): - NOT_FOUND - The specified PerfMetricsSummary does not exist",
7506	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary",
7507	//   "httpMethod": "GET",
7508	//   "id": "toolresults.projects.histories.executions.steps.getPerfMetricsSummary",
7509	//   "parameterOrder": [
7510	//     "projectId",
7511	//     "historyId",
7512	//     "executionId",
7513	//     "stepId"
7514	//   ],
7515	//   "parameters": {
7516	//     "executionId": {
7517	//       "description": "A tool results execution ID.",
7518	//       "location": "path",
7519	//       "required": true,
7520	//       "type": "string"
7521	//     },
7522	//     "historyId": {
7523	//       "description": "A tool results history ID.",
7524	//       "location": "path",
7525	//       "required": true,
7526	//       "type": "string"
7527	//     },
7528	//     "projectId": {
7529	//       "description": "The cloud project",
7530	//       "location": "path",
7531	//       "required": true,
7532	//       "type": "string"
7533	//     },
7534	//     "stepId": {
7535	//       "description": "A tool results step ID.",
7536	//       "location": "path",
7537	//       "required": true,
7538	//       "type": "string"
7539	//     }
7540	//   },
7541	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary",
7542	//   "response": {
7543	//     "$ref": "PerfMetricsSummary"
7544	//   },
7545	//   "scopes": [
7546	//     "https://www.googleapis.com/auth/cloud-platform"
7547	//   ]
7548	// }
7549
7550}
7551
7552// method id "toolresults.projects.histories.executions.steps.list":
7553
7554type ProjectsHistoriesExecutionsStepsListCall struct {
7555	s            *Service
7556	projectId    string
7557	historyId    string
7558	executionId  string
7559	urlParams_   gensupport.URLParams
7560	ifNoneMatch_ string
7561	ctx_         context.Context
7562	header_      http.Header
7563}
7564
7565// List: Lists Steps for a given Execution. The steps are sorted by
7566// creation_time in descending order. The step_id key will be used to
7567// order the steps with the same creation_time. May return any of the
7568// following canonical error codes: - PERMISSION_DENIED - if the user is
7569// not authorized to read project - INVALID_ARGUMENT - if the request is
7570// malformed - FAILED_PRECONDITION - if an argument in the request
7571// happens to be invalid; e.g. if an attempt is made to list the
7572// children of a nonexistent Step - NOT_FOUND - if the containing
7573// Execution does not exist
7574//
7575// - executionId: A Execution id.
7576// - historyId: A History id.
7577// - projectId: A Project id.
7578func (r *ProjectsHistoriesExecutionsStepsService) List(projectId string, historyId string, executionId string) *ProjectsHistoriesExecutionsStepsListCall {
7579	c := &ProjectsHistoriesExecutionsStepsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7580	c.projectId = projectId
7581	c.historyId = historyId
7582	c.executionId = executionId
7583	return c
7584}
7585
7586// PageSize sets the optional parameter "pageSize": The maximum number
7587// of Steps to fetch. Default value: 25. The server will use this
7588// default if the field is not set or has a value of 0.
7589func (c *ProjectsHistoriesExecutionsStepsListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsStepsListCall {
7590	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
7591	return c
7592}
7593
7594// PageToken sets the optional parameter "pageToken": A continuation
7595// token to resume the query at the next item.
7596func (c *ProjectsHistoriesExecutionsStepsListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsStepsListCall {
7597	c.urlParams_.Set("pageToken", pageToken)
7598	return c
7599}
7600
7601// Fields allows partial responses to be retrieved. See
7602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7603// for more information.
7604func (c *ProjectsHistoriesExecutionsStepsListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsListCall {
7605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7606	return c
7607}
7608
7609// IfNoneMatch sets the optional parameter which makes the operation
7610// fail if the object's ETag matches the given value. This is useful for
7611// getting updates only after the object has changed since the last
7612// request. Use googleapi.IsNotModified to check whether the response
7613// error from Do is the result of In-None-Match.
7614func (c *ProjectsHistoriesExecutionsStepsListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsListCall {
7615	c.ifNoneMatch_ = entityTag
7616	return c
7617}
7618
7619// Context sets the context to be used in this call's Do method. Any
7620// pending HTTP request will be aborted if the provided context is
7621// canceled.
7622func (c *ProjectsHistoriesExecutionsStepsListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsListCall {
7623	c.ctx_ = ctx
7624	return c
7625}
7626
7627// Header returns an http.Header that can be modified by the caller to
7628// add HTTP headers to the request.
7629func (c *ProjectsHistoriesExecutionsStepsListCall) Header() http.Header {
7630	if c.header_ == nil {
7631		c.header_ = make(http.Header)
7632	}
7633	return c.header_
7634}
7635
7636func (c *ProjectsHistoriesExecutionsStepsListCall) doRequest(alt string) (*http.Response, error) {
7637	reqHeaders := make(http.Header)
7638	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
7639	for k, v := range c.header_ {
7640		reqHeaders[k] = v
7641	}
7642	reqHeaders.Set("User-Agent", c.s.userAgent())
7643	if c.ifNoneMatch_ != "" {
7644		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7645	}
7646	var body io.Reader = nil
7647	c.urlParams_.Set("alt", alt)
7648	c.urlParams_.Set("prettyPrint", "false")
7649	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps")
7650	urls += "?" + c.urlParams_.Encode()
7651	req, err := http.NewRequest("GET", urls, body)
7652	if err != nil {
7653		return nil, err
7654	}
7655	req.Header = reqHeaders
7656	googleapi.Expand(req.URL, map[string]string{
7657		"projectId":   c.projectId,
7658		"historyId":   c.historyId,
7659		"executionId": c.executionId,
7660	})
7661	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7662}
7663
7664// Do executes the "toolresults.projects.histories.executions.steps.list" call.
7665// Exactly one of *ListStepsResponse or error will be non-nil. Any
7666// non-2xx status code is an error. Response headers are in either
7667// *ListStepsResponse.ServerResponse.Header or (if a response was
7668// returned at all) in error.(*googleapi.Error).Header. Use
7669// googleapi.IsNotModified to check whether the returned error was
7670// because http.StatusNotModified was returned.
7671func (c *ProjectsHistoriesExecutionsStepsListCall) Do(opts ...googleapi.CallOption) (*ListStepsResponse, error) {
7672	gensupport.SetOptions(c.urlParams_, opts...)
7673	res, err := c.doRequest("json")
7674	if res != nil && res.StatusCode == http.StatusNotModified {
7675		if res.Body != nil {
7676			res.Body.Close()
7677		}
7678		return nil, &googleapi.Error{
7679			Code:   res.StatusCode,
7680			Header: res.Header,
7681		}
7682	}
7683	if err != nil {
7684		return nil, err
7685	}
7686	defer googleapi.CloseBody(res)
7687	if err := googleapi.CheckResponse(res); err != nil {
7688		return nil, err
7689	}
7690	ret := &ListStepsResponse{
7691		ServerResponse: googleapi.ServerResponse{
7692			Header:         res.Header,
7693			HTTPStatusCode: res.StatusCode,
7694		},
7695	}
7696	target := &ret
7697	if err := gensupport.DecodeResponse(target, res); err != nil {
7698		return nil, err
7699	}
7700	return ret, nil
7701	// {
7702	//   "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",
7703	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps",
7704	//   "httpMethod": "GET",
7705	//   "id": "toolresults.projects.histories.executions.steps.list",
7706	//   "parameterOrder": [
7707	//     "projectId",
7708	//     "historyId",
7709	//     "executionId"
7710	//   ],
7711	//   "parameters": {
7712	//     "executionId": {
7713	//       "description": "A Execution id. Required.",
7714	//       "location": "path",
7715	//       "required": true,
7716	//       "type": "string"
7717	//     },
7718	//     "historyId": {
7719	//       "description": "A History id. Required.",
7720	//       "location": "path",
7721	//       "required": true,
7722	//       "type": "string"
7723	//     },
7724	//     "pageSize": {
7725	//       "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.",
7726	//       "format": "int32",
7727	//       "location": "query",
7728	//       "type": "integer"
7729	//     },
7730	//     "pageToken": {
7731	//       "description": "A continuation token to resume the query at the next item. Optional.",
7732	//       "location": "query",
7733	//       "type": "string"
7734	//     },
7735	//     "projectId": {
7736	//       "description": "A Project id. Required.",
7737	//       "location": "path",
7738	//       "required": true,
7739	//       "type": "string"
7740	//     }
7741	//   },
7742	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps",
7743	//   "response": {
7744	//     "$ref": "ListStepsResponse"
7745	//   },
7746	//   "scopes": [
7747	//     "https://www.googleapis.com/auth/cloud-platform"
7748	//   ]
7749	// }
7750
7751}
7752
7753// Pages invokes f for each page of results.
7754// A non-nil error returned from f will halt the iteration.
7755// The provided context supersedes any context provided to the Context method.
7756func (c *ProjectsHistoriesExecutionsStepsListCall) Pages(ctx context.Context, f func(*ListStepsResponse) error) error {
7757	c.ctx_ = ctx
7758	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7759	for {
7760		x, err := c.Do()
7761		if err != nil {
7762			return err
7763		}
7764		if err := f(x); err != nil {
7765			return err
7766		}
7767		if x.NextPageToken == "" {
7768			return nil
7769		}
7770		c.PageToken(x.NextPageToken)
7771	}
7772}
7773
7774// method id "toolresults.projects.histories.executions.steps.patch":
7775
7776type ProjectsHistoriesExecutionsStepsPatchCall struct {
7777	s           *Service
7778	projectId   string
7779	historyId   string
7780	executionId string
7781	stepId      string
7782	step        *Step
7783	urlParams_  gensupport.URLParams
7784	ctx_        context.Context
7785	header_     http.Header
7786}
7787
7788// Patch: Updates an existing Step with the supplied partial entity. May
7789// return any of the following canonical error codes: -
7790// PERMISSION_DENIED - if the user is not authorized to write project -
7791// INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION
7792// - if the requested state transition is illegal (e.g try to upload a
7793// duplicate xml file), if the updated step is too large (more than
7794// 10Mib) - NOT_FOUND - if the containing Execution does not exist
7795//
7796// - executionId: A Execution id.
7797// - historyId: A History id.
7798// - projectId: A Project id.
7799// - stepId: A Step id.
7800func (r *ProjectsHistoriesExecutionsStepsService) Patch(projectId string, historyId string, executionId string, stepId string, step *Step) *ProjectsHistoriesExecutionsStepsPatchCall {
7801	c := &ProjectsHistoriesExecutionsStepsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7802	c.projectId = projectId
7803	c.historyId = historyId
7804	c.executionId = executionId
7805	c.stepId = stepId
7806	c.step = step
7807	return c
7808}
7809
7810// RequestId sets the optional parameter "requestId": A unique request
7811// ID for server to detect duplicated requests. For example, a UUID.
7812// Optional, but strongly recommended.
7813func (c *ProjectsHistoriesExecutionsStepsPatchCall) RequestId(requestId string) *ProjectsHistoriesExecutionsStepsPatchCall {
7814	c.urlParams_.Set("requestId", requestId)
7815	return c
7816}
7817
7818// Fields allows partial responses to be retrieved. See
7819// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7820// for more information.
7821func (c *ProjectsHistoriesExecutionsStepsPatchCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPatchCall {
7822	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7823	return c
7824}
7825
7826// Context sets the context to be used in this call's Do method. Any
7827// pending HTTP request will be aborted if the provided context is
7828// canceled.
7829func (c *ProjectsHistoriesExecutionsStepsPatchCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPatchCall {
7830	c.ctx_ = ctx
7831	return c
7832}
7833
7834// Header returns an http.Header that can be modified by the caller to
7835// add HTTP headers to the request.
7836func (c *ProjectsHistoriesExecutionsStepsPatchCall) Header() http.Header {
7837	if c.header_ == nil {
7838		c.header_ = make(http.Header)
7839	}
7840	return c.header_
7841}
7842
7843func (c *ProjectsHistoriesExecutionsStepsPatchCall) doRequest(alt string) (*http.Response, error) {
7844	reqHeaders := make(http.Header)
7845	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
7846	for k, v := range c.header_ {
7847		reqHeaders[k] = v
7848	}
7849	reqHeaders.Set("User-Agent", c.s.userAgent())
7850	var body io.Reader = nil
7851	body, err := googleapi.WithoutDataWrapper.JSONReader(c.step)
7852	if err != nil {
7853		return nil, err
7854	}
7855	reqHeaders.Set("Content-Type", "application/json")
7856	c.urlParams_.Set("alt", alt)
7857	c.urlParams_.Set("prettyPrint", "false")
7858	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}")
7859	urls += "?" + c.urlParams_.Encode()
7860	req, err := http.NewRequest("PATCH", urls, body)
7861	if err != nil {
7862		return nil, err
7863	}
7864	req.Header = reqHeaders
7865	googleapi.Expand(req.URL, map[string]string{
7866		"projectId":   c.projectId,
7867		"historyId":   c.historyId,
7868		"executionId": c.executionId,
7869		"stepId":      c.stepId,
7870	})
7871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7872}
7873
7874// Do executes the "toolresults.projects.histories.executions.steps.patch" call.
7875// Exactly one of *Step or error will be non-nil. Any non-2xx status
7876// code is an error. Response headers are in either
7877// *Step.ServerResponse.Header or (if a response was returned at all) in
7878// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
7879// whether the returned error was because http.StatusNotModified was
7880// returned.
7881func (c *ProjectsHistoriesExecutionsStepsPatchCall) Do(opts ...googleapi.CallOption) (*Step, error) {
7882	gensupport.SetOptions(c.urlParams_, opts...)
7883	res, err := c.doRequest("json")
7884	if res != nil && res.StatusCode == http.StatusNotModified {
7885		if res.Body != nil {
7886			res.Body.Close()
7887		}
7888		return nil, &googleapi.Error{
7889			Code:   res.StatusCode,
7890			Header: res.Header,
7891		}
7892	}
7893	if err != nil {
7894		return nil, err
7895	}
7896	defer googleapi.CloseBody(res)
7897	if err := googleapi.CheckResponse(res); err != nil {
7898		return nil, err
7899	}
7900	ret := &Step{
7901		ServerResponse: googleapi.ServerResponse{
7902			Header:         res.Header,
7903			HTTPStatusCode: res.StatusCode,
7904		},
7905	}
7906	target := &ret
7907	if err := gensupport.DecodeResponse(target, res); err != nil {
7908		return nil, err
7909	}
7910	return ret, nil
7911	// {
7912	//   "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",
7913	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
7914	//   "httpMethod": "PATCH",
7915	//   "id": "toolresults.projects.histories.executions.steps.patch",
7916	//   "parameterOrder": [
7917	//     "projectId",
7918	//     "historyId",
7919	//     "executionId",
7920	//     "stepId"
7921	//   ],
7922	//   "parameters": {
7923	//     "executionId": {
7924	//       "description": "A Execution id. Required.",
7925	//       "location": "path",
7926	//       "required": true,
7927	//       "type": "string"
7928	//     },
7929	//     "historyId": {
7930	//       "description": "A History id. Required.",
7931	//       "location": "path",
7932	//       "required": true,
7933	//       "type": "string"
7934	//     },
7935	//     "projectId": {
7936	//       "description": "A Project id. Required.",
7937	//       "location": "path",
7938	//       "required": true,
7939	//       "type": "string"
7940	//     },
7941	//     "requestId": {
7942	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID. Optional, but strongly recommended.",
7943	//       "location": "query",
7944	//       "type": "string"
7945	//     },
7946	//     "stepId": {
7947	//       "description": "A Step id. Required.",
7948	//       "location": "path",
7949	//       "required": true,
7950	//       "type": "string"
7951	//     }
7952	//   },
7953	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
7954	//   "request": {
7955	//     "$ref": "Step"
7956	//   },
7957	//   "response": {
7958	//     "$ref": "Step"
7959	//   },
7960	//   "scopes": [
7961	//     "https://www.googleapis.com/auth/cloud-platform"
7962	//   ]
7963	// }
7964
7965}
7966
7967// method id "toolresults.projects.histories.executions.steps.publishXunitXmlFiles":
7968
7969type ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall struct {
7970	s                           *Service
7971	projectId                   string
7972	historyId                   string
7973	executionId                 string
7974	stepId                      string
7975	publishxunitxmlfilesrequest *PublishXunitXmlFilesRequest
7976	urlParams_                  gensupport.URLParams
7977	ctx_                        context.Context
7978	header_                     http.Header
7979}
7980
7981// PublishXunitXmlFiles: Publish xml files to an existing Step. May
7982// return any of the following canonical error codes: -
7983// PERMISSION_DENIED - if the user is not authorized to write project -
7984// INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION
7985// - if the requested state transition is illegal, e.g try to upload a
7986// duplicate xml file or a file too large. - NOT_FOUND - if the
7987// containing Execution does not exist
7988//
7989// - executionId: A Execution id.
7990// - historyId: A History id.
7991// - projectId: A Project id.
7992// - stepId: A Step id. Note: This step must include a
7993//   TestExecutionStep.
7994func (r *ProjectsHistoriesExecutionsStepsService) PublishXunitXmlFiles(projectId string, historyId string, executionId string, stepId string, publishxunitxmlfilesrequest *PublishXunitXmlFilesRequest) *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall {
7995	c := &ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7996	c.projectId = projectId
7997	c.historyId = historyId
7998	c.executionId = executionId
7999	c.stepId = stepId
8000	c.publishxunitxmlfilesrequest = publishxunitxmlfilesrequest
8001	return c
8002}
8003
8004// Fields allows partial responses to be retrieved. See
8005// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8006// for more information.
8007func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall {
8008	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8009	return c
8010}
8011
8012// Context sets the context to be used in this call's Do method. Any
8013// pending HTTP request will be aborted if the provided context is
8014// canceled.
8015func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall {
8016	c.ctx_ = ctx
8017	return c
8018}
8019
8020// Header returns an http.Header that can be modified by the caller to
8021// add HTTP headers to the request.
8022func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) Header() http.Header {
8023	if c.header_ == nil {
8024		c.header_ = make(http.Header)
8025	}
8026	return c.header_
8027}
8028
8029func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) doRequest(alt string) (*http.Response, error) {
8030	reqHeaders := make(http.Header)
8031	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8032	for k, v := range c.header_ {
8033		reqHeaders[k] = v
8034	}
8035	reqHeaders.Set("User-Agent", c.s.userAgent())
8036	var body io.Reader = nil
8037	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publishxunitxmlfilesrequest)
8038	if err != nil {
8039		return nil, err
8040	}
8041	reqHeaders.Set("Content-Type", "application/json")
8042	c.urlParams_.Set("alt", alt)
8043	c.urlParams_.Set("prettyPrint", "false")
8044	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles")
8045	urls += "?" + c.urlParams_.Encode()
8046	req, err := http.NewRequest("POST", urls, body)
8047	if err != nil {
8048		return nil, err
8049	}
8050	req.Header = reqHeaders
8051	googleapi.Expand(req.URL, map[string]string{
8052		"projectId":   c.projectId,
8053		"historyId":   c.historyId,
8054		"executionId": c.executionId,
8055		"stepId":      c.stepId,
8056	})
8057	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8058}
8059
8060// Do executes the "toolresults.projects.histories.executions.steps.publishXunitXmlFiles" call.
8061// Exactly one of *Step or error will be non-nil. Any non-2xx status
8062// code is an error. Response headers are in either
8063// *Step.ServerResponse.Header or (if a response was returned at all) in
8064// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
8065// whether the returned error was because http.StatusNotModified was
8066// returned.
8067func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) Do(opts ...googleapi.CallOption) (*Step, error) {
8068	gensupport.SetOptions(c.urlParams_, opts...)
8069	res, err := c.doRequest("json")
8070	if res != nil && res.StatusCode == http.StatusNotModified {
8071		if res.Body != nil {
8072			res.Body.Close()
8073		}
8074		return nil, &googleapi.Error{
8075			Code:   res.StatusCode,
8076			Header: res.Header,
8077		}
8078	}
8079	if err != nil {
8080		return nil, err
8081	}
8082	defer googleapi.CloseBody(res)
8083	if err := googleapi.CheckResponse(res); err != nil {
8084		return nil, err
8085	}
8086	ret := &Step{
8087		ServerResponse: googleapi.ServerResponse{
8088			Header:         res.Header,
8089			HTTPStatusCode: res.StatusCode,
8090		},
8091	}
8092	target := &ret
8093	if err := gensupport.DecodeResponse(target, res); err != nil {
8094		return nil, err
8095	}
8096	return ret, nil
8097	// {
8098	//   "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",
8099	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles",
8100	//   "httpMethod": "POST",
8101	//   "id": "toolresults.projects.histories.executions.steps.publishXunitXmlFiles",
8102	//   "parameterOrder": [
8103	//     "projectId",
8104	//     "historyId",
8105	//     "executionId",
8106	//     "stepId"
8107	//   ],
8108	//   "parameters": {
8109	//     "executionId": {
8110	//       "description": "A Execution id. Required.",
8111	//       "location": "path",
8112	//       "required": true,
8113	//       "type": "string"
8114	//     },
8115	//     "historyId": {
8116	//       "description": "A History id. Required.",
8117	//       "location": "path",
8118	//       "required": true,
8119	//       "type": "string"
8120	//     },
8121	//     "projectId": {
8122	//       "description": "A Project id. Required.",
8123	//       "location": "path",
8124	//       "required": true,
8125	//       "type": "string"
8126	//     },
8127	//     "stepId": {
8128	//       "description": "A Step id. Note: This step must include a TestExecutionStep. Required.",
8129	//       "location": "path",
8130	//       "required": true,
8131	//       "type": "string"
8132	//     }
8133	//   },
8134	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles",
8135	//   "request": {
8136	//     "$ref": "PublishXunitXmlFilesRequest"
8137	//   },
8138	//   "response": {
8139	//     "$ref": "Step"
8140	//   },
8141	//   "scopes": [
8142	//     "https://www.googleapis.com/auth/cloud-platform"
8143	//   ]
8144	// }
8145
8146}
8147
8148// method id "toolresults.projects.histories.executions.steps.perfMetricsSummary.create":
8149
8150type ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall struct {
8151	s                  *Service
8152	projectId          string
8153	historyId          string
8154	executionId        string
8155	stepId             string
8156	perfmetricssummary *PerfMetricsSummary
8157	urlParams_         gensupport.URLParams
8158	ctx_               context.Context
8159	header_            http.Header
8160}
8161
8162// Create: Creates a PerfMetricsSummary resource. Returns the existing
8163// one if it has already been created. May return any of the following
8164// error code(s): - NOT_FOUND - The containing Step does not exist
8165//
8166// - executionId: A tool results execution ID.
8167// - historyId: A tool results history ID.
8168// - projectId: The cloud project.
8169// - stepId: A tool results step ID.
8170func (r *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService) Create(projectId string, historyId string, executionId string, stepId string, perfmetricssummary *PerfMetricsSummary) *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall {
8171	c := &ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8172	c.projectId = projectId
8173	c.historyId = historyId
8174	c.executionId = executionId
8175	c.stepId = stepId
8176	c.perfmetricssummary = perfmetricssummary
8177	return c
8178}
8179
8180// Fields allows partial responses to be retrieved. See
8181// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8182// for more information.
8183func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall {
8184	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8185	return c
8186}
8187
8188// Context sets the context to be used in this call's Do method. Any
8189// pending HTTP request will be aborted if the provided context is
8190// canceled.
8191func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall {
8192	c.ctx_ = ctx
8193	return c
8194}
8195
8196// Header returns an http.Header that can be modified by the caller to
8197// add HTTP headers to the request.
8198func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) Header() http.Header {
8199	if c.header_ == nil {
8200		c.header_ = make(http.Header)
8201	}
8202	return c.header_
8203}
8204
8205func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) doRequest(alt string) (*http.Response, error) {
8206	reqHeaders := make(http.Header)
8207	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8208	for k, v := range c.header_ {
8209		reqHeaders[k] = v
8210	}
8211	reqHeaders.Set("User-Agent", c.s.userAgent())
8212	var body io.Reader = nil
8213	body, err := googleapi.WithoutDataWrapper.JSONReader(c.perfmetricssummary)
8214	if err != nil {
8215		return nil, err
8216	}
8217	reqHeaders.Set("Content-Type", "application/json")
8218	c.urlParams_.Set("alt", alt)
8219	c.urlParams_.Set("prettyPrint", "false")
8220	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary")
8221	urls += "?" + c.urlParams_.Encode()
8222	req, err := http.NewRequest("POST", urls, body)
8223	if err != nil {
8224		return nil, err
8225	}
8226	req.Header = reqHeaders
8227	googleapi.Expand(req.URL, map[string]string{
8228		"projectId":   c.projectId,
8229		"historyId":   c.historyId,
8230		"executionId": c.executionId,
8231		"stepId":      c.stepId,
8232	})
8233	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8234}
8235
8236// Do executes the "toolresults.projects.histories.executions.steps.perfMetricsSummary.create" call.
8237// Exactly one of *PerfMetricsSummary or error will be non-nil. Any
8238// non-2xx status code is an error. Response headers are in either
8239// *PerfMetricsSummary.ServerResponse.Header or (if a response was
8240// returned at all) in error.(*googleapi.Error).Header. Use
8241// googleapi.IsNotModified to check whether the returned error was
8242// because http.StatusNotModified was returned.
8243func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) Do(opts ...googleapi.CallOption) (*PerfMetricsSummary, error) {
8244	gensupport.SetOptions(c.urlParams_, opts...)
8245	res, err := c.doRequest("json")
8246	if res != nil && res.StatusCode == http.StatusNotModified {
8247		if res.Body != nil {
8248			res.Body.Close()
8249		}
8250		return nil, &googleapi.Error{
8251			Code:   res.StatusCode,
8252			Header: res.Header,
8253		}
8254	}
8255	if err != nil {
8256		return nil, err
8257	}
8258	defer googleapi.CloseBody(res)
8259	if err := googleapi.CheckResponse(res); err != nil {
8260		return nil, err
8261	}
8262	ret := &PerfMetricsSummary{
8263		ServerResponse: googleapi.ServerResponse{
8264			Header:         res.Header,
8265			HTTPStatusCode: res.StatusCode,
8266		},
8267	}
8268	target := &ret
8269	if err := gensupport.DecodeResponse(target, res); err != nil {
8270		return nil, err
8271	}
8272	return ret, nil
8273	// {
8274	//   "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",
8275	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary",
8276	//   "httpMethod": "POST",
8277	//   "id": "toolresults.projects.histories.executions.steps.perfMetricsSummary.create",
8278	//   "parameterOrder": [
8279	//     "projectId",
8280	//     "historyId",
8281	//     "executionId",
8282	//     "stepId"
8283	//   ],
8284	//   "parameters": {
8285	//     "executionId": {
8286	//       "description": "A tool results execution ID.",
8287	//       "location": "path",
8288	//       "required": true,
8289	//       "type": "string"
8290	//     },
8291	//     "historyId": {
8292	//       "description": "A tool results history ID.",
8293	//       "location": "path",
8294	//       "required": true,
8295	//       "type": "string"
8296	//     },
8297	//     "projectId": {
8298	//       "description": "The cloud project",
8299	//       "location": "path",
8300	//       "required": true,
8301	//       "type": "string"
8302	//     },
8303	//     "stepId": {
8304	//       "description": "A tool results step ID.",
8305	//       "location": "path",
8306	//       "required": true,
8307	//       "type": "string"
8308	//     }
8309	//   },
8310	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary",
8311	//   "request": {
8312	//     "$ref": "PerfMetricsSummary"
8313	//   },
8314	//   "response": {
8315	//     "$ref": "PerfMetricsSummary"
8316	//   },
8317	//   "scopes": [
8318	//     "https://www.googleapis.com/auth/cloud-platform"
8319	//   ]
8320	// }
8321
8322}
8323
8324// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.create":
8325
8326type ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall struct {
8327	s                *Service
8328	projectId        string
8329	historyId        string
8330	executionId      string
8331	stepId           string
8332	perfsampleseries *PerfSampleSeries
8333	urlParams_       gensupport.URLParams
8334	ctx_             context.Context
8335	header_          http.Header
8336}
8337
8338// Create: Creates a PerfSampleSeries. May return any of the following
8339// error code(s): - ALREADY_EXISTS - PerfMetricSummary already exists
8340// for the given Step - NOT_FOUND - The containing Step does not exist
8341//
8342// - executionId: A tool results execution ID.
8343// - historyId: A tool results history ID.
8344// - projectId: The cloud project.
8345// - stepId: A tool results step ID.
8346func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService) Create(projectId string, historyId string, executionId string, stepId string, perfsampleseries *PerfSampleSeries) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall {
8347	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8348	c.projectId = projectId
8349	c.historyId = historyId
8350	c.executionId = executionId
8351	c.stepId = stepId
8352	c.perfsampleseries = perfsampleseries
8353	return c
8354}
8355
8356// Fields allows partial responses to be retrieved. See
8357// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8358// for more information.
8359func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall {
8360	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8361	return c
8362}
8363
8364// Context sets the context to be used in this call's Do method. Any
8365// pending HTTP request will be aborted if the provided context is
8366// canceled.
8367func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall {
8368	c.ctx_ = ctx
8369	return c
8370}
8371
8372// Header returns an http.Header that can be modified by the caller to
8373// add HTTP headers to the request.
8374func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) Header() http.Header {
8375	if c.header_ == nil {
8376		c.header_ = make(http.Header)
8377	}
8378	return c.header_
8379}
8380
8381func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) doRequest(alt string) (*http.Response, error) {
8382	reqHeaders := make(http.Header)
8383	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8384	for k, v := range c.header_ {
8385		reqHeaders[k] = v
8386	}
8387	reqHeaders.Set("User-Agent", c.s.userAgent())
8388	var body io.Reader = nil
8389	body, err := googleapi.WithoutDataWrapper.JSONReader(c.perfsampleseries)
8390	if err != nil {
8391		return nil, err
8392	}
8393	reqHeaders.Set("Content-Type", "application/json")
8394	c.urlParams_.Set("alt", alt)
8395	c.urlParams_.Set("prettyPrint", "false")
8396	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries")
8397	urls += "?" + c.urlParams_.Encode()
8398	req, err := http.NewRequest("POST", urls, body)
8399	if err != nil {
8400		return nil, err
8401	}
8402	req.Header = reqHeaders
8403	googleapi.Expand(req.URL, map[string]string{
8404		"projectId":   c.projectId,
8405		"historyId":   c.historyId,
8406		"executionId": c.executionId,
8407		"stepId":      c.stepId,
8408	})
8409	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8410}
8411
8412// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.create" call.
8413// Exactly one of *PerfSampleSeries or error will be non-nil. Any
8414// non-2xx status code is an error. Response headers are in either
8415// *PerfSampleSeries.ServerResponse.Header or (if a response was
8416// returned at all) in error.(*googleapi.Error).Header. Use
8417// googleapi.IsNotModified to check whether the returned error was
8418// because http.StatusNotModified was returned.
8419func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) Do(opts ...googleapi.CallOption) (*PerfSampleSeries, error) {
8420	gensupport.SetOptions(c.urlParams_, opts...)
8421	res, err := c.doRequest("json")
8422	if res != nil && res.StatusCode == http.StatusNotModified {
8423		if res.Body != nil {
8424			res.Body.Close()
8425		}
8426		return nil, &googleapi.Error{
8427			Code:   res.StatusCode,
8428			Header: res.Header,
8429		}
8430	}
8431	if err != nil {
8432		return nil, err
8433	}
8434	defer googleapi.CloseBody(res)
8435	if err := googleapi.CheckResponse(res); err != nil {
8436		return nil, err
8437	}
8438	ret := &PerfSampleSeries{
8439		ServerResponse: googleapi.ServerResponse{
8440			Header:         res.Header,
8441			HTTPStatusCode: res.StatusCode,
8442		},
8443	}
8444	target := &ret
8445	if err := gensupport.DecodeResponse(target, res); err != nil {
8446		return nil, err
8447	}
8448	return ret, nil
8449	// {
8450	//   "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",
8451	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries",
8452	//   "httpMethod": "POST",
8453	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.create",
8454	//   "parameterOrder": [
8455	//     "projectId",
8456	//     "historyId",
8457	//     "executionId",
8458	//     "stepId"
8459	//   ],
8460	//   "parameters": {
8461	//     "executionId": {
8462	//       "description": "A tool results execution ID.",
8463	//       "location": "path",
8464	//       "required": true,
8465	//       "type": "string"
8466	//     },
8467	//     "historyId": {
8468	//       "description": "A tool results history ID.",
8469	//       "location": "path",
8470	//       "required": true,
8471	//       "type": "string"
8472	//     },
8473	//     "projectId": {
8474	//       "description": "The cloud project",
8475	//       "location": "path",
8476	//       "required": true,
8477	//       "type": "string"
8478	//     },
8479	//     "stepId": {
8480	//       "description": "A tool results step ID.",
8481	//       "location": "path",
8482	//       "required": true,
8483	//       "type": "string"
8484	//     }
8485	//   },
8486	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries",
8487	//   "request": {
8488	//     "$ref": "PerfSampleSeries"
8489	//   },
8490	//   "response": {
8491	//     "$ref": "PerfSampleSeries"
8492	//   },
8493	//   "scopes": [
8494	//     "https://www.googleapis.com/auth/cloud-platform"
8495	//   ]
8496	// }
8497
8498}
8499
8500// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.get":
8501
8502type ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall struct {
8503	s              *Service
8504	projectId      string
8505	historyId      string
8506	executionId    string
8507	stepId         string
8508	sampleSeriesId string
8509	urlParams_     gensupport.URLParams
8510	ifNoneMatch_   string
8511	ctx_           context.Context
8512	header_        http.Header
8513}
8514
8515// Get: Gets a PerfSampleSeries. May return any of the following error
8516// code(s): - NOT_FOUND - The specified PerfSampleSeries does not exist
8517//
8518// - executionId: A tool results execution ID.
8519// - historyId: A tool results history ID.
8520// - projectId: The cloud project.
8521// - sampleSeriesId: A sample series id.
8522// - stepId: A tool results step ID.
8523func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService) Get(projectId string, historyId string, executionId string, stepId string, sampleSeriesId string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall {
8524	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8525	c.projectId = projectId
8526	c.historyId = historyId
8527	c.executionId = executionId
8528	c.stepId = stepId
8529	c.sampleSeriesId = sampleSeriesId
8530	return c
8531}
8532
8533// Fields allows partial responses to be retrieved. See
8534// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8535// for more information.
8536func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall {
8537	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8538	return c
8539}
8540
8541// IfNoneMatch sets the optional parameter which makes the operation
8542// fail if the object's ETag matches the given value. This is useful for
8543// getting updates only after the object has changed since the last
8544// request. Use googleapi.IsNotModified to check whether the response
8545// error from Do is the result of In-None-Match.
8546func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall {
8547	c.ifNoneMatch_ = entityTag
8548	return c
8549}
8550
8551// Context sets the context to be used in this call's Do method. Any
8552// pending HTTP request will be aborted if the provided context is
8553// canceled.
8554func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall {
8555	c.ctx_ = ctx
8556	return c
8557}
8558
8559// Header returns an http.Header that can be modified by the caller to
8560// add HTTP headers to the request.
8561func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) Header() http.Header {
8562	if c.header_ == nil {
8563		c.header_ = make(http.Header)
8564	}
8565	return c.header_
8566}
8567
8568func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) doRequest(alt string) (*http.Response, error) {
8569	reqHeaders := make(http.Header)
8570	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8571	for k, v := range c.header_ {
8572		reqHeaders[k] = v
8573	}
8574	reqHeaders.Set("User-Agent", c.s.userAgent())
8575	if c.ifNoneMatch_ != "" {
8576		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8577	}
8578	var body io.Reader = nil
8579	c.urlParams_.Set("alt", alt)
8580	c.urlParams_.Set("prettyPrint", "false")
8581	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}")
8582	urls += "?" + c.urlParams_.Encode()
8583	req, err := http.NewRequest("GET", urls, body)
8584	if err != nil {
8585		return nil, err
8586	}
8587	req.Header = reqHeaders
8588	googleapi.Expand(req.URL, map[string]string{
8589		"projectId":      c.projectId,
8590		"historyId":      c.historyId,
8591		"executionId":    c.executionId,
8592		"stepId":         c.stepId,
8593		"sampleSeriesId": c.sampleSeriesId,
8594	})
8595	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8596}
8597
8598// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.get" call.
8599// Exactly one of *PerfSampleSeries or error will be non-nil. Any
8600// non-2xx status code is an error. Response headers are in either
8601// *PerfSampleSeries.ServerResponse.Header or (if a response was
8602// returned at all) in error.(*googleapi.Error).Header. Use
8603// googleapi.IsNotModified to check whether the returned error was
8604// because http.StatusNotModified was returned.
8605func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) Do(opts ...googleapi.CallOption) (*PerfSampleSeries, error) {
8606	gensupport.SetOptions(c.urlParams_, opts...)
8607	res, err := c.doRequest("json")
8608	if res != nil && res.StatusCode == http.StatusNotModified {
8609		if res.Body != nil {
8610			res.Body.Close()
8611		}
8612		return nil, &googleapi.Error{
8613			Code:   res.StatusCode,
8614			Header: res.Header,
8615		}
8616	}
8617	if err != nil {
8618		return nil, err
8619	}
8620	defer googleapi.CloseBody(res)
8621	if err := googleapi.CheckResponse(res); err != nil {
8622		return nil, err
8623	}
8624	ret := &PerfSampleSeries{
8625		ServerResponse: googleapi.ServerResponse{
8626			Header:         res.Header,
8627			HTTPStatusCode: res.StatusCode,
8628		},
8629	}
8630	target := &ret
8631	if err := gensupport.DecodeResponse(target, res); err != nil {
8632		return nil, err
8633	}
8634	return ret, nil
8635	// {
8636	//   "description": "Gets a PerfSampleSeries. May return any of the following error code(s): - NOT_FOUND - The specified PerfSampleSeries does not exist",
8637	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}",
8638	//   "httpMethod": "GET",
8639	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.get",
8640	//   "parameterOrder": [
8641	//     "projectId",
8642	//     "historyId",
8643	//     "executionId",
8644	//     "stepId",
8645	//     "sampleSeriesId"
8646	//   ],
8647	//   "parameters": {
8648	//     "executionId": {
8649	//       "description": "A tool results execution ID.",
8650	//       "location": "path",
8651	//       "required": true,
8652	//       "type": "string"
8653	//     },
8654	//     "historyId": {
8655	//       "description": "A tool results history ID.",
8656	//       "location": "path",
8657	//       "required": true,
8658	//       "type": "string"
8659	//     },
8660	//     "projectId": {
8661	//       "description": "The cloud project",
8662	//       "location": "path",
8663	//       "required": true,
8664	//       "type": "string"
8665	//     },
8666	//     "sampleSeriesId": {
8667	//       "description": "A sample series id",
8668	//       "location": "path",
8669	//       "required": true,
8670	//       "type": "string"
8671	//     },
8672	//     "stepId": {
8673	//       "description": "A tool results step ID.",
8674	//       "location": "path",
8675	//       "required": true,
8676	//       "type": "string"
8677	//     }
8678	//   },
8679	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}",
8680	//   "response": {
8681	//     "$ref": "PerfSampleSeries"
8682	//   },
8683	//   "scopes": [
8684	//     "https://www.googleapis.com/auth/cloud-platform"
8685	//   ]
8686	// }
8687
8688}
8689
8690// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.list":
8691
8692type ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall struct {
8693	s            *Service
8694	projectId    string
8695	historyId    string
8696	executionId  string
8697	stepId       string
8698	urlParams_   gensupport.URLParams
8699	ifNoneMatch_ string
8700	ctx_         context.Context
8701	header_      http.Header
8702}
8703
8704// List: Lists PerfSampleSeries for a given Step. The request provides
8705// an optional filter which specifies one or more PerfMetricsType to
8706// include in the result; if none returns all. The resulting
8707// PerfSampleSeries are sorted by ids. May return any of the following
8708// canonical error codes: - NOT_FOUND - The containing Step does not
8709// exist
8710//
8711// - executionId: A tool results execution ID.
8712// - historyId: A tool results history ID.
8713// - projectId: The cloud project.
8714// - stepId: A tool results step ID.
8715func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService) List(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
8716	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8717	c.projectId = projectId
8718	c.historyId = historyId
8719	c.executionId = executionId
8720	c.stepId = stepId
8721	return c
8722}
8723
8724// Filter sets the optional parameter "filter": Specify one or more
8725// PerfMetricType values such as CPU to filter the result
8726//
8727// Possible values:
8728//   "perfMetricTypeUnspecified"
8729//   "memory"
8730//   "cpu"
8731//   "network"
8732//   "graphics"
8733func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Filter(filter ...string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
8734	c.urlParams_.SetMulti("filter", append([]string{}, filter...))
8735	return c
8736}
8737
8738// Fields allows partial responses to be retrieved. See
8739// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8740// for more information.
8741func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
8742	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8743	return c
8744}
8745
8746// IfNoneMatch sets the optional parameter which makes the operation
8747// fail if the object's ETag matches the given value. This is useful for
8748// getting updates only after the object has changed since the last
8749// request. Use googleapi.IsNotModified to check whether the response
8750// error from Do is the result of In-None-Match.
8751func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
8752	c.ifNoneMatch_ = entityTag
8753	return c
8754}
8755
8756// Context sets the context to be used in this call's Do method. Any
8757// pending HTTP request will be aborted if the provided context is
8758// canceled.
8759func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
8760	c.ctx_ = ctx
8761	return c
8762}
8763
8764// Header returns an http.Header that can be modified by the caller to
8765// add HTTP headers to the request.
8766func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Header() http.Header {
8767	if c.header_ == nil {
8768		c.header_ = make(http.Header)
8769	}
8770	return c.header_
8771}
8772
8773func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) doRequest(alt string) (*http.Response, error) {
8774	reqHeaders := make(http.Header)
8775	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8776	for k, v := range c.header_ {
8777		reqHeaders[k] = v
8778	}
8779	reqHeaders.Set("User-Agent", c.s.userAgent())
8780	if c.ifNoneMatch_ != "" {
8781		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8782	}
8783	var body io.Reader = nil
8784	c.urlParams_.Set("alt", alt)
8785	c.urlParams_.Set("prettyPrint", "false")
8786	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries")
8787	urls += "?" + c.urlParams_.Encode()
8788	req, err := http.NewRequest("GET", urls, body)
8789	if err != nil {
8790		return nil, err
8791	}
8792	req.Header = reqHeaders
8793	googleapi.Expand(req.URL, map[string]string{
8794		"projectId":   c.projectId,
8795		"historyId":   c.historyId,
8796		"executionId": c.executionId,
8797		"stepId":      c.stepId,
8798	})
8799	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8800}
8801
8802// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.list" call.
8803// Exactly one of *ListPerfSampleSeriesResponse or error will be
8804// non-nil. Any non-2xx status code is an error. Response headers are in
8805// either *ListPerfSampleSeriesResponse.ServerResponse.Header or (if a
8806// response was returned at all) in error.(*googleapi.Error).Header. Use
8807// googleapi.IsNotModified to check whether the returned error was
8808// because http.StatusNotModified was returned.
8809func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Do(opts ...googleapi.CallOption) (*ListPerfSampleSeriesResponse, error) {
8810	gensupport.SetOptions(c.urlParams_, opts...)
8811	res, err := c.doRequest("json")
8812	if res != nil && res.StatusCode == http.StatusNotModified {
8813		if res.Body != nil {
8814			res.Body.Close()
8815		}
8816		return nil, &googleapi.Error{
8817			Code:   res.StatusCode,
8818			Header: res.Header,
8819		}
8820	}
8821	if err != nil {
8822		return nil, err
8823	}
8824	defer googleapi.CloseBody(res)
8825	if err := googleapi.CheckResponse(res); err != nil {
8826		return nil, err
8827	}
8828	ret := &ListPerfSampleSeriesResponse{
8829		ServerResponse: googleapi.ServerResponse{
8830			Header:         res.Header,
8831			HTTPStatusCode: res.StatusCode,
8832		},
8833	}
8834	target := &ret
8835	if err := gensupport.DecodeResponse(target, res); err != nil {
8836		return nil, err
8837	}
8838	return ret, nil
8839	// {
8840	//   "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",
8841	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries",
8842	//   "httpMethod": "GET",
8843	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.list",
8844	//   "parameterOrder": [
8845	//     "projectId",
8846	//     "historyId",
8847	//     "executionId",
8848	//     "stepId"
8849	//   ],
8850	//   "parameters": {
8851	//     "executionId": {
8852	//       "description": "A tool results execution ID.",
8853	//       "location": "path",
8854	//       "required": true,
8855	//       "type": "string"
8856	//     },
8857	//     "filter": {
8858	//       "description": "Specify one or more PerfMetricType values such as CPU to filter the result",
8859	//       "enum": [
8860	//         "perfMetricTypeUnspecified",
8861	//         "memory",
8862	//         "cpu",
8863	//         "network",
8864	//         "graphics"
8865	//       ],
8866	//       "enumDescriptions": [
8867	//         "",
8868	//         "",
8869	//         "",
8870	//         "",
8871	//         ""
8872	//       ],
8873	//       "location": "query",
8874	//       "repeated": true,
8875	//       "type": "string"
8876	//     },
8877	//     "historyId": {
8878	//       "description": "A tool results history ID.",
8879	//       "location": "path",
8880	//       "required": true,
8881	//       "type": "string"
8882	//     },
8883	//     "projectId": {
8884	//       "description": "The cloud project",
8885	//       "location": "path",
8886	//       "required": true,
8887	//       "type": "string"
8888	//     },
8889	//     "stepId": {
8890	//       "description": "A tool results step ID.",
8891	//       "location": "path",
8892	//       "required": true,
8893	//       "type": "string"
8894	//     }
8895	//   },
8896	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries",
8897	//   "response": {
8898	//     "$ref": "ListPerfSampleSeriesResponse"
8899	//   },
8900	//   "scopes": [
8901	//     "https://www.googleapis.com/auth/cloud-platform"
8902	//   ]
8903	// }
8904
8905}
8906
8907// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate":
8908
8909type ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall struct {
8910	s                             *Service
8911	projectId                     string
8912	historyId                     string
8913	executionId                   string
8914	stepId                        string
8915	sampleSeriesId                string
8916	batchcreateperfsamplesrequest *BatchCreatePerfSamplesRequest
8917	urlParams_                    gensupport.URLParams
8918	ctx_                          context.Context
8919	header_                       http.Header
8920}
8921
8922// BatchCreate: Creates a batch of PerfSamples - a client can submit
8923// multiple batches of Perf Samples through repeated calls to this
8924// method in order to split up a large request payload - duplicates and
8925// existing timestamp entries will be ignored. - the batch operation may
8926// partially succeed - the set of elements successfully inserted is
8927// returned in the response (omits items which already existed in the
8928// database). May return any of the following canonical error codes: -
8929// NOT_FOUND - The containing PerfSampleSeries does not exist
8930//
8931// - executionId: A tool results execution ID.
8932// - historyId: A tool results history ID.
8933// - projectId: The cloud project.
8934// - sampleSeriesId: A sample series id.
8935// - stepId: A tool results step ID.
8936func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService) BatchCreate(projectId string, historyId string, executionId string, stepId string, sampleSeriesId string, batchcreateperfsamplesrequest *BatchCreatePerfSamplesRequest) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall {
8937	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8938	c.projectId = projectId
8939	c.historyId = historyId
8940	c.executionId = executionId
8941	c.stepId = stepId
8942	c.sampleSeriesId = sampleSeriesId
8943	c.batchcreateperfsamplesrequest = batchcreateperfsamplesrequest
8944	return c
8945}
8946
8947// Fields allows partial responses to be retrieved. See
8948// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8949// for more information.
8950func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall {
8951	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8952	return c
8953}
8954
8955// Context sets the context to be used in this call's Do method. Any
8956// pending HTTP request will be aborted if the provided context is
8957// canceled.
8958func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall {
8959	c.ctx_ = ctx
8960	return c
8961}
8962
8963// Header returns an http.Header that can be modified by the caller to
8964// add HTTP headers to the request.
8965func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) Header() http.Header {
8966	if c.header_ == nil {
8967		c.header_ = make(http.Header)
8968	}
8969	return c.header_
8970}
8971
8972func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) doRequest(alt string) (*http.Response, error) {
8973	reqHeaders := make(http.Header)
8974	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8975	for k, v := range c.header_ {
8976		reqHeaders[k] = v
8977	}
8978	reqHeaders.Set("User-Agent", c.s.userAgent())
8979	var body io.Reader = nil
8980	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchcreateperfsamplesrequest)
8981	if err != nil {
8982		return nil, err
8983	}
8984	reqHeaders.Set("Content-Type", "application/json")
8985	c.urlParams_.Set("alt", alt)
8986	c.urlParams_.Set("prettyPrint", "false")
8987	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples:batchCreate")
8988	urls += "?" + c.urlParams_.Encode()
8989	req, err := http.NewRequest("POST", urls, body)
8990	if err != nil {
8991		return nil, err
8992	}
8993	req.Header = reqHeaders
8994	googleapi.Expand(req.URL, map[string]string{
8995		"projectId":      c.projectId,
8996		"historyId":      c.historyId,
8997		"executionId":    c.executionId,
8998		"stepId":         c.stepId,
8999		"sampleSeriesId": c.sampleSeriesId,
9000	})
9001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9002}
9003
9004// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate" call.
9005// Exactly one of *BatchCreatePerfSamplesResponse or error will be
9006// non-nil. Any non-2xx status code is an error. Response headers are in
9007// either *BatchCreatePerfSamplesResponse.ServerResponse.Header or (if a
9008// response was returned at all) in error.(*googleapi.Error).Header. Use
9009// googleapi.IsNotModified to check whether the returned error was
9010// because http.StatusNotModified was returned.
9011func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) Do(opts ...googleapi.CallOption) (*BatchCreatePerfSamplesResponse, error) {
9012	gensupport.SetOptions(c.urlParams_, opts...)
9013	res, err := c.doRequest("json")
9014	if res != nil && res.StatusCode == http.StatusNotModified {
9015		if res.Body != nil {
9016			res.Body.Close()
9017		}
9018		return nil, &googleapi.Error{
9019			Code:   res.StatusCode,
9020			Header: res.Header,
9021		}
9022	}
9023	if err != nil {
9024		return nil, err
9025	}
9026	defer googleapi.CloseBody(res)
9027	if err := googleapi.CheckResponse(res); err != nil {
9028		return nil, err
9029	}
9030	ret := &BatchCreatePerfSamplesResponse{
9031		ServerResponse: googleapi.ServerResponse{
9032			Header:         res.Header,
9033			HTTPStatusCode: res.StatusCode,
9034		},
9035	}
9036	target := &ret
9037	if err := gensupport.DecodeResponse(target, res); err != nil {
9038		return nil, err
9039	}
9040	return ret, nil
9041	// {
9042	//   "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",
9043	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples:batchCreate",
9044	//   "httpMethod": "POST",
9045	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate",
9046	//   "parameterOrder": [
9047	//     "projectId",
9048	//     "historyId",
9049	//     "executionId",
9050	//     "stepId",
9051	//     "sampleSeriesId"
9052	//   ],
9053	//   "parameters": {
9054	//     "executionId": {
9055	//       "description": "A tool results execution ID.",
9056	//       "location": "path",
9057	//       "required": true,
9058	//       "type": "string"
9059	//     },
9060	//     "historyId": {
9061	//       "description": "A tool results history ID.",
9062	//       "location": "path",
9063	//       "required": true,
9064	//       "type": "string"
9065	//     },
9066	//     "projectId": {
9067	//       "description": "The cloud project",
9068	//       "location": "path",
9069	//       "required": true,
9070	//       "type": "string"
9071	//     },
9072	//     "sampleSeriesId": {
9073	//       "description": "A sample series id",
9074	//       "location": "path",
9075	//       "required": true,
9076	//       "type": "string"
9077	//     },
9078	//     "stepId": {
9079	//       "description": "A tool results step ID.",
9080	//       "location": "path",
9081	//       "required": true,
9082	//       "type": "string"
9083	//     }
9084	//   },
9085	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples:batchCreate",
9086	//   "request": {
9087	//     "$ref": "BatchCreatePerfSamplesRequest"
9088	//   },
9089	//   "response": {
9090	//     "$ref": "BatchCreatePerfSamplesResponse"
9091	//   },
9092	//   "scopes": [
9093	//     "https://www.googleapis.com/auth/cloud-platform"
9094	//   ]
9095	// }
9096
9097}
9098
9099// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list":
9100
9101type ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall struct {
9102	s              *Service
9103	projectId      string
9104	historyId      string
9105	executionId    string
9106	stepId         string
9107	sampleSeriesId string
9108	urlParams_     gensupport.URLParams
9109	ifNoneMatch_   string
9110	ctx_           context.Context
9111	header_        http.Header
9112}
9113
9114// List: Lists the Performance Samples of a given Sample Series - The
9115// list results are sorted by timestamps ascending - The default page
9116// size is 500 samples; and maximum size allowed 5000 - The response
9117// token indicates the last returned PerfSample timestamp - When the
9118// results size exceeds the page size, submit a subsequent request
9119// including the page token to return the rest of the samples up to the
9120// page limit May return any of the following canonical error codes: -
9121// OUT_OF_RANGE - The specified request page_token is out of valid range
9122// - NOT_FOUND - The containing PerfSampleSeries does not exist
9123//
9124// - executionId: A tool results execution ID.
9125// - historyId: A tool results history ID.
9126// - projectId: The cloud project.
9127// - sampleSeriesId: A sample series id.
9128// - stepId: A tool results step ID.
9129func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService) List(projectId string, historyId string, executionId string, stepId string, sampleSeriesId string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
9130	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9131	c.projectId = projectId
9132	c.historyId = historyId
9133	c.executionId = executionId
9134	c.stepId = stepId
9135	c.sampleSeriesId = sampleSeriesId
9136	return c
9137}
9138
9139// PageSize sets the optional parameter "pageSize": The default page
9140// size is 500 samples, and the maximum size is 5000. If the page_size
9141// is greater than 5000, the effective page size will be 5000
9142func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
9143	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
9144	return c
9145}
9146
9147// PageToken sets the optional parameter "pageToken": Optional, the
9148// next_page_token returned in the previous response
9149func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
9150	c.urlParams_.Set("pageToken", pageToken)
9151	return c
9152}
9153
9154// Fields allows partial responses to be retrieved. See
9155// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9156// for more information.
9157func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
9158	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9159	return c
9160}
9161
9162// IfNoneMatch sets the optional parameter which makes the operation
9163// fail if the object's ETag matches the given value. This is useful for
9164// getting updates only after the object has changed since the last
9165// request. Use googleapi.IsNotModified to check whether the response
9166// error from Do is the result of In-None-Match.
9167func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
9168	c.ifNoneMatch_ = entityTag
9169	return c
9170}
9171
9172// Context sets the context to be used in this call's Do method. Any
9173// pending HTTP request will be aborted if the provided context is
9174// canceled.
9175func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
9176	c.ctx_ = ctx
9177	return c
9178}
9179
9180// Header returns an http.Header that can be modified by the caller to
9181// add HTTP headers to the request.
9182func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Header() http.Header {
9183	if c.header_ == nil {
9184		c.header_ = make(http.Header)
9185	}
9186	return c.header_
9187}
9188
9189func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) doRequest(alt string) (*http.Response, error) {
9190	reqHeaders := make(http.Header)
9191	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9192	for k, v := range c.header_ {
9193		reqHeaders[k] = v
9194	}
9195	reqHeaders.Set("User-Agent", c.s.userAgent())
9196	if c.ifNoneMatch_ != "" {
9197		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9198	}
9199	var body io.Reader = nil
9200	c.urlParams_.Set("alt", alt)
9201	c.urlParams_.Set("prettyPrint", "false")
9202	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples")
9203	urls += "?" + c.urlParams_.Encode()
9204	req, err := http.NewRequest("GET", urls, body)
9205	if err != nil {
9206		return nil, err
9207	}
9208	req.Header = reqHeaders
9209	googleapi.Expand(req.URL, map[string]string{
9210		"projectId":      c.projectId,
9211		"historyId":      c.historyId,
9212		"executionId":    c.executionId,
9213		"stepId":         c.stepId,
9214		"sampleSeriesId": c.sampleSeriesId,
9215	})
9216	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9217}
9218
9219// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list" call.
9220// Exactly one of *ListPerfSamplesResponse or error will be non-nil. Any
9221// non-2xx status code is an error. Response headers are in either
9222// *ListPerfSamplesResponse.ServerResponse.Header or (if a response was
9223// returned at all) in error.(*googleapi.Error).Header. Use
9224// googleapi.IsNotModified to check whether the returned error was
9225// because http.StatusNotModified was returned.
9226func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Do(opts ...googleapi.CallOption) (*ListPerfSamplesResponse, error) {
9227	gensupport.SetOptions(c.urlParams_, opts...)
9228	res, err := c.doRequest("json")
9229	if res != nil && res.StatusCode == http.StatusNotModified {
9230		if res.Body != nil {
9231			res.Body.Close()
9232		}
9233		return nil, &googleapi.Error{
9234			Code:   res.StatusCode,
9235			Header: res.Header,
9236		}
9237	}
9238	if err != nil {
9239		return nil, err
9240	}
9241	defer googleapi.CloseBody(res)
9242	if err := googleapi.CheckResponse(res); err != nil {
9243		return nil, err
9244	}
9245	ret := &ListPerfSamplesResponse{
9246		ServerResponse: googleapi.ServerResponse{
9247			Header:         res.Header,
9248			HTTPStatusCode: res.StatusCode,
9249		},
9250	}
9251	target := &ret
9252	if err := gensupport.DecodeResponse(target, res); err != nil {
9253		return nil, err
9254	}
9255	return ret, nil
9256	// {
9257	//   "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",
9258	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples",
9259	//   "httpMethod": "GET",
9260	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list",
9261	//   "parameterOrder": [
9262	//     "projectId",
9263	//     "historyId",
9264	//     "executionId",
9265	//     "stepId",
9266	//     "sampleSeriesId"
9267	//   ],
9268	//   "parameters": {
9269	//     "executionId": {
9270	//       "description": "A tool results execution ID.",
9271	//       "location": "path",
9272	//       "required": true,
9273	//       "type": "string"
9274	//     },
9275	//     "historyId": {
9276	//       "description": "A tool results history ID.",
9277	//       "location": "path",
9278	//       "required": true,
9279	//       "type": "string"
9280	//     },
9281	//     "pageSize": {
9282	//       "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",
9283	//       "format": "int32",
9284	//       "location": "query",
9285	//       "type": "integer"
9286	//     },
9287	//     "pageToken": {
9288	//       "description": "Optional, the next_page_token returned in the previous response",
9289	//       "location": "query",
9290	//       "type": "string"
9291	//     },
9292	//     "projectId": {
9293	//       "description": "The cloud project",
9294	//       "location": "path",
9295	//       "required": true,
9296	//       "type": "string"
9297	//     },
9298	//     "sampleSeriesId": {
9299	//       "description": "A sample series id",
9300	//       "location": "path",
9301	//       "required": true,
9302	//       "type": "string"
9303	//     },
9304	//     "stepId": {
9305	//       "description": "A tool results step ID.",
9306	//       "location": "path",
9307	//       "required": true,
9308	//       "type": "string"
9309	//     }
9310	//   },
9311	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples",
9312	//   "response": {
9313	//     "$ref": "ListPerfSamplesResponse"
9314	//   },
9315	//   "scopes": [
9316	//     "https://www.googleapis.com/auth/cloud-platform"
9317	//   ]
9318	// }
9319
9320}
9321
9322// Pages invokes f for each page of results.
9323// A non-nil error returned from f will halt the iteration.
9324// The provided context supersedes any context provided to the Context method.
9325func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Pages(ctx context.Context, f func(*ListPerfSamplesResponse) error) error {
9326	c.ctx_ = ctx
9327	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9328	for {
9329		x, err := c.Do()
9330		if err != nil {
9331			return err
9332		}
9333		if err := f(x); err != nil {
9334			return err
9335		}
9336		if x.NextPageToken == "" {
9337			return nil
9338		}
9339		c.PageToken(x.NextPageToken)
9340	}
9341}
9342
9343// method id "toolresults.projects.histories.executions.steps.testCases.get":
9344
9345type ProjectsHistoriesExecutionsStepsTestCasesGetCall struct {
9346	s            *Service
9347	projectId    string
9348	historyId    string
9349	executionId  string
9350	stepId       string
9351	testCaseId   string
9352	urlParams_   gensupport.URLParams
9353	ifNoneMatch_ string
9354	ctx_         context.Context
9355	header_      http.Header
9356}
9357
9358// Get: Gets details of a Test Case for a Step. Experimental test cases
9359// API. Still in active development. May return any of the following
9360// canonical error codes: - PERMISSION_DENIED - if the user is not
9361// authorized to write to project - INVALID_ARGUMENT - if the request is
9362// malformed - NOT_FOUND - if the containing Test Case does not exist
9363//
9364// - executionId: A Execution id.
9365// - historyId: A History id.
9366// - projectId: A Project id.
9367// - stepId: A Step id. Note: This step must include a
9368//   TestExecutionStep.
9369// - testCaseId: A Test Case id.
9370func (r *ProjectsHistoriesExecutionsStepsTestCasesService) Get(projectId string, historyId string, executionId string, stepId string, testCaseId string) *ProjectsHistoriesExecutionsStepsTestCasesGetCall {
9371	c := &ProjectsHistoriesExecutionsStepsTestCasesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9372	c.projectId = projectId
9373	c.historyId = historyId
9374	c.executionId = executionId
9375	c.stepId = stepId
9376	c.testCaseId = testCaseId
9377	return c
9378}
9379
9380// Fields allows partial responses to be retrieved. See
9381// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9382// for more information.
9383func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsTestCasesGetCall {
9384	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9385	return c
9386}
9387
9388// IfNoneMatch sets the optional parameter which makes the operation
9389// fail if the object's ETag matches the given value. This is useful for
9390// getting updates only after the object has changed since the last
9391// request. Use googleapi.IsNotModified to check whether the response
9392// error from Do is the result of In-None-Match.
9393func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsTestCasesGetCall {
9394	c.ifNoneMatch_ = entityTag
9395	return c
9396}
9397
9398// Context sets the context to be used in this call's Do method. Any
9399// pending HTTP request will be aborted if the provided context is
9400// canceled.
9401func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsTestCasesGetCall {
9402	c.ctx_ = ctx
9403	return c
9404}
9405
9406// Header returns an http.Header that can be modified by the caller to
9407// add HTTP headers to the request.
9408func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) Header() http.Header {
9409	if c.header_ == nil {
9410		c.header_ = make(http.Header)
9411	}
9412	return c.header_
9413}
9414
9415func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) doRequest(alt string) (*http.Response, error) {
9416	reqHeaders := make(http.Header)
9417	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9418	for k, v := range c.header_ {
9419		reqHeaders[k] = v
9420	}
9421	reqHeaders.Set("User-Agent", c.s.userAgent())
9422	if c.ifNoneMatch_ != "" {
9423		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9424	}
9425	var body io.Reader = nil
9426	c.urlParams_.Set("alt", alt)
9427	c.urlParams_.Set("prettyPrint", "false")
9428	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases/{testCaseId}")
9429	urls += "?" + c.urlParams_.Encode()
9430	req, err := http.NewRequest("GET", urls, body)
9431	if err != nil {
9432		return nil, err
9433	}
9434	req.Header = reqHeaders
9435	googleapi.Expand(req.URL, map[string]string{
9436		"projectId":   c.projectId,
9437		"historyId":   c.historyId,
9438		"executionId": c.executionId,
9439		"stepId":      c.stepId,
9440		"testCaseId":  c.testCaseId,
9441	})
9442	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9443}
9444
9445// Do executes the "toolresults.projects.histories.executions.steps.testCases.get" call.
9446// Exactly one of *TestCase or error will be non-nil. Any non-2xx status
9447// code is an error. Response headers are in either
9448// *TestCase.ServerResponse.Header or (if a response was returned at
9449// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9450// to check whether the returned error was because
9451// http.StatusNotModified was returned.
9452func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) Do(opts ...googleapi.CallOption) (*TestCase, error) {
9453	gensupport.SetOptions(c.urlParams_, opts...)
9454	res, err := c.doRequest("json")
9455	if res != nil && res.StatusCode == http.StatusNotModified {
9456		if res.Body != nil {
9457			res.Body.Close()
9458		}
9459		return nil, &googleapi.Error{
9460			Code:   res.StatusCode,
9461			Header: res.Header,
9462		}
9463	}
9464	if err != nil {
9465		return nil, err
9466	}
9467	defer googleapi.CloseBody(res)
9468	if err := googleapi.CheckResponse(res); err != nil {
9469		return nil, err
9470	}
9471	ret := &TestCase{
9472		ServerResponse: googleapi.ServerResponse{
9473			Header:         res.Header,
9474			HTTPStatusCode: res.StatusCode,
9475		},
9476	}
9477	target := &ret
9478	if err := gensupport.DecodeResponse(target, res); err != nil {
9479		return nil, err
9480	}
9481	return ret, nil
9482	// {
9483	//   "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",
9484	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases/{testCaseId}",
9485	//   "httpMethod": "GET",
9486	//   "id": "toolresults.projects.histories.executions.steps.testCases.get",
9487	//   "parameterOrder": [
9488	//     "projectId",
9489	//     "historyId",
9490	//     "executionId",
9491	//     "stepId",
9492	//     "testCaseId"
9493	//   ],
9494	//   "parameters": {
9495	//     "executionId": {
9496	//       "description": "A Execution id Required.",
9497	//       "location": "path",
9498	//       "required": true,
9499	//       "type": "string"
9500	//     },
9501	//     "historyId": {
9502	//       "description": "A History id. Required.",
9503	//       "location": "path",
9504	//       "required": true,
9505	//       "type": "string"
9506	//     },
9507	//     "projectId": {
9508	//       "description": "A Project id. Required.",
9509	//       "location": "path",
9510	//       "required": true,
9511	//       "type": "string"
9512	//     },
9513	//     "stepId": {
9514	//       "description": "A Step id. Note: This step must include a TestExecutionStep. Required.",
9515	//       "location": "path",
9516	//       "required": true,
9517	//       "type": "string"
9518	//     },
9519	//     "testCaseId": {
9520	//       "description": "A Test Case id. Required.",
9521	//       "location": "path",
9522	//       "required": true,
9523	//       "type": "string"
9524	//     }
9525	//   },
9526	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases/{testCaseId}",
9527	//   "response": {
9528	//     "$ref": "TestCase"
9529	//   },
9530	//   "scopes": [
9531	//     "https://www.googleapis.com/auth/cloud-platform"
9532	//   ]
9533	// }
9534
9535}
9536
9537// method id "toolresults.projects.histories.executions.steps.testCases.list":
9538
9539type ProjectsHistoriesExecutionsStepsTestCasesListCall struct {
9540	s            *Service
9541	projectId    string
9542	historyId    string
9543	executionId  string
9544	stepId       string
9545	urlParams_   gensupport.URLParams
9546	ifNoneMatch_ string
9547	ctx_         context.Context
9548	header_      http.Header
9549}
9550
9551// List: Lists Test Cases attached to a Step. Experimental test cases
9552// API. Still in active development. May return any of the following
9553// canonical error codes: - PERMISSION_DENIED - if the user is not
9554// authorized to write to project - INVALID_ARGUMENT - if the request is
9555// malformed - NOT_FOUND - if the containing Step does not exist
9556//
9557// - executionId: A Execution id.
9558// - historyId: A History id.
9559// - projectId: A Project id.
9560// - stepId: A Step id. Note: This step must include a
9561//   TestExecutionStep.
9562func (r *ProjectsHistoriesExecutionsStepsTestCasesService) List(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
9563	c := &ProjectsHistoriesExecutionsStepsTestCasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9564	c.projectId = projectId
9565	c.historyId = historyId
9566	c.executionId = executionId
9567	c.stepId = stepId
9568	return c
9569}
9570
9571// PageSize sets the optional parameter "pageSize": The maximum number
9572// of TestCases to fetch. Default value: 100. The server will use this
9573// default if the field is not set or has a value of 0.
9574func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
9575	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
9576	return c
9577}
9578
9579// PageToken sets the optional parameter "pageToken": A continuation
9580// token to resume the query at the next item.
9581func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
9582	c.urlParams_.Set("pageToken", pageToken)
9583	return c
9584}
9585
9586// Fields allows partial responses to be retrieved. See
9587// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9588// for more information.
9589func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
9590	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9591	return c
9592}
9593
9594// IfNoneMatch sets the optional parameter which makes the operation
9595// fail if the object's ETag matches the given value. This is useful for
9596// getting updates only after the object has changed since the last
9597// request. Use googleapi.IsNotModified to check whether the response
9598// error from Do is the result of In-None-Match.
9599func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
9600	c.ifNoneMatch_ = entityTag
9601	return c
9602}
9603
9604// Context sets the context to be used in this call's Do method. Any
9605// pending HTTP request will be aborted if the provided context is
9606// canceled.
9607func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
9608	c.ctx_ = ctx
9609	return c
9610}
9611
9612// Header returns an http.Header that can be modified by the caller to
9613// add HTTP headers to the request.
9614func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Header() http.Header {
9615	if c.header_ == nil {
9616		c.header_ = make(http.Header)
9617	}
9618	return c.header_
9619}
9620
9621func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) doRequest(alt string) (*http.Response, error) {
9622	reqHeaders := make(http.Header)
9623	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9624	for k, v := range c.header_ {
9625		reqHeaders[k] = v
9626	}
9627	reqHeaders.Set("User-Agent", c.s.userAgent())
9628	if c.ifNoneMatch_ != "" {
9629		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9630	}
9631	var body io.Reader = nil
9632	c.urlParams_.Set("alt", alt)
9633	c.urlParams_.Set("prettyPrint", "false")
9634	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases")
9635	urls += "?" + c.urlParams_.Encode()
9636	req, err := http.NewRequest("GET", urls, body)
9637	if err != nil {
9638		return nil, err
9639	}
9640	req.Header = reqHeaders
9641	googleapi.Expand(req.URL, map[string]string{
9642		"projectId":   c.projectId,
9643		"historyId":   c.historyId,
9644		"executionId": c.executionId,
9645		"stepId":      c.stepId,
9646	})
9647	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9648}
9649
9650// Do executes the "toolresults.projects.histories.executions.steps.testCases.list" call.
9651// Exactly one of *ListTestCasesResponse or error will be non-nil. Any
9652// non-2xx status code is an error. Response headers are in either
9653// *ListTestCasesResponse.ServerResponse.Header or (if a response was
9654// returned at all) in error.(*googleapi.Error).Header. Use
9655// googleapi.IsNotModified to check whether the returned error was
9656// because http.StatusNotModified was returned.
9657func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Do(opts ...googleapi.CallOption) (*ListTestCasesResponse, error) {
9658	gensupport.SetOptions(c.urlParams_, opts...)
9659	res, err := c.doRequest("json")
9660	if res != nil && res.StatusCode == http.StatusNotModified {
9661		if res.Body != nil {
9662			res.Body.Close()
9663		}
9664		return nil, &googleapi.Error{
9665			Code:   res.StatusCode,
9666			Header: res.Header,
9667		}
9668	}
9669	if err != nil {
9670		return nil, err
9671	}
9672	defer googleapi.CloseBody(res)
9673	if err := googleapi.CheckResponse(res); err != nil {
9674		return nil, err
9675	}
9676	ret := &ListTestCasesResponse{
9677		ServerResponse: googleapi.ServerResponse{
9678			Header:         res.Header,
9679			HTTPStatusCode: res.StatusCode,
9680		},
9681	}
9682	target := &ret
9683	if err := gensupport.DecodeResponse(target, res); err != nil {
9684		return nil, err
9685	}
9686	return ret, nil
9687	// {
9688	//   "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",
9689	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases",
9690	//   "httpMethod": "GET",
9691	//   "id": "toolresults.projects.histories.executions.steps.testCases.list",
9692	//   "parameterOrder": [
9693	//     "projectId",
9694	//     "historyId",
9695	//     "executionId",
9696	//     "stepId"
9697	//   ],
9698	//   "parameters": {
9699	//     "executionId": {
9700	//       "description": "A Execution id Required.",
9701	//       "location": "path",
9702	//       "required": true,
9703	//       "type": "string"
9704	//     },
9705	//     "historyId": {
9706	//       "description": "A History id. Required.",
9707	//       "location": "path",
9708	//       "required": true,
9709	//       "type": "string"
9710	//     },
9711	//     "pageSize": {
9712	//       "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.",
9713	//       "format": "int32",
9714	//       "location": "query",
9715	//       "type": "integer"
9716	//     },
9717	//     "pageToken": {
9718	//       "description": "A continuation token to resume the query at the next item. Optional.",
9719	//       "location": "query",
9720	//       "type": "string"
9721	//     },
9722	//     "projectId": {
9723	//       "description": "A Project id. Required.",
9724	//       "location": "path",
9725	//       "required": true,
9726	//       "type": "string"
9727	//     },
9728	//     "stepId": {
9729	//       "description": "A Step id. Note: This step must include a TestExecutionStep. Required.",
9730	//       "location": "path",
9731	//       "required": true,
9732	//       "type": "string"
9733	//     }
9734	//   },
9735	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases",
9736	//   "response": {
9737	//     "$ref": "ListTestCasesResponse"
9738	//   },
9739	//   "scopes": [
9740	//     "https://www.googleapis.com/auth/cloud-platform"
9741	//   ]
9742	// }
9743
9744}
9745
9746// Pages invokes f for each page of results.
9747// A non-nil error returned from f will halt the iteration.
9748// The provided context supersedes any context provided to the Context method.
9749func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Pages(ctx context.Context, f func(*ListTestCasesResponse) error) error {
9750	c.ctx_ = ctx
9751	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9752	for {
9753		x, err := c.Do()
9754		if err != nil {
9755			return err
9756		}
9757		if err := f(x); err != nil {
9758			return err
9759		}
9760		if x.NextPageToken == "" {
9761			return nil
9762		}
9763		c.PageToken(x.NextPageToken)
9764	}
9765}
9766
9767// method id "toolresults.projects.histories.executions.steps.thumbnails.list":
9768
9769type ProjectsHistoriesExecutionsStepsThumbnailsListCall struct {
9770	s            *Service
9771	projectId    string
9772	historyId    string
9773	executionId  string
9774	stepId       string
9775	urlParams_   gensupport.URLParams
9776	ifNoneMatch_ string
9777	ctx_         context.Context
9778	header_      http.Header
9779}
9780
9781// List: Lists thumbnails of images attached to a step. May return any
9782// of the following canonical error codes: - PERMISSION_DENIED - if the
9783// user is not authorized to read from the project, or from any of the
9784// images - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND -
9785// if the step does not exist, or if any of the images do not exist
9786//
9787// - executionId: An Execution id.
9788// - historyId: A History id.
9789// - projectId: A Project id.
9790// - stepId: A Step id.
9791func (r *ProjectsHistoriesExecutionsStepsThumbnailsService) List(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
9792	c := &ProjectsHistoriesExecutionsStepsThumbnailsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9793	c.projectId = projectId
9794	c.historyId = historyId
9795	c.executionId = executionId
9796	c.stepId = stepId
9797	return c
9798}
9799
9800// PageSize sets the optional parameter "pageSize": The maximum number
9801// of thumbnails to fetch. Default value: 50. The server will use this
9802// default if the field is not set or has a value of 0.
9803func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
9804	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
9805	return c
9806}
9807
9808// PageToken sets the optional parameter "pageToken": A continuation
9809// token to resume the query at the next item.
9810func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
9811	c.urlParams_.Set("pageToken", pageToken)
9812	return c
9813}
9814
9815// Fields allows partial responses to be retrieved. See
9816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9817// for more information.
9818func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
9819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9820	return c
9821}
9822
9823// IfNoneMatch sets the optional parameter which makes the operation
9824// fail if the object's ETag matches the given value. This is useful for
9825// getting updates only after the object has changed since the last
9826// request. Use googleapi.IsNotModified to check whether the response
9827// error from Do is the result of In-None-Match.
9828func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
9829	c.ifNoneMatch_ = entityTag
9830	return c
9831}
9832
9833// Context sets the context to be used in this call's Do method. Any
9834// pending HTTP request will be aborted if the provided context is
9835// canceled.
9836func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
9837	c.ctx_ = ctx
9838	return c
9839}
9840
9841// Header returns an http.Header that can be modified by the caller to
9842// add HTTP headers to the request.
9843func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Header() http.Header {
9844	if c.header_ == nil {
9845		c.header_ = make(http.Header)
9846	}
9847	return c.header_
9848}
9849
9850func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) doRequest(alt string) (*http.Response, error) {
9851	reqHeaders := make(http.Header)
9852	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9853	for k, v := range c.header_ {
9854		reqHeaders[k] = v
9855	}
9856	reqHeaders.Set("User-Agent", c.s.userAgent())
9857	if c.ifNoneMatch_ != "" {
9858		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9859	}
9860	var body io.Reader = nil
9861	c.urlParams_.Set("alt", alt)
9862	c.urlParams_.Set("prettyPrint", "false")
9863	urls := googleapi.ResolveRelative(c.s.BasePath, "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails")
9864	urls += "?" + c.urlParams_.Encode()
9865	req, err := http.NewRequest("GET", urls, body)
9866	if err != nil {
9867		return nil, err
9868	}
9869	req.Header = reqHeaders
9870	googleapi.Expand(req.URL, map[string]string{
9871		"projectId":   c.projectId,
9872		"historyId":   c.historyId,
9873		"executionId": c.executionId,
9874		"stepId":      c.stepId,
9875	})
9876	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9877}
9878
9879// Do executes the "toolresults.projects.histories.executions.steps.thumbnails.list" call.
9880// Exactly one of *ListStepThumbnailsResponse or error will be non-nil.
9881// Any non-2xx status code is an error. Response headers are in either
9882// *ListStepThumbnailsResponse.ServerResponse.Header or (if a response
9883// was returned at all) in error.(*googleapi.Error).Header. Use
9884// googleapi.IsNotModified to check whether the returned error was
9885// because http.StatusNotModified was returned.
9886func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Do(opts ...googleapi.CallOption) (*ListStepThumbnailsResponse, error) {
9887	gensupport.SetOptions(c.urlParams_, opts...)
9888	res, err := c.doRequest("json")
9889	if res != nil && res.StatusCode == http.StatusNotModified {
9890		if res.Body != nil {
9891			res.Body.Close()
9892		}
9893		return nil, &googleapi.Error{
9894			Code:   res.StatusCode,
9895			Header: res.Header,
9896		}
9897	}
9898	if err != nil {
9899		return nil, err
9900	}
9901	defer googleapi.CloseBody(res)
9902	if err := googleapi.CheckResponse(res); err != nil {
9903		return nil, err
9904	}
9905	ret := &ListStepThumbnailsResponse{
9906		ServerResponse: googleapi.ServerResponse{
9907			Header:         res.Header,
9908			HTTPStatusCode: res.StatusCode,
9909		},
9910	}
9911	target := &ret
9912	if err := gensupport.DecodeResponse(target, res); err != nil {
9913		return nil, err
9914	}
9915	return ret, nil
9916	// {
9917	//   "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",
9918	//   "flatPath": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails",
9919	//   "httpMethod": "GET",
9920	//   "id": "toolresults.projects.histories.executions.steps.thumbnails.list",
9921	//   "parameterOrder": [
9922	//     "projectId",
9923	//     "historyId",
9924	//     "executionId",
9925	//     "stepId"
9926	//   ],
9927	//   "parameters": {
9928	//     "executionId": {
9929	//       "description": "An Execution id. Required.",
9930	//       "location": "path",
9931	//       "required": true,
9932	//       "type": "string"
9933	//     },
9934	//     "historyId": {
9935	//       "description": "A History id. Required.",
9936	//       "location": "path",
9937	//       "required": true,
9938	//       "type": "string"
9939	//     },
9940	//     "pageSize": {
9941	//       "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.",
9942	//       "format": "int32",
9943	//       "location": "query",
9944	//       "type": "integer"
9945	//     },
9946	//     "pageToken": {
9947	//       "description": "A continuation token to resume the query at the next item. Optional.",
9948	//       "location": "query",
9949	//       "type": "string"
9950	//     },
9951	//     "projectId": {
9952	//       "description": "A Project id. Required.",
9953	//       "location": "path",
9954	//       "required": true,
9955	//       "type": "string"
9956	//     },
9957	//     "stepId": {
9958	//       "description": "A Step id. Required.",
9959	//       "location": "path",
9960	//       "required": true,
9961	//       "type": "string"
9962	//     }
9963	//   },
9964	//   "path": "toolresults/v1beta3/projects/{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails",
9965	//   "response": {
9966	//     "$ref": "ListStepThumbnailsResponse"
9967	//   },
9968	//   "scopes": [
9969	//     "https://www.googleapis.com/auth/cloud-platform"
9970	//   ]
9971	// }
9972
9973}
9974
9975// Pages invokes f for each page of results.
9976// A non-nil error returned from f will halt the iteration.
9977// The provided context supersedes any context provided to the Context method.
9978func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Pages(ctx context.Context, f func(*ListStepThumbnailsResponse) error) error {
9979	c.ctx_ = ctx
9980	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9981	for {
9982		x, err := c.Do()
9983		if err != nil {
9984			return err
9985		}
9986		if err := f(x); err != nil {
9987			return err
9988		}
9989		if x.NextPageToken == "" {
9990			return nil
9991		}
9992		c.PageToken(x.NextPageToken)
9993	}
9994}
9995