1// Copyright 2019 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	gensupport "google.golang.org/api/gensupport"
53	googleapi "google.golang.org/api/googleapi"
54	option "google.golang.org/api/option"
55	htransport "google.golang.org/api/transport/http"
56)
57
58// Always reference these packages, just in case the auto-generated code
59// below doesn't.
60var _ = bytes.NewBuffer
61var _ = strconv.Itoa
62var _ = fmt.Sprintf
63var _ = json.NewDecoder
64var _ = io.Copy
65var _ = url.Parse
66var _ = gensupport.MarshalJSON
67var _ = googleapi.Version
68var _ = errors.New
69var _ = strings.Replace
70var _ = context.Canceled
71
72const apiId = "toolresults:v1beta3"
73const apiName = "toolresults"
74const apiVersion = "v1beta3"
75const basePath = "https://www.googleapis.com/toolresults/v1beta3/projects/"
76
77// OAuth2 scopes used by this API.
78const (
79	// View and manage your data across Google Cloud Platform services
80	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
81)
82
83// NewService creates a new Service.
84func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
85	scopesOption := option.WithScopes(
86		"https://www.googleapis.com/auth/cloud-platform",
87	)
88	// NOTE: prepend, so we don't override user-specified scopes.
89	opts = append([]option.ClientOption{scopesOption}, opts...)
90	client, endpoint, err := htransport.NewClient(ctx, opts...)
91	if err != nil {
92		return nil, err
93	}
94	s, err := New(client)
95	if err != nil {
96		return nil, err
97	}
98	if endpoint != "" {
99		s.BasePath = endpoint
100	}
101	return s, nil
102}
103
104// New creates a new Service. It uses the provided http.Client for requests.
105//
106// Deprecated: please use NewService instead.
107// To provide a custom HTTP client, use option.WithHTTPClient.
108// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
109func New(client *http.Client) (*Service, error) {
110	if client == nil {
111		return nil, errors.New("client is nil")
112	}
113	s := &Service{client: client, BasePath: basePath}
114	s.Projects = NewProjectsService(s)
115	return s, nil
116}
117
118type Service struct {
119	client    *http.Client
120	BasePath  string // API endpoint base URL
121	UserAgent string // optional additional User-Agent fragment
122
123	Projects *ProjectsService
124}
125
126func (s *Service) userAgent() string {
127	if s.UserAgent == "" {
128		return googleapi.UserAgent
129	}
130	return googleapi.UserAgent + " " + s.UserAgent
131}
132
133func NewProjectsService(s *Service) *ProjectsService {
134	rs := &ProjectsService{s: s}
135	rs.Histories = NewProjectsHistoriesService(s)
136	return rs
137}
138
139type ProjectsService struct {
140	s *Service
141
142	Histories *ProjectsHistoriesService
143}
144
145func NewProjectsHistoriesService(s *Service) *ProjectsHistoriesService {
146	rs := &ProjectsHistoriesService{s: s}
147	rs.Executions = NewProjectsHistoriesExecutionsService(s)
148	return rs
149}
150
151type ProjectsHistoriesService struct {
152	s *Service
153
154	Executions *ProjectsHistoriesExecutionsService
155}
156
157func NewProjectsHistoriesExecutionsService(s *Service) *ProjectsHistoriesExecutionsService {
158	rs := &ProjectsHistoriesExecutionsService{s: s}
159	rs.Clusters = NewProjectsHistoriesExecutionsClustersService(s)
160	rs.Steps = NewProjectsHistoriesExecutionsStepsService(s)
161	return rs
162}
163
164type ProjectsHistoriesExecutionsService struct {
165	s *Service
166
167	Clusters *ProjectsHistoriesExecutionsClustersService
168
169	Steps *ProjectsHistoriesExecutionsStepsService
170}
171
172func NewProjectsHistoriesExecutionsClustersService(s *Service) *ProjectsHistoriesExecutionsClustersService {
173	rs := &ProjectsHistoriesExecutionsClustersService{s: s}
174	return rs
175}
176
177type ProjectsHistoriesExecutionsClustersService struct {
178	s *Service
179}
180
181func NewProjectsHistoriesExecutionsStepsService(s *Service) *ProjectsHistoriesExecutionsStepsService {
182	rs := &ProjectsHistoriesExecutionsStepsService{s: s}
183	rs.PerfMetricsSummary = NewProjectsHistoriesExecutionsStepsPerfMetricsSummaryService(s)
184	rs.PerfSampleSeries = NewProjectsHistoriesExecutionsStepsPerfSampleSeriesService(s)
185	rs.TestCases = NewProjectsHistoriesExecutionsStepsTestCasesService(s)
186	rs.Thumbnails = NewProjectsHistoriesExecutionsStepsThumbnailsService(s)
187	return rs
188}
189
190type ProjectsHistoriesExecutionsStepsService struct {
191	s *Service
192
193	PerfMetricsSummary *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService
194
195	PerfSampleSeries *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService
196
197	TestCases *ProjectsHistoriesExecutionsStepsTestCasesService
198
199	Thumbnails *ProjectsHistoriesExecutionsStepsThumbnailsService
200}
201
202func NewProjectsHistoriesExecutionsStepsPerfMetricsSummaryService(s *Service) *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService {
203	rs := &ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService{s: s}
204	return rs
205}
206
207type ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService struct {
208	s *Service
209}
210
211func NewProjectsHistoriesExecutionsStepsPerfSampleSeriesService(s *Service) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService {
212	rs := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesService{s: s}
213	rs.Samples = NewProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService(s)
214	return rs
215}
216
217type ProjectsHistoriesExecutionsStepsPerfSampleSeriesService struct {
218	s *Service
219
220	Samples *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService
221}
222
223func NewProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService(s *Service) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService {
224	rs := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService{s: s}
225	return rs
226}
227
228type ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService struct {
229	s *Service
230}
231
232func NewProjectsHistoriesExecutionsStepsTestCasesService(s *Service) *ProjectsHistoriesExecutionsStepsTestCasesService {
233	rs := &ProjectsHistoriesExecutionsStepsTestCasesService{s: s}
234	return rs
235}
236
237type ProjectsHistoriesExecutionsStepsTestCasesService struct {
238	s *Service
239}
240
241func NewProjectsHistoriesExecutionsStepsThumbnailsService(s *Service) *ProjectsHistoriesExecutionsStepsThumbnailsService {
242	rs := &ProjectsHistoriesExecutionsStepsThumbnailsService{s: s}
243	return rs
244}
245
246type ProjectsHistoriesExecutionsStepsThumbnailsService struct {
247	s *Service
248}
249
250// AndroidAppInfo: Android app information.
251type AndroidAppInfo struct {
252	// Name: The name of the app. Optional
253	Name string `json:"name,omitempty"`
254
255	// PackageName: The package name of the app. Required.
256	PackageName string `json:"packageName,omitempty"`
257
258	// VersionCode: The internal version code of the app. Optional.
259	VersionCode string `json:"versionCode,omitempty"`
260
261	// VersionName: The version name of the app. Optional.
262	VersionName string `json:"versionName,omitempty"`
263
264	// ForceSendFields is a list of field names (e.g. "Name") to
265	// unconditionally include in API requests. By default, fields with
266	// empty values are omitted from API requests. However, any non-pointer,
267	// non-interface field appearing in ForceSendFields will be sent to the
268	// server regardless of whether the field is empty or not. This may be
269	// used to include empty fields in Patch requests.
270	ForceSendFields []string `json:"-"`
271
272	// NullFields is a list of field names (e.g. "Name") to include in API
273	// requests with the JSON null value. By default, fields with empty
274	// values are omitted from API requests. However, any field with an
275	// empty value appearing in NullFields will be sent to the server as
276	// null. It is an error if a field in this list has a non-empty value.
277	// This may be used to include null fields in Patch requests.
278	NullFields []string `json:"-"`
279}
280
281func (s *AndroidAppInfo) MarshalJSON() ([]byte, error) {
282	type NoMethod AndroidAppInfo
283	raw := NoMethod(*s)
284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
285}
286
287// AndroidInstrumentationTest: A test of an Android application that can
288// control an Android component independently of its normal
289// lifecycle.
290//
291// See  for more information on types of Android tests.
292type AndroidInstrumentationTest struct {
293	// TestPackageId: The java package for the test to be executed. Required
294	TestPackageId string `json:"testPackageId,omitempty"`
295
296	// TestRunnerClass: The InstrumentationTestRunner class. Required
297	TestRunnerClass string `json:"testRunnerClass,omitempty"`
298
299	// TestTargets: Each target must be fully qualified with the package
300	// name or class name, in one of these formats: - "package package_name"
301	// - "class package_name.class_name" - "class
302	// package_name.class_name#method_name"
303	//
304	// If empty, all targets in the module will be run.
305	TestTargets []string `json:"testTargets,omitempty"`
306
307	// UseOrchestrator: The flag indicates whether Android Test Orchestrator
308	// will be used to run test or not.
309	UseOrchestrator bool `json:"useOrchestrator,omitempty"`
310
311	// ForceSendFields is a list of field names (e.g. "TestPackageId") to
312	// unconditionally include in API requests. By default, fields with
313	// empty values are omitted from API requests. However, any non-pointer,
314	// non-interface field appearing in ForceSendFields will be sent to the
315	// server regardless of whether the field is empty or not. This may be
316	// used to include empty fields in Patch requests.
317	ForceSendFields []string `json:"-"`
318
319	// NullFields is a list of field names (e.g. "TestPackageId") to include
320	// in API requests with the JSON null value. By default, fields with
321	// empty values are omitted from API requests. However, any field with
322	// an empty value appearing in NullFields will be sent to the server as
323	// null. It is an error if a field in this list has a non-empty value.
324	// This may be used to include null fields in Patch requests.
325	NullFields []string `json:"-"`
326}
327
328func (s *AndroidInstrumentationTest) MarshalJSON() ([]byte, error) {
329	type NoMethod AndroidInstrumentationTest
330	raw := NoMethod(*s)
331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
332}
333
334// AndroidRoboTest: A test of an android application that explores the
335// application on a virtual or physical Android device, finding culprits
336// and crashes as it goes.
337type AndroidRoboTest struct {
338	// AppInitialActivity: The initial activity that should be used to start
339	// the app. Optional
340	AppInitialActivity string `json:"appInitialActivity,omitempty"`
341
342	// BootstrapPackageId: The java package for the bootstrap. Optional
343	BootstrapPackageId string `json:"bootstrapPackageId,omitempty"`
344
345	// BootstrapRunnerClass: The runner class for the bootstrap. Optional
346	BootstrapRunnerClass string `json:"bootstrapRunnerClass,omitempty"`
347
348	// MaxDepth: The max depth of the traversal stack Robo can explore.
349	// Optional
350	MaxDepth int64 `json:"maxDepth,omitempty"`
351
352	// MaxSteps: The max number of steps/actions Robo can execute. Default
353	// is no limit (0). Optional
354	MaxSteps int64 `json:"maxSteps,omitempty"`
355
356	// ForceSendFields is a list of field names (e.g. "AppInitialActivity")
357	// to unconditionally include in API requests. By default, fields with
358	// empty values are omitted from API requests. However, any non-pointer,
359	// non-interface field appearing in ForceSendFields will be sent to the
360	// server regardless of whether the field is empty or not. This may be
361	// used to include empty fields in Patch requests.
362	ForceSendFields []string `json:"-"`
363
364	// NullFields is a list of field names (e.g. "AppInitialActivity") to
365	// include in API requests with the JSON null value. By default, fields
366	// with empty values are omitted from API requests. However, any field
367	// with an empty value appearing in NullFields will be sent to the
368	// server as null. It is an error if a field in this list has a
369	// non-empty value. This may be used to include null fields in Patch
370	// requests.
371	NullFields []string `json:"-"`
372}
373
374func (s *AndroidRoboTest) MarshalJSON() ([]byte, error) {
375	type NoMethod AndroidRoboTest
376	raw := NoMethod(*s)
377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
378}
379
380// AndroidTest: An Android mobile test specification.
381type AndroidTest struct {
382	// AndroidAppInfo: Information about the application under test.
383	AndroidAppInfo *AndroidAppInfo `json:"androidAppInfo,omitempty"`
384
385	// AndroidInstrumentationTest: An Android instrumentation test.
386	AndroidInstrumentationTest *AndroidInstrumentationTest `json:"androidInstrumentationTest,omitempty"`
387
388	// AndroidRoboTest: An Android robo test.
389	AndroidRoboTest *AndroidRoboTest `json:"androidRoboTest,omitempty"`
390
391	// TestTimeout: Max time a test is allowed to run before it is
392	// automatically cancelled.
393	TestTimeout *Duration `json:"testTimeout,omitempty"`
394
395	// ForceSendFields is a list of field names (e.g. "AndroidAppInfo") to
396	// unconditionally include in API requests. By default, fields with
397	// empty values are omitted from API requests. However, any non-pointer,
398	// non-interface field appearing in ForceSendFields will be sent to the
399	// server regardless of whether the field is empty or not. This may be
400	// used to include empty fields in Patch requests.
401	ForceSendFields []string `json:"-"`
402
403	// NullFields is a list of field names (e.g. "AndroidAppInfo") to
404	// include in API requests with the JSON null value. By default, fields
405	// with empty values are omitted from API requests. However, any field
406	// with an empty value appearing in NullFields will be sent to the
407	// server as null. It is an error if a field in this list has a
408	// non-empty value. This may be used to include null fields in Patch
409	// requests.
410	NullFields []string `json:"-"`
411}
412
413func (s *AndroidTest) MarshalJSON() ([]byte, error) {
414	type NoMethod AndroidTest
415	raw := NoMethod(*s)
416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
417}
418
419// Any: `Any` contains an arbitrary serialized protocol buffer message
420// along with a URL that describes the type of the serialized
421// message.
422//
423// Protobuf library provides support to pack/unpack Any values in the
424// form of utility functions or additional generated methods of the Any
425// type.
426//
427// Example 1: Pack and unpack a message in C++.
428//
429// Foo foo = ...; Any any; any.PackFrom(foo); ... if
430// (any.UnpackTo(&foo)) { ... }
431//
432// Example 2: Pack and unpack a message in Java.
433//
434// Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) {
435// foo = any.unpack(Foo.class); }
436//
437// Example 3: Pack and unpack a message in Python.
438//
439// foo = Foo(...) any = Any() any.Pack(foo) ... if
440// any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
441//
442// Example 4: Pack and unpack a message in Go
443//
444// foo := &pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo :=
445// &pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ...
446// }
447//
448// The pack methods provided by protobuf library will by default use
449// 'type.googleapis.com/full.type.name' as the type URL and the unpack
450// methods only use the fully qualified type name after the last '/' in
451// the type URL, for example "foo.bar.com/x/y.z" will yield type name
452// "y.z".
453//
454//
455//
456// JSON ==== The JSON representation of an `Any` value uses the regular
457// representation of the deserialized, embedded message, with an
458// additional field `@type` which contains the type URL.
459// Example:
460//
461// package google.profile; message Person { string first_name = 1;
462// string last_name = 2; }
463//
464// { "@type": "type.googleapis.com/google.profile.Person", "firstName":
465// , "lastName":  }
466//
467// If the embedded message type is well-known and has a custom JSON
468// representation, that representation will be embedded adding a field
469// `value` which holds the custom JSON in addition to the `@type` field.
470// Example (for message [google.protobuf.Duration][]):
471//
472// { "@type": "type.googleapis.com/google.protobuf.Duration", "value":
473// "1.212s" }
474type Any struct {
475	// TypeUrl: A URL/resource name that uniquely identifies the type of the
476	// serialized protocol buffer message. This string must contain at least
477	// one "/" character. The last segment of the URL's path must represent
478	// the fully qualified name of the type (as in
479	// `path/google.protobuf.Duration`). The name should be in a canonical
480	// form (e.g., leading "." is not accepted).
481	//
482	// In practice, teams usually precompile into the binary all types that
483	// they expect it to use in the context of Any. However, for URLs which
484	// use the scheme `http`, `https`, or no scheme, one can optionally set
485	// up a type server that maps type URLs to message definitions as
486	// follows:
487	//
488	// * If no scheme is provided, `https` is assumed. * An HTTP GET on the
489	// URL must yield a [google.protobuf.Type][] value in binary format, or
490	// produce an error. * Applications are allowed to cache lookup results
491	// based on the URL, or have them precompiled into a binary to avoid any
492	// lookup. Therefore, binary compatibility needs to be preserved on
493	// changes to types. (Use versioned type names to manage breaking
494	// changes.)
495	//
496	// Note: this functionality is not currently available in the official
497	// protobuf release, and it is not used for type URLs beginning with
498	// type.googleapis.com.
499	//
500	// Schemes other than `http`, `https` (or the empty scheme) might be
501	// used with implementation specific semantics.
502	TypeUrl string `json:"typeUrl,omitempty"`
503
504	// Value: Must be a valid serialized protocol buffer of the above
505	// specified type.
506	Value string `json:"value,omitempty"`
507
508	// ForceSendFields is a list of field names (e.g. "TypeUrl") to
509	// unconditionally include in API requests. By default, fields with
510	// empty values are omitted from API requests. However, any non-pointer,
511	// non-interface field appearing in ForceSendFields will be sent to the
512	// server regardless of whether the field is empty or not. This may be
513	// used to include empty fields in Patch requests.
514	ForceSendFields []string `json:"-"`
515
516	// NullFields is a list of field names (e.g. "TypeUrl") to include in
517	// API requests with the JSON null value. By default, fields with empty
518	// values are omitted from API requests. However, any field with an
519	// empty value appearing in NullFields will be sent to the server as
520	// null. It is an error if a field in this list has a non-empty value.
521	// This may be used to include null fields in Patch requests.
522	NullFields []string `json:"-"`
523}
524
525func (s *Any) MarshalJSON() ([]byte, error) {
526	type NoMethod Any
527	raw := NoMethod(*s)
528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
529}
530
531type AppStartTime struct {
532	// FullyDrawnTime: Optional. The time from app start to reaching the
533	// developer-reported "fully drawn" time. This is only stored if the app
534	// includes a call to Activity.reportFullyDrawn(). See
535	// https://developer.android.com/topic/performance/launch-time.html#time-full
536	FullyDrawnTime *Duration `json:"fullyDrawnTime,omitempty"`
537
538	// InitialDisplayTime: The time from app start to the first displayed
539	// activity being drawn, as reported in Logcat. See
540	// https://developer.android.com/topic/performance/launch-time.html#time-initial
541	InitialDisplayTime *Duration `json:"initialDisplayTime,omitempty"`
542
543	// ForceSendFields is a list of field names (e.g. "FullyDrawnTime") to
544	// unconditionally include in API requests. By default, fields with
545	// empty values are omitted from API requests. However, any non-pointer,
546	// non-interface field appearing in ForceSendFields will be sent to the
547	// server regardless of whether the field is empty or not. This may be
548	// used to include empty fields in Patch requests.
549	ForceSendFields []string `json:"-"`
550
551	// NullFields is a list of field names (e.g. "FullyDrawnTime") to
552	// include in API requests with the JSON null value. By default, fields
553	// with empty values are omitted from API requests. However, any field
554	// with an empty value appearing in NullFields will be sent to the
555	// server as null. It is an error if a field in this list has a
556	// non-empty value. This may be used to include null fields in Patch
557	// requests.
558	NullFields []string `json:"-"`
559}
560
561func (s *AppStartTime) MarshalJSON() ([]byte, error) {
562	type NoMethod AppStartTime
563	raw := NoMethod(*s)
564	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
565}
566
567// BasicPerfSampleSeries: Encapsulates the metadata for basic sample
568// series represented by a line chart
569type BasicPerfSampleSeries struct {
570	// Possible values:
571	//   "cpu"
572	//   "graphics"
573	//   "memory"
574	//   "network"
575	//   "perfMetricTypeUnspecified"
576	PerfMetricType string `json:"perfMetricType,omitempty"`
577
578	// Possible values:
579	//   "byte"
580	//   "bytesPerSecond"
581	//   "framesPerSecond"
582	//   "kibibyte"
583	//   "percent"
584	//   "perfUnitUnspecified"
585	PerfUnit string `json:"perfUnit,omitempty"`
586
587	// Possible values:
588	//   "cpuKernel"
589	//   "cpuTotal"
590	//   "cpuUser"
591	//   "graphicsFrameRate"
592	//   "memoryRssPrivate"
593	//   "memoryRssShared"
594	//   "memoryRssTotal"
595	//   "memoryTotal"
596	//   "networkReceived"
597	//   "networkSent"
598	//   "ntBytesReceived"
599	//   "ntBytesTransferred"
600	//   "sampleSeriesTypeUnspecified"
601	SampleSeriesLabel string `json:"sampleSeriesLabel,omitempty"`
602
603	// ForceSendFields is a list of field names (e.g. "PerfMetricType") to
604	// unconditionally include in API requests. By default, fields with
605	// empty values are omitted from API requests. However, any non-pointer,
606	// non-interface field appearing in ForceSendFields will be sent to the
607	// server regardless of whether the field is empty or not. This may be
608	// used to include empty fields in Patch requests.
609	ForceSendFields []string `json:"-"`
610
611	// NullFields is a list of field names (e.g. "PerfMetricType") to
612	// include in API requests with the JSON null value. By default, fields
613	// with empty values are omitted from API requests. However, any field
614	// with an empty value appearing in NullFields will be sent to the
615	// server as null. It is an error if a field in this list has a
616	// non-empty value. This may be used to include null fields in Patch
617	// requests.
618	NullFields []string `json:"-"`
619}
620
621func (s *BasicPerfSampleSeries) MarshalJSON() ([]byte, error) {
622	type NoMethod BasicPerfSampleSeries
623	raw := NoMethod(*s)
624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
625}
626
627// BatchCreatePerfSamplesRequest: The request must provide up to a
628// maximum of 5000 samples to be created; a larger sample size will
629// cause an INVALID_ARGUMENT error
630type BatchCreatePerfSamplesRequest struct {
631	// PerfSamples: The set of PerfSamples to create should not include
632	// existing timestamps
633	PerfSamples []*PerfSample `json:"perfSamples,omitempty"`
634
635	// ForceSendFields is a list of field names (e.g. "PerfSamples") to
636	// unconditionally include in API requests. By default, fields with
637	// empty values are omitted from API requests. However, any non-pointer,
638	// non-interface field appearing in ForceSendFields will be sent to the
639	// server regardless of whether the field is empty or not. This may be
640	// used to include empty fields in Patch requests.
641	ForceSendFields []string `json:"-"`
642
643	// NullFields is a list of field names (e.g. "PerfSamples") to include
644	// in API requests with the JSON null value. By default, fields with
645	// empty values are omitted from API requests. However, any field with
646	// an empty value appearing in NullFields will be sent to the server as
647	// null. It is an error if a field in this list has a non-empty value.
648	// This may be used to include null fields in Patch requests.
649	NullFields []string `json:"-"`
650}
651
652func (s *BatchCreatePerfSamplesRequest) MarshalJSON() ([]byte, error) {
653	type NoMethod BatchCreatePerfSamplesRequest
654	raw := NoMethod(*s)
655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
656}
657
658type BatchCreatePerfSamplesResponse struct {
659	PerfSamples []*PerfSample `json:"perfSamples,omitempty"`
660
661	// ServerResponse contains the HTTP response code and headers from the
662	// server.
663	googleapi.ServerResponse `json:"-"`
664
665	// ForceSendFields is a list of field names (e.g. "PerfSamples") to
666	// unconditionally include in API requests. By default, fields with
667	// empty values are omitted from API requests. However, any non-pointer,
668	// non-interface field appearing in ForceSendFields will be sent to the
669	// server regardless of whether the field is empty or not. This may be
670	// used to include empty fields in Patch requests.
671	ForceSendFields []string `json:"-"`
672
673	// NullFields is a list of field names (e.g. "PerfSamples") to include
674	// in API requests with the JSON null value. By default, fields with
675	// empty values are omitted from API requests. However, any field with
676	// an empty value appearing in NullFields will be sent to the server as
677	// null. It is an error if a field in this list has a non-empty value.
678	// This may be used to include null fields in Patch requests.
679	NullFields []string `json:"-"`
680}
681
682func (s *BatchCreatePerfSamplesResponse) MarshalJSON() ([]byte, error) {
683	type NoMethod BatchCreatePerfSamplesResponse
684	raw := NoMethod(*s)
685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
686}
687
688type CPUInfo struct {
689	// CpuProcessor: description of the device processor ie '1.8 GHz hexa
690	// core 64-bit ARMv8-A'
691	CpuProcessor string `json:"cpuProcessor,omitempty"`
692
693	// CpuSpeedInGhz: the CPU clock speed in GHz
694	CpuSpeedInGhz float64 `json:"cpuSpeedInGhz,omitempty"`
695
696	// NumberOfCores: the number of CPU cores
697	NumberOfCores int64 `json:"numberOfCores,omitempty"`
698
699	// ForceSendFields is a list of field names (e.g. "CpuProcessor") to
700	// unconditionally include in API requests. By default, fields with
701	// empty values are omitted from API requests. However, any non-pointer,
702	// non-interface field appearing in ForceSendFields will be sent to the
703	// server regardless of whether the field is empty or not. This may be
704	// used to include empty fields in Patch requests.
705	ForceSendFields []string `json:"-"`
706
707	// NullFields is a list of field names (e.g. "CpuProcessor") to include
708	// in API requests with the JSON null value. By default, fields with
709	// empty values are omitted from API requests. However, any field with
710	// an empty value appearing in NullFields will be sent to the server as
711	// null. It is an error if a field in this list has a non-empty value.
712	// This may be used to include null fields in Patch requests.
713	NullFields []string `json:"-"`
714}
715
716func (s *CPUInfo) MarshalJSON() ([]byte, error) {
717	type NoMethod CPUInfo
718	raw := NoMethod(*s)
719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
720}
721
722func (s *CPUInfo) UnmarshalJSON(data []byte) error {
723	type NoMethod CPUInfo
724	var s1 struct {
725		CpuSpeedInGhz gensupport.JSONFloat64 `json:"cpuSpeedInGhz"`
726		*NoMethod
727	}
728	s1.NoMethod = (*NoMethod)(s)
729	if err := json.Unmarshal(data, &s1); err != nil {
730		return err
731	}
732	s.CpuSpeedInGhz = float64(s1.CpuSpeedInGhz)
733	return nil
734}
735
736// Duration: A Duration represents a signed, fixed-length span of time
737// represented as a count of seconds and fractions of seconds at
738// nanosecond resolution. It is independent of any calendar and concepts
739// like "day" or "month". It is related to Timestamp in that the
740// difference between two Timestamp values is a Duration and it can be
741// added or subtracted from a Timestamp. Range is approximately +-10,000
742// years.
743//
744// # Examples
745//
746// Example 1: Compute Duration from two Timestamps in pseudo
747// code.
748//
749// Timestamp start = ...; Timestamp end = ...; Duration duration =
750// ...;
751//
752// duration.seconds = end.seconds - start.seconds; duration.nanos =
753// end.nanos - start.nanos;
754//
755// if (duration.seconds  0) { duration.seconds += 1; duration.nanos -=
756// 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) {
757// duration.seconds -= 1; duration.nanos += 1000000000; }
758//
759// Example 2: Compute Timestamp from Timestamp + Duration in pseudo
760// code.
761//
762// Timestamp start = ...; Duration duration = ...; Timestamp end =
763// ...;
764//
765// end.seconds = start.seconds + duration.seconds; end.nanos =
766// start.nanos + duration.nanos;
767//
768// if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -=
769// 1000000000; }
770//
771// Example 3: Compute Duration from datetime.timedelta in Python.
772//
773// td = datetime.timedelta(days=3, minutes=10) duration = Duration()
774// duration.FromTimedelta(td)
775//
776// # JSON Mapping
777//
778// In JSON format, the Duration type is encoded as a string rather than
779// an object, where the string ends in the suffix "s" (indicating
780// seconds) and is preceded by the number of seconds, with nanoseconds
781// expressed as fractional seconds. For example, 3 seconds with 0
782// nanoseconds should be encoded in JSON format as "3s", while 3 seconds
783// and 1 nanosecond should be expressed in JSON format as
784// "3.000000001s", and 3 seconds and 1 microsecond should be expressed
785// in JSON format as "3.000001s".
786type Duration struct {
787	// Nanos: Signed fractions of a second at nanosecond resolution of the
788	// span of time. Durations less than one second are represented with a 0
789	// `seconds` field and a positive or negative `nanos` field. For
790	// durations of one second or more, a non-zero value for the `nanos`
791	// field must be of the same sign as the `seconds` field. Must be from
792	// -999,999,999 to +999,999,999 inclusive.
793	Nanos int64 `json:"nanos,omitempty"`
794
795	// Seconds: Signed seconds of the span of time. Must be from
796	// -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds
797	// are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25
798	// days/year * 10000 years
799	Seconds int64 `json:"seconds,omitempty,string"`
800
801	// ForceSendFields is a list of field names (e.g. "Nanos") to
802	// unconditionally include in API requests. By default, fields with
803	// empty values are omitted from API requests. However, any non-pointer,
804	// non-interface field appearing in ForceSendFields will be sent to the
805	// server regardless of whether the field is empty or not. This may be
806	// used to include empty fields in Patch requests.
807	ForceSendFields []string `json:"-"`
808
809	// NullFields is a list of field names (e.g. "Nanos") to include in API
810	// requests with the JSON null value. By default, fields with empty
811	// values are omitted from API requests. However, any field with an
812	// empty value appearing in NullFields will be sent to the server as
813	// null. It is an error if a field in this list has a non-empty value.
814	// This may be used to include null fields in Patch requests.
815	NullFields []string `json:"-"`
816}
817
818func (s *Duration) MarshalJSON() ([]byte, error) {
819	type NoMethod Duration
820	raw := NoMethod(*s)
821	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
822}
823
824// Execution: An Execution represents a collection of Steps. For
825// instance, it could represent: - a mobile test executed across a range
826// of device configurations - a jenkins job with a build step followed
827// by a test step
828//
829// The maximum size of an execution message is 1 MiB.
830//
831// An Execution can be updated until its state is set to COMPLETE at
832// which point it becomes immutable.
833type Execution struct {
834	// CompletionTime: The time when the Execution status transitioned to
835	// COMPLETE.
836	//
837	// This value will be set automatically when state transitions to
838	// COMPLETE.
839	//
840	// - In response: set if the execution state is COMPLETE. - In
841	// create/update request: never set
842	CompletionTime *Timestamp `json:"completionTime,omitempty"`
843
844	// CreationTime: The time when the Execution was created.
845	//
846	// This value will be set automatically when CreateExecution is
847	// called.
848	//
849	// - In response: always set - In create/update request: never set
850	CreationTime *Timestamp `json:"creationTime,omitempty"`
851
852	// ExecutionId: A unique identifier within a History for this
853	// Execution.
854	//
855	// Returns INVALID_ARGUMENT if this field is set or overwritten by the
856	// caller.
857	//
858	// - In response always set - In create/update request: never set
859	ExecutionId string `json:"executionId,omitempty"`
860
861	// Outcome: Classify the result, for example into SUCCESS or FAILURE
862	//
863	// - In response: present if set by create/update request - In
864	// create/update request: optional
865	Outcome *Outcome `json:"outcome,omitempty"`
866
867	// Specification: Lightweight information about execution request.
868	//
869	// - In response: present if set by create - In create: optional - In
870	// update: optional
871	Specification *Specification `json:"specification,omitempty"`
872
873	// State: The initial state is IN_PROGRESS.
874	//
875	// The only legal state transitions is from IN_PROGRESS to COMPLETE.
876	//
877	// A PRECONDITION_FAILED will be returned if an invalid transition is
878	// requested.
879	//
880	// The state can only be set to COMPLETE once. A FAILED_PRECONDITION
881	// will be returned if the state is set to COMPLETE multiple times.
882	//
883	// If the state is set to COMPLETE, all the in-progress steps within the
884	// execution will be set as COMPLETE. If the outcome of the step is not
885	// set, the outcome will be set to INCONCLUSIVE.
886	//
887	// - In response always set - In create/update request: optional
888	//
889	// Possible values:
890	//   "complete"
891	//   "inProgress"
892	//   "pending"
893	//   "unknownState"
894	State string `json:"state,omitempty"`
895
896	// TestExecutionMatrixId: TestExecution Matrix ID that the
897	// TestExecutionService uses.
898	//
899	// - In response: present if set by create - In create: optional - In
900	// update: never set
901	TestExecutionMatrixId string `json:"testExecutionMatrixId,omitempty"`
902
903	// ServerResponse contains the HTTP response code and headers from the
904	// server.
905	googleapi.ServerResponse `json:"-"`
906
907	// ForceSendFields is a list of field names (e.g. "CompletionTime") 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. "CompletionTime") 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 *Execution) MarshalJSON() ([]byte, error) {
926	type NoMethod Execution
927	raw := NoMethod(*s)
928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
929}
930
931// FailureDetail: Details for an outcome with a FAILURE outcome summary.
932type FailureDetail struct {
933	// Crashed: If the failure was severe because the system (app) under
934	// test crashed.
935	Crashed bool `json:"crashed,omitempty"`
936
937	// NotInstalled: If an app is not installed and thus no test can be run
938	// with the app. This might be caused by trying to run a test on an
939	// unsupported platform.
940	NotInstalled bool `json:"notInstalled,omitempty"`
941
942	// OtherNativeCrash: If a native process (including any other than the
943	// app) crashed.
944	OtherNativeCrash bool `json:"otherNativeCrash,omitempty"`
945
946	// TimedOut: If the test overran some time limit, and that is why it
947	// failed.
948	TimedOut bool `json:"timedOut,omitempty"`
949
950	// UnableToCrawl: If the robo was unable to crawl the app; perhaps
951	// because the app did not start.
952	UnableToCrawl bool `json:"unableToCrawl,omitempty"`
953
954	// ForceSendFields is a list of field names (e.g. "Crashed") to
955	// unconditionally include in API requests. By default, fields with
956	// empty values are omitted from API requests. However, any non-pointer,
957	// non-interface field appearing in ForceSendFields will be sent to the
958	// server regardless of whether the field is empty or not. This may be
959	// used to include empty fields in Patch requests.
960	ForceSendFields []string `json:"-"`
961
962	// NullFields is a list of field names (e.g. "Crashed") to include in
963	// API requests with the JSON null value. By default, fields with empty
964	// values are omitted from API requests. However, any field with an
965	// empty value appearing in NullFields will be sent to the server as
966	// null. It is an error if a field in this list has a non-empty value.
967	// This may be used to include null fields in Patch requests.
968	NullFields []string `json:"-"`
969}
970
971func (s *FailureDetail) MarshalJSON() ([]byte, error) {
972	type NoMethod FailureDetail
973	raw := NoMethod(*s)
974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
975}
976
977// FileReference: A reference to a file.
978type FileReference struct {
979	// FileUri: The URI of a file stored in Google Cloud Storage.
980	//
981	// For example: http://storage.googleapis.com/mybucket/path/to/test.xml
982	// or in gsutil format: gs://mybucket/path/to/test.xml with
983	// version-specific info,
984	// gs://mybucket/path/to/test.xml#1360383693690000
985	//
986	// An INVALID_ARGUMENT error will be returned if the URI format is not
987	// supported.
988	//
989	// - In response: always set - In create/update request: always set
990	FileUri string `json:"fileUri,omitempty"`
991
992	// ForceSendFields is a list of field names (e.g. "FileUri") to
993	// unconditionally include in API requests. By default, fields with
994	// empty values are omitted from API requests. However, any non-pointer,
995	// non-interface field appearing in ForceSendFields will be sent to the
996	// server regardless of whether the field is empty or not. This may be
997	// used to include empty fields in Patch requests.
998	ForceSendFields []string `json:"-"`
999
1000	// NullFields is a list of field names (e.g. "FileUri") to include in
1001	// API requests with the JSON null value. By default, fields with empty
1002	// values are omitted from API requests. However, any field with an
1003	// empty value appearing in NullFields will be sent to the server as
1004	// null. It is an error if a field in this list has a non-empty value.
1005	// This may be used to include null fields in Patch requests.
1006	NullFields []string `json:"-"`
1007}
1008
1009func (s *FileReference) MarshalJSON() ([]byte, error) {
1010	type NoMethod FileReference
1011	raw := NoMethod(*s)
1012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1013}
1014
1015// GraphicsStats: Graphics statistics for the App. The information is
1016// collected from 'adb shell dumpsys graphicsstats'. For more info see:
1017// https://developer.android.com/training/testing/performance.html
1018// Statistics will only be present for API 23+.
1019type GraphicsStats struct {
1020	// Buckets: Histogram of frame render times. There should be 154 buckets
1021	// ranging from [5ms, 6ms) to [4950ms, infinity)
1022	Buckets []*GraphicsStatsBucket `json:"buckets,omitempty"`
1023
1024	// HighInputLatencyCount: Total "high input latency" events.
1025	HighInputLatencyCount int64 `json:"highInputLatencyCount,omitempty,string"`
1026
1027	// JankyFrames: Total frames with slow render time. Should be <=
1028	// total_frames.
1029	JankyFrames int64 `json:"jankyFrames,omitempty,string"`
1030
1031	// MissedVsyncCount: Total "missed vsync" events.
1032	MissedVsyncCount int64 `json:"missedVsyncCount,omitempty,string"`
1033
1034	// P50Millis: 50th percentile frame render time in milliseconds.
1035	P50Millis int64 `json:"p50Millis,omitempty,string"`
1036
1037	// P90Millis: 90th percentile frame render time in milliseconds.
1038	P90Millis int64 `json:"p90Millis,omitempty,string"`
1039
1040	// P95Millis: 95th percentile frame render time in milliseconds.
1041	P95Millis int64 `json:"p95Millis,omitempty,string"`
1042
1043	// P99Millis: 99th percentile frame render time in milliseconds.
1044	P99Millis int64 `json:"p99Millis,omitempty,string"`
1045
1046	// SlowBitmapUploadCount: Total "slow bitmap upload" events.
1047	SlowBitmapUploadCount int64 `json:"slowBitmapUploadCount,omitempty,string"`
1048
1049	// SlowDrawCount: Total "slow draw" events.
1050	SlowDrawCount int64 `json:"slowDrawCount,omitempty,string"`
1051
1052	// SlowUiThreadCount: Total "slow UI thread" events.
1053	SlowUiThreadCount int64 `json:"slowUiThreadCount,omitempty,string"`
1054
1055	// TotalFrames: Total frames rendered by package.
1056	TotalFrames int64 `json:"totalFrames,omitempty,string"`
1057
1058	// ForceSendFields is a list of field names (e.g. "Buckets") to
1059	// unconditionally include in API requests. By default, fields with
1060	// empty values are omitted from API requests. However, any non-pointer,
1061	// non-interface field appearing in ForceSendFields will be sent to the
1062	// server regardless of whether the field is empty or not. This may be
1063	// used to include empty fields in Patch requests.
1064	ForceSendFields []string `json:"-"`
1065
1066	// NullFields is a list of field names (e.g. "Buckets") to include in
1067	// API requests with the JSON null value. By default, fields with empty
1068	// values are omitted from API requests. However, any field with an
1069	// empty value appearing in NullFields will be sent to the server as
1070	// null. It is an error if a field in this list has a non-empty value.
1071	// This may be used to include null fields in Patch requests.
1072	NullFields []string `json:"-"`
1073}
1074
1075func (s *GraphicsStats) MarshalJSON() ([]byte, error) {
1076	type NoMethod GraphicsStats
1077	raw := NoMethod(*s)
1078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1079}
1080
1081type GraphicsStatsBucket struct {
1082	// FrameCount: Number of frames in the bucket.
1083	FrameCount int64 `json:"frameCount,omitempty,string"`
1084
1085	// RenderMillis: Lower bound of render time in milliseconds.
1086	RenderMillis int64 `json:"renderMillis,omitempty,string"`
1087
1088	// ForceSendFields is a list of field names (e.g. "FrameCount") to
1089	// unconditionally include in API requests. By default, fields with
1090	// empty values are omitted from API requests. However, any non-pointer,
1091	// non-interface field appearing in ForceSendFields will be sent to the
1092	// server regardless of whether the field is empty or not. This may be
1093	// used to include empty fields in Patch requests.
1094	ForceSendFields []string `json:"-"`
1095
1096	// NullFields is a list of field names (e.g. "FrameCount") to include in
1097	// API requests with the JSON null value. By default, fields with empty
1098	// values are omitted from API requests. However, any field with an
1099	// empty value appearing in NullFields will be sent to the server as
1100	// null. It is an error if a field in this list has a non-empty value.
1101	// This may be used to include null fields in Patch requests.
1102	NullFields []string `json:"-"`
1103}
1104
1105func (s *GraphicsStatsBucket) MarshalJSON() ([]byte, error) {
1106	type NoMethod GraphicsStatsBucket
1107	raw := NoMethod(*s)
1108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1109}
1110
1111// History: A History represents a sorted list of Executions ordered by
1112// the start_timestamp_millis field (descending). It can be used to
1113// group all the Executions of a continuous build.
1114//
1115// Note that the ordering only operates on one-dimension. If a
1116// repository has multiple branches, it means that multiple histories
1117// will need to be used in order to order Executions per branch.
1118type History struct {
1119	// DisplayName: A short human-readable (plain text) name to display in
1120	// the UI. Maximum of 100 characters.
1121	//
1122	// - In response: present if set during create. - In create request:
1123	// optional
1124	DisplayName string `json:"displayName,omitempty"`
1125
1126	// HistoryId: A unique identifier within a project for this
1127	// History.
1128	//
1129	// Returns INVALID_ARGUMENT if this field is set or overwritten by the
1130	// caller.
1131	//
1132	// - In response always set - In create request: never set
1133	HistoryId string `json:"historyId,omitempty"`
1134
1135	// Name: A name to uniquely identify a history within a project. Maximum
1136	// of 200 characters.
1137	//
1138	// - In response always set - In create request: always set
1139	Name string `json:"name,omitempty"`
1140
1141	// ServerResponse contains the HTTP response code and headers from the
1142	// server.
1143	googleapi.ServerResponse `json:"-"`
1144
1145	// ForceSendFields is a list of field names (e.g. "DisplayName") to
1146	// unconditionally include in API requests. By default, fields with
1147	// empty values are omitted from API requests. However, any non-pointer,
1148	// non-interface field appearing in ForceSendFields will be sent to the
1149	// server regardless of whether the field is empty or not. This may be
1150	// used to include empty fields in Patch requests.
1151	ForceSendFields []string `json:"-"`
1152
1153	// NullFields is a list of field names (e.g. "DisplayName") to include
1154	// in API requests with the JSON null value. By default, fields with
1155	// empty values are omitted from API requests. However, any field with
1156	// an empty value appearing in NullFields will be sent to the server as
1157	// null. It is an error if a field in this list has a non-empty value.
1158	// This may be used to include null fields in Patch requests.
1159	NullFields []string `json:"-"`
1160}
1161
1162func (s *History) MarshalJSON() ([]byte, error) {
1163	type NoMethod History
1164	raw := NoMethod(*s)
1165	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1166}
1167
1168// Image: An image, with a link to the main image and a thumbnail.
1169type Image struct {
1170	// Error: An error explaining why the thumbnail could not be rendered.
1171	Error *Status `json:"error,omitempty"`
1172
1173	// SourceImage: A reference to the full-size, original image.
1174	//
1175	// This is the same as the tool_outputs entry for the image under its
1176	// Step.
1177	//
1178	// Always set.
1179	SourceImage *ToolOutputReference `json:"sourceImage,omitempty"`
1180
1181	// StepId: The step to which the image is attached.
1182	//
1183	// Always set.
1184	StepId string `json:"stepId,omitempty"`
1185
1186	// Thumbnail: The thumbnail.
1187	Thumbnail *Thumbnail `json:"thumbnail,omitempty"`
1188
1189	// ForceSendFields is a list of field names (e.g. "Error") to
1190	// unconditionally include in API requests. By default, fields with
1191	// empty values are omitted from API requests. However, any non-pointer,
1192	// non-interface field appearing in ForceSendFields will be sent to the
1193	// server regardless of whether the field is empty or not. This may be
1194	// used to include empty fields in Patch requests.
1195	ForceSendFields []string `json:"-"`
1196
1197	// NullFields is a list of field names (e.g. "Error") to include in API
1198	// requests with the JSON null value. By default, fields with empty
1199	// values are omitted from API requests. However, any field with an
1200	// empty value appearing in NullFields will be sent to the server as
1201	// null. It is an error if a field in this list has a non-empty value.
1202	// This may be used to include null fields in Patch requests.
1203	NullFields []string `json:"-"`
1204}
1205
1206func (s *Image) MarshalJSON() ([]byte, error) {
1207	type NoMethod Image
1208	raw := NoMethod(*s)
1209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1210}
1211
1212// InconclusiveDetail: Details for an outcome with an INCONCLUSIVE
1213// outcome summary.
1214type InconclusiveDetail struct {
1215	// AbortedByUser: If the end user aborted the test execution before a
1216	// pass or fail could be determined. For example, the user pressed
1217	// ctrl-c which sent a kill signal to the test runner while the test was
1218	// running.
1219	AbortedByUser bool `json:"abortedByUser,omitempty"`
1220
1221	// InfrastructureFailure: If the test runner could not determine success
1222	// or failure because the test depends on a component other than the
1223	// system under test which failed.
1224	//
1225	// For example, a mobile test requires provisioning a device where the
1226	// test executes, and that provisioning can fail.
1227	InfrastructureFailure bool `json:"infrastructureFailure,omitempty"`
1228
1229	// ForceSendFields is a list of field names (e.g. "AbortedByUser") to
1230	// unconditionally include in API requests. By default, fields with
1231	// empty values are omitted from API requests. However, any non-pointer,
1232	// non-interface field appearing in ForceSendFields will be sent to the
1233	// server regardless of whether the field is empty or not. This may be
1234	// used to include empty fields in Patch requests.
1235	ForceSendFields []string `json:"-"`
1236
1237	// NullFields is a list of field names (e.g. "AbortedByUser") to include
1238	// in API requests with the JSON null value. By default, fields with
1239	// empty values are omitted from API requests. However, any field with
1240	// an empty value appearing in NullFields will be sent to the server as
1241	// null. It is an error if a field in this list has a non-empty value.
1242	// This may be used to include null fields in Patch requests.
1243	NullFields []string `json:"-"`
1244}
1245
1246func (s *InconclusiveDetail) MarshalJSON() ([]byte, error) {
1247	type NoMethod InconclusiveDetail
1248	raw := NoMethod(*s)
1249	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1250}
1251
1252// IndividualOutcome: Step Id and outcome of each individual step that
1253// was run as a group with other steps with the same configuration.
1254type IndividualOutcome struct {
1255	// MultistepNumber: Unique int given to each step. Ranges from
1256	// 0(inclusive) to total number of steps(exclusive). The primary step is
1257	// 0.
1258	MultistepNumber int64 `json:"multistepNumber,omitempty"`
1259
1260	// Possible values:
1261	//   "failure"
1262	//   "flaky"
1263	//   "inconclusive"
1264	//   "skipped"
1265	//   "success"
1266	//   "unset"
1267	OutcomeSummary string `json:"outcomeSummary,omitempty"`
1268
1269	// RunDuration: How long it took for this step to run.
1270	RunDuration *Duration `json:"runDuration,omitempty"`
1271
1272	StepId string `json:"stepId,omitempty"`
1273
1274	// ForceSendFields is a list of field names (e.g. "MultistepNumber") to
1275	// unconditionally include in API requests. By default, fields with
1276	// empty values are omitted from API requests. However, any non-pointer,
1277	// non-interface field appearing in ForceSendFields will be sent to the
1278	// server regardless of whether the field is empty or not. This may be
1279	// used to include empty fields in Patch requests.
1280	ForceSendFields []string `json:"-"`
1281
1282	// NullFields is a list of field names (e.g. "MultistepNumber") to
1283	// include in API requests with the JSON null value. By default, fields
1284	// with empty values are omitted from API requests. However, any field
1285	// with an empty value appearing in NullFields will be sent to the
1286	// server as null. It is an error if a field in this list has a
1287	// non-empty value. This may be used to include null fields in Patch
1288	// requests.
1289	NullFields []string `json:"-"`
1290}
1291
1292func (s *IndividualOutcome) MarshalJSON() ([]byte, error) {
1293	type NoMethod IndividualOutcome
1294	raw := NoMethod(*s)
1295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1296}
1297
1298type ListExecutionsResponse struct {
1299	// Executions: Executions.
1300	//
1301	// Always set.
1302	Executions []*Execution `json:"executions,omitempty"`
1303
1304	// NextPageToken: A continuation token to resume the query at the next
1305	// item.
1306	//
1307	// Will only be set if there are more Executions to fetch.
1308	NextPageToken string `json:"nextPageToken,omitempty"`
1309
1310	// ServerResponse contains the HTTP response code and headers from the
1311	// server.
1312	googleapi.ServerResponse `json:"-"`
1313
1314	// ForceSendFields is a list of field names (e.g. "Executions") to
1315	// unconditionally include in API requests. By default, fields with
1316	// empty values are omitted from API requests. However, any non-pointer,
1317	// non-interface field appearing in ForceSendFields will be sent to the
1318	// server regardless of whether the field is empty or not. This may be
1319	// used to include empty fields in Patch requests.
1320	ForceSendFields []string `json:"-"`
1321
1322	// NullFields is a list of field names (e.g. "Executions") to include in
1323	// API requests with the JSON null value. By default, fields with empty
1324	// values are omitted from API requests. However, any field with an
1325	// empty value appearing in NullFields will be sent to the server as
1326	// null. It is an error if a field in this list has a non-empty value.
1327	// This may be used to include null fields in Patch requests.
1328	NullFields []string `json:"-"`
1329}
1330
1331func (s *ListExecutionsResponse) MarshalJSON() ([]byte, error) {
1332	type NoMethod ListExecutionsResponse
1333	raw := NoMethod(*s)
1334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1335}
1336
1337// ListHistoriesResponse: Response message for HistoryService.List
1338type ListHistoriesResponse struct {
1339	// Histories: Histories.
1340	Histories []*History `json:"histories,omitempty"`
1341
1342	// NextPageToken: A continuation token to resume the query at the next
1343	// item.
1344	//
1345	// Will only be set if there are more histories to fetch.
1346	//
1347	// Tokens are valid for up to one hour from the time of the first list
1348	// request. For instance, if you make a list request at 1PM and use the
1349	// token from this first request 10 minutes later, the token from this
1350	// second response will only be valid for 50 minutes.
1351	NextPageToken string `json:"nextPageToken,omitempty"`
1352
1353	// ServerResponse contains the HTTP response code and headers from the
1354	// server.
1355	googleapi.ServerResponse `json:"-"`
1356
1357	// ForceSendFields is a list of field names (e.g. "Histories") to
1358	// unconditionally include in API requests. By default, fields with
1359	// empty values are omitted from API requests. However, any non-pointer,
1360	// non-interface field appearing in ForceSendFields will be sent to the
1361	// server regardless of whether the field is empty or not. This may be
1362	// used to include empty fields in Patch requests.
1363	ForceSendFields []string `json:"-"`
1364
1365	// NullFields is a list of field names (e.g. "Histories") to include in
1366	// API requests with the JSON null value. By default, fields with empty
1367	// values are omitted from API requests. However, any field with an
1368	// empty value appearing in NullFields will be sent to the server as
1369	// null. It is an error if a field in this list has a non-empty value.
1370	// This may be used to include null fields in Patch requests.
1371	NullFields []string `json:"-"`
1372}
1373
1374func (s *ListHistoriesResponse) MarshalJSON() ([]byte, error) {
1375	type NoMethod ListHistoriesResponse
1376	raw := NoMethod(*s)
1377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1378}
1379
1380type ListPerfSampleSeriesResponse struct {
1381	// PerfSampleSeries: The resulting PerfSampleSeries sorted by id
1382	PerfSampleSeries []*PerfSampleSeries `json:"perfSampleSeries,omitempty"`
1383
1384	// ServerResponse contains the HTTP response code and headers from the
1385	// server.
1386	googleapi.ServerResponse `json:"-"`
1387
1388	// ForceSendFields is a list of field names (e.g. "PerfSampleSeries") to
1389	// unconditionally include in API requests. By default, fields with
1390	// empty values are omitted from API requests. However, any non-pointer,
1391	// non-interface field appearing in ForceSendFields will be sent to the
1392	// server regardless of whether the field is empty or not. This may be
1393	// used to include empty fields in Patch requests.
1394	ForceSendFields []string `json:"-"`
1395
1396	// NullFields is a list of field names (e.g. "PerfSampleSeries") to
1397	// include in API requests with the JSON null value. By default, fields
1398	// with empty values are omitted from API requests. However, any field
1399	// with an empty value appearing in NullFields will be sent to the
1400	// server as null. It is an error if a field in this list has a
1401	// non-empty value. This may be used to include null fields in Patch
1402	// requests.
1403	NullFields []string `json:"-"`
1404}
1405
1406func (s *ListPerfSampleSeriesResponse) MarshalJSON() ([]byte, error) {
1407	type NoMethod ListPerfSampleSeriesResponse
1408	raw := NoMethod(*s)
1409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1410}
1411
1412type ListPerfSamplesResponse struct {
1413	// NextPageToken: Optional, returned if result size exceeds the page
1414	// size specified in the request (or the default page size, 500, if
1415	// unspecified). It indicates the last sample timestamp to be used as
1416	// page_token in subsequent request
1417	NextPageToken string `json:"nextPageToken,omitempty"`
1418
1419	PerfSamples []*PerfSample `json:"perfSamples,omitempty"`
1420
1421	// ServerResponse contains the HTTP response code and headers from the
1422	// server.
1423	googleapi.ServerResponse `json:"-"`
1424
1425	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1426	// unconditionally include in API requests. By default, fields with
1427	// empty values are omitted from API requests. However, any non-pointer,
1428	// non-interface field appearing in ForceSendFields will be sent to the
1429	// server regardless of whether the field is empty or not. This may be
1430	// used to include empty fields in Patch requests.
1431	ForceSendFields []string `json:"-"`
1432
1433	// NullFields is a list of field names (e.g. "NextPageToken") to include
1434	// in API requests with the JSON null value. By default, fields with
1435	// empty values are omitted from API requests. However, any field with
1436	// an empty value appearing in NullFields will be sent to the server as
1437	// null. It is an error if a field in this list has a non-empty value.
1438	// This may be used to include null fields in Patch requests.
1439	NullFields []string `json:"-"`
1440}
1441
1442func (s *ListPerfSamplesResponse) MarshalJSON() ([]byte, error) {
1443	type NoMethod ListPerfSamplesResponse
1444	raw := NoMethod(*s)
1445	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1446}
1447
1448type ListScreenshotClustersResponse struct {
1449	// Clusters: The set of clusters associated with an execution Always set
1450	Clusters []*ScreenshotCluster `json:"clusters,omitempty"`
1451
1452	// ServerResponse contains the HTTP response code and headers from the
1453	// server.
1454	googleapi.ServerResponse `json:"-"`
1455
1456	// ForceSendFields is a list of field names (e.g. "Clusters") to
1457	// unconditionally include in API requests. By default, fields with
1458	// empty values are omitted from API requests. However, any non-pointer,
1459	// non-interface field appearing in ForceSendFields will be sent to the
1460	// server regardless of whether the field is empty or not. This may be
1461	// used to include empty fields in Patch requests.
1462	ForceSendFields []string `json:"-"`
1463
1464	// NullFields is a list of field names (e.g. "Clusters") to include in
1465	// API requests with the JSON null value. By default, fields with empty
1466	// values are omitted from API requests. However, any field with an
1467	// empty value appearing in NullFields will be sent to the server as
1468	// null. It is an error if a field in this list has a non-empty value.
1469	// This may be used to include null fields in Patch requests.
1470	NullFields []string `json:"-"`
1471}
1472
1473func (s *ListScreenshotClustersResponse) MarshalJSON() ([]byte, error) {
1474	type NoMethod ListScreenshotClustersResponse
1475	raw := NoMethod(*s)
1476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1477}
1478
1479// ListStepThumbnailsResponse: A response containing the thumbnails in a
1480// step.
1481type ListStepThumbnailsResponse struct {
1482	// NextPageToken: A continuation token to resume the query at the next
1483	// item.
1484	//
1485	// If set, indicates that there are more thumbnails to read, by calling
1486	// list again with this value in the page_token field.
1487	NextPageToken string `json:"nextPageToken,omitempty"`
1488
1489	// Thumbnails: A list of image data.
1490	//
1491	// Images are returned in a deterministic order; they are ordered by
1492	// these factors, in order of importance: * First, by their associated
1493	// test case. Images without a test case are considered greater than
1494	// images with one. * Second, by their creation time. Images without a
1495	// creation time are greater than images with one. * Third, by the order
1496	// in which they were added to the step (by calls to CreateStep or
1497	// UpdateStep).
1498	Thumbnails []*Image `json:"thumbnails,omitempty"`
1499
1500	// ServerResponse contains the HTTP response code and headers from the
1501	// server.
1502	googleapi.ServerResponse `json:"-"`
1503
1504	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1505	// unconditionally include in API requests. By default, fields with
1506	// empty values are omitted from API requests. However, any non-pointer,
1507	// non-interface field appearing in ForceSendFields will be sent to the
1508	// server regardless of whether the field is empty or not. This may be
1509	// used to include empty fields in Patch requests.
1510	ForceSendFields []string `json:"-"`
1511
1512	// NullFields is a list of field names (e.g. "NextPageToken") to include
1513	// in API requests with the JSON null value. By default, fields with
1514	// empty values are omitted from API requests. However, any field with
1515	// an empty value appearing in NullFields will be sent to the server as
1516	// null. It is an error if a field in this list has a non-empty value.
1517	// This may be used to include null fields in Patch requests.
1518	NullFields []string `json:"-"`
1519}
1520
1521func (s *ListStepThumbnailsResponse) MarshalJSON() ([]byte, error) {
1522	type NoMethod ListStepThumbnailsResponse
1523	raw := NoMethod(*s)
1524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1525}
1526
1527// ListStepsResponse: Response message for StepService.List.
1528type ListStepsResponse struct {
1529	// NextPageToken: A continuation token to resume the query at the next
1530	// item.
1531	//
1532	// If set, indicates that there are more steps to read, by calling list
1533	// again with this value in the page_token field.
1534	NextPageToken string `json:"nextPageToken,omitempty"`
1535
1536	// Steps: Steps.
1537	Steps []*Step `json:"steps,omitempty"`
1538
1539	// ServerResponse contains the HTTP response code and headers from the
1540	// server.
1541	googleapi.ServerResponse `json:"-"`
1542
1543	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1544	// unconditionally include in API requests. By default, fields with
1545	// empty values are omitted from API requests. However, any non-pointer,
1546	// non-interface field appearing in ForceSendFields will be sent to the
1547	// server regardless of whether the field is empty or not. This may be
1548	// used to include empty fields in Patch requests.
1549	ForceSendFields []string `json:"-"`
1550
1551	// NullFields is a list of field names (e.g. "NextPageToken") to include
1552	// in API requests with the JSON null value. By default, fields with
1553	// empty values are omitted from API requests. However, any field with
1554	// an empty value appearing in NullFields will be sent to the server as
1555	// null. It is an error if a field in this list has a non-empty value.
1556	// This may be used to include null fields in Patch requests.
1557	NullFields []string `json:"-"`
1558}
1559
1560func (s *ListStepsResponse) MarshalJSON() ([]byte, error) {
1561	type NoMethod ListStepsResponse
1562	raw := NoMethod(*s)
1563	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1564}
1565
1566// ListTestCasesResponse: Response message for
1567// StepService.ListTestCases.
1568type ListTestCasesResponse struct {
1569	NextPageToken string `json:"nextPageToken,omitempty"`
1570
1571	// TestCases: List of test cases.
1572	TestCases []*TestCase `json:"testCases,omitempty"`
1573
1574	// ServerResponse contains the HTTP response code and headers from the
1575	// server.
1576	googleapi.ServerResponse `json:"-"`
1577
1578	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1579	// unconditionally include in API requests. By default, fields with
1580	// empty values are omitted from API requests. However, any non-pointer,
1581	// non-interface field appearing in ForceSendFields will be sent to the
1582	// server regardless of whether the field is empty or not. This may be
1583	// used to include empty fields in Patch requests.
1584	ForceSendFields []string `json:"-"`
1585
1586	// NullFields is a list of field names (e.g. "NextPageToken") to include
1587	// in API requests with the JSON null value. By default, fields with
1588	// empty values are omitted from API requests. However, any field with
1589	// an empty value appearing in NullFields will be sent to the server as
1590	// null. It is an error if a field in this list has a non-empty value.
1591	// This may be used to include null fields in Patch requests.
1592	NullFields []string `json:"-"`
1593}
1594
1595func (s *ListTestCasesResponse) MarshalJSON() ([]byte, error) {
1596	type NoMethod ListTestCasesResponse
1597	raw := NoMethod(*s)
1598	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1599}
1600
1601type MemoryInfo struct {
1602	// MemoryCapInKibibyte: Maximum memory that can be allocated to the
1603	// process in KiB
1604	MemoryCapInKibibyte int64 `json:"memoryCapInKibibyte,omitempty,string"`
1605
1606	// MemoryTotalInKibibyte: Total memory available on the device in KiB
1607	MemoryTotalInKibibyte int64 `json:"memoryTotalInKibibyte,omitempty,string"`
1608
1609	// ForceSendFields is a list of field names (e.g. "MemoryCapInKibibyte")
1610	// to unconditionally include in API requests. By default, fields with
1611	// empty values are omitted from API requests. However, any non-pointer,
1612	// non-interface field appearing in ForceSendFields will be sent to the
1613	// server regardless of whether the field is empty or not. This may be
1614	// used to include empty fields in Patch requests.
1615	ForceSendFields []string `json:"-"`
1616
1617	// NullFields is a list of field names (e.g. "MemoryCapInKibibyte") to
1618	// include in API requests with the JSON null value. By default, fields
1619	// with empty values are omitted from API requests. However, any field
1620	// with an empty value appearing in NullFields will be sent to the
1621	// server as null. It is an error if a field in this list has a
1622	// non-empty value. This may be used to include null fields in Patch
1623	// requests.
1624	NullFields []string `json:"-"`
1625}
1626
1627func (s *MemoryInfo) MarshalJSON() ([]byte, error) {
1628	type NoMethod MemoryInfo
1629	raw := NoMethod(*s)
1630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1631}
1632
1633// MultiStep: Details when multiple steps are run with the same
1634// configuration as a group.
1635type MultiStep struct {
1636	// MultistepNumber: Unique int given to each step. Ranges from
1637	// 0(inclusive) to total number of steps(exclusive). The primary step is
1638	// 0.
1639	MultistepNumber int64 `json:"multistepNumber,omitempty"`
1640
1641	// PrimaryStep: Present if it is a primary (original) step.
1642	PrimaryStep *PrimaryStep `json:"primaryStep,omitempty"`
1643
1644	// PrimaryStepId: Step Id of the primary (original) step, which might be
1645	// this step.
1646	PrimaryStepId string `json:"primaryStepId,omitempty"`
1647
1648	// ForceSendFields is a list of field names (e.g. "MultistepNumber") to
1649	// unconditionally include in API requests. By default, fields with
1650	// empty values are omitted from API requests. However, any non-pointer,
1651	// non-interface field appearing in ForceSendFields will be sent to the
1652	// server regardless of whether the field is empty or not. This may be
1653	// used to include empty fields in Patch requests.
1654	ForceSendFields []string `json:"-"`
1655
1656	// NullFields is a list of field names (e.g. "MultistepNumber") to
1657	// include in API requests with the JSON null value. By default, fields
1658	// with empty values are omitted from API requests. However, any field
1659	// with an empty value appearing in NullFields will be sent to the
1660	// server as null. It is an error if a field in this list has a
1661	// non-empty value. This may be used to include null fields in Patch
1662	// requests.
1663	NullFields []string `json:"-"`
1664}
1665
1666func (s *MultiStep) MarshalJSON() ([]byte, error) {
1667	type NoMethod MultiStep
1668	raw := NoMethod(*s)
1669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1670}
1671
1672// Outcome: Interprets a result so that humans and machines can act on
1673// it.
1674type Outcome struct {
1675	// FailureDetail: More information about a FAILURE outcome.
1676	//
1677	// Returns INVALID_ARGUMENT if this field is set but the summary is not
1678	// FAILURE.
1679	//
1680	// Optional
1681	FailureDetail *FailureDetail `json:"failureDetail,omitempty"`
1682
1683	// InconclusiveDetail: More information about an INCONCLUSIVE
1684	// outcome.
1685	//
1686	// Returns INVALID_ARGUMENT if this field is set but the summary is not
1687	// INCONCLUSIVE.
1688	//
1689	// Optional
1690	InconclusiveDetail *InconclusiveDetail `json:"inconclusiveDetail,omitempty"`
1691
1692	// SkippedDetail: More information about a SKIPPED outcome.
1693	//
1694	// Returns INVALID_ARGUMENT if this field is set but the summary is not
1695	// SKIPPED.
1696	//
1697	// Optional
1698	SkippedDetail *SkippedDetail `json:"skippedDetail,omitempty"`
1699
1700	// SuccessDetail: More information about a SUCCESS outcome.
1701	//
1702	// Returns INVALID_ARGUMENT if this field is set but the summary is not
1703	// SUCCESS.
1704	//
1705	// Optional
1706	SuccessDetail *SuccessDetail `json:"successDetail,omitempty"`
1707
1708	// Summary: The simplest way to interpret a result.
1709	//
1710	// Required
1711	//
1712	// Possible values:
1713	//   "failure"
1714	//   "flaky"
1715	//   "inconclusive"
1716	//   "skipped"
1717	//   "success"
1718	//   "unset"
1719	Summary string `json:"summary,omitempty"`
1720
1721	// ForceSendFields is a list of field names (e.g. "FailureDetail") 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. "FailureDetail") to include
1730	// in API requests with the JSON null value. By default, fields with
1731	// empty values are omitted from API requests. However, any field with
1732	// an 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 *Outcome) MarshalJSON() ([]byte, error) {
1739	type NoMethod Outcome
1740	raw := NoMethod(*s)
1741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1742}
1743
1744// PerfEnvironment: Encapsulates performance environment info
1745type PerfEnvironment struct {
1746	// CpuInfo: CPU related environment info
1747	CpuInfo *CPUInfo `json:"cpuInfo,omitempty"`
1748
1749	// MemoryInfo: Memory related environment info
1750	MemoryInfo *MemoryInfo `json:"memoryInfo,omitempty"`
1751
1752	// ForceSendFields is a list of field names (e.g. "CpuInfo") to
1753	// unconditionally include in API requests. By default, fields with
1754	// empty values are omitted from API requests. However, any non-pointer,
1755	// non-interface field appearing in ForceSendFields will be sent to the
1756	// server regardless of whether the field is empty or not. This may be
1757	// used to include empty fields in Patch requests.
1758	ForceSendFields []string `json:"-"`
1759
1760	// NullFields is a list of field names (e.g. "CpuInfo") to include in
1761	// API requests with the JSON null value. By default, fields with empty
1762	// values are omitted from API requests. However, any field with an
1763	// empty value appearing in NullFields will be sent to the server as
1764	// null. It is an error if a field in this list has a non-empty value.
1765	// This may be used to include null fields in Patch requests.
1766	NullFields []string `json:"-"`
1767}
1768
1769func (s *PerfEnvironment) MarshalJSON() ([]byte, error) {
1770	type NoMethod PerfEnvironment
1771	raw := NoMethod(*s)
1772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1773}
1774
1775// PerfMetricsSummary: A summary of perf metrics collected and
1776// performance environment info
1777type PerfMetricsSummary struct {
1778	AppStartTime *AppStartTime `json:"appStartTime,omitempty"`
1779
1780	// ExecutionId: A tool results execution ID.
1781	ExecutionId string `json:"executionId,omitempty"`
1782
1783	// GraphicsStats: Graphics statistics for the entire run. Statistics are
1784	// reset at the beginning of the run and collected at the end of the
1785	// run.
1786	GraphicsStats *GraphicsStats `json:"graphicsStats,omitempty"`
1787
1788	// HistoryId: A tool results history ID.
1789	HistoryId string `json:"historyId,omitempty"`
1790
1791	// PerfEnvironment: Describes the environment in which the performance
1792	// metrics were collected
1793	PerfEnvironment *PerfEnvironment `json:"perfEnvironment,omitempty"`
1794
1795	// PerfMetrics: Set of resource collected
1796	//
1797	// Possible values:
1798	//   "cpu"
1799	//   "graphics"
1800	//   "memory"
1801	//   "network"
1802	//   "perfMetricTypeUnspecified"
1803	PerfMetrics []string `json:"perfMetrics,omitempty"`
1804
1805	// ProjectId: The cloud project
1806	ProjectId string `json:"projectId,omitempty"`
1807
1808	// StepId: A tool results step ID.
1809	StepId string `json:"stepId,omitempty"`
1810
1811	// ServerResponse contains the HTTP response code and headers from the
1812	// server.
1813	googleapi.ServerResponse `json:"-"`
1814
1815	// ForceSendFields is a list of field names (e.g. "AppStartTime") to
1816	// unconditionally include in API requests. By default, fields with
1817	// empty values are omitted from API requests. However, any non-pointer,
1818	// non-interface field appearing in ForceSendFields will be sent to the
1819	// server regardless of whether the field is empty or not. This may be
1820	// used to include empty fields in Patch requests.
1821	ForceSendFields []string `json:"-"`
1822
1823	// NullFields is a list of field names (e.g. "AppStartTime") to include
1824	// in API requests with the JSON null value. By default, fields with
1825	// empty values are omitted from API requests. However, any field with
1826	// an empty value appearing in NullFields will be sent to the server as
1827	// null. It is an error if a field in this list has a non-empty value.
1828	// This may be used to include null fields in Patch requests.
1829	NullFields []string `json:"-"`
1830}
1831
1832func (s *PerfMetricsSummary) MarshalJSON() ([]byte, error) {
1833	type NoMethod PerfMetricsSummary
1834	raw := NoMethod(*s)
1835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1836}
1837
1838// PerfSample: Resource representing a single performance measure or
1839// data point
1840type PerfSample struct {
1841	// SampleTime: Timestamp of collection
1842	SampleTime *Timestamp `json:"sampleTime,omitempty"`
1843
1844	// Value: Value observed
1845	Value float64 `json:"value,omitempty"`
1846
1847	// ForceSendFields is a list of field names (e.g. "SampleTime") 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. "SampleTime") 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 *PerfSample) MarshalJSON() ([]byte, error) {
1865	type NoMethod PerfSample
1866	raw := NoMethod(*s)
1867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1868}
1869
1870func (s *PerfSample) UnmarshalJSON(data []byte) error {
1871	type NoMethod PerfSample
1872	var s1 struct {
1873		Value gensupport.JSONFloat64 `json:"value"`
1874		*NoMethod
1875	}
1876	s1.NoMethod = (*NoMethod)(s)
1877	if err := json.Unmarshal(data, &s1); err != nil {
1878		return err
1879	}
1880	s.Value = float64(s1.Value)
1881	return nil
1882}
1883
1884// PerfSampleSeries: Resource representing a collection of performance
1885// samples (or data points)
1886type PerfSampleSeries struct {
1887	// BasicPerfSampleSeries: Basic series represented by a line chart
1888	BasicPerfSampleSeries *BasicPerfSampleSeries `json:"basicPerfSampleSeries,omitempty"`
1889
1890	// ExecutionId: A tool results execution ID.
1891	ExecutionId string `json:"executionId,omitempty"`
1892
1893	// HistoryId: A tool results history ID.
1894	HistoryId string `json:"historyId,omitempty"`
1895
1896	// ProjectId: The cloud project
1897	ProjectId string `json:"projectId,omitempty"`
1898
1899	// SampleSeriesId: A sample series id
1900	SampleSeriesId string `json:"sampleSeriesId,omitempty"`
1901
1902	// StepId: A tool results step ID.
1903	StepId string `json:"stepId,omitempty"`
1904
1905	// ServerResponse contains the HTTP response code and headers from the
1906	// server.
1907	googleapi.ServerResponse `json:"-"`
1908
1909	// ForceSendFields is a list of field names (e.g.
1910	// "BasicPerfSampleSeries") to unconditionally include in API requests.
1911	// By default, fields with empty values are omitted from API requests.
1912	// However, any non-pointer, non-interface field appearing in
1913	// ForceSendFields will be sent to the server regardless of whether the
1914	// field is empty or not. This may be used to include empty fields in
1915	// Patch requests.
1916	ForceSendFields []string `json:"-"`
1917
1918	// NullFields is a list of field names (e.g. "BasicPerfSampleSeries") to
1919	// include in API requests with the JSON null value. By default, fields
1920	// with empty values are omitted from API requests. However, any field
1921	// with an empty value appearing in NullFields will be sent to the
1922	// server as null. It is an error if a field in this list has a
1923	// non-empty value. This may be used to include null fields in Patch
1924	// requests.
1925	NullFields []string `json:"-"`
1926}
1927
1928func (s *PerfSampleSeries) MarshalJSON() ([]byte, error) {
1929	type NoMethod PerfSampleSeries
1930	raw := NoMethod(*s)
1931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1932}
1933
1934// PrimaryStep: Stores rollup test status of multiple steps that were
1935// run as a group and outcome of each individual step.
1936type PrimaryStep struct {
1937	// IndividualOutcome: Step Id and outcome of each individual step.
1938	IndividualOutcome []*IndividualOutcome `json:"individualOutcome,omitempty"`
1939
1940	// RollUp: Rollup test status of multiple steps that were run with the
1941	// same configuration as a group.
1942	//
1943	// Possible values:
1944	//   "failure"
1945	//   "flaky"
1946	//   "inconclusive"
1947	//   "skipped"
1948	//   "success"
1949	//   "unset"
1950	RollUp string `json:"rollUp,omitempty"`
1951
1952	// ForceSendFields is a list of field names (e.g. "IndividualOutcome")
1953	// to unconditionally include in API requests. By default, fields with
1954	// empty values are omitted from API requests. However, any non-pointer,
1955	// non-interface field appearing in ForceSendFields will be sent to the
1956	// server regardless of whether the field is empty or not. This may be
1957	// used to include empty fields in Patch requests.
1958	ForceSendFields []string `json:"-"`
1959
1960	// NullFields is a list of field names (e.g. "IndividualOutcome") to
1961	// include in API requests with the JSON null value. By default, fields
1962	// with empty values are omitted from API requests. However, any field
1963	// with an empty value appearing in NullFields will be sent to the
1964	// server as null. It is an error if a field in this list has a
1965	// non-empty value. This may be used to include null fields in Patch
1966	// requests.
1967	NullFields []string `json:"-"`
1968}
1969
1970func (s *PrimaryStep) MarshalJSON() ([]byte, error) {
1971	type NoMethod PrimaryStep
1972	raw := NoMethod(*s)
1973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1974}
1975
1976// ProjectSettings: Per-project settings for the Tool Results service.
1977type ProjectSettings struct {
1978	// DefaultBucket: The name of the Google Cloud Storage bucket to which
1979	// results are written.
1980	//
1981	// By default, this is unset.
1982	//
1983	// In update request: optional In response: optional
1984	DefaultBucket string `json:"defaultBucket,omitempty"`
1985
1986	// Name: The name of the project's settings.
1987	//
1988	// Always of the form: projects/{project-id}/settings
1989	//
1990	// In update request: never set In response: always set
1991	Name string `json:"name,omitempty"`
1992
1993	// ServerResponse contains the HTTP response code and headers from the
1994	// server.
1995	googleapi.ServerResponse `json:"-"`
1996
1997	// ForceSendFields is a list of field names (e.g. "DefaultBucket") to
1998	// unconditionally include in API requests. By default, fields with
1999	// empty values are omitted from API requests. However, any non-pointer,
2000	// non-interface field appearing in ForceSendFields will be sent to the
2001	// server regardless of whether the field is empty or not. This may be
2002	// used to include empty fields in Patch requests.
2003	ForceSendFields []string `json:"-"`
2004
2005	// NullFields is a list of field names (e.g. "DefaultBucket") to include
2006	// in API requests with the JSON null value. By default, fields with
2007	// empty values are omitted from API requests. However, any field with
2008	// an empty value appearing in NullFields will be sent to the server as
2009	// null. It is an error if a field in this list has a non-empty value.
2010	// This may be used to include null fields in Patch requests.
2011	NullFields []string `json:"-"`
2012}
2013
2014func (s *ProjectSettings) MarshalJSON() ([]byte, error) {
2015	type NoMethod ProjectSettings
2016	raw := NoMethod(*s)
2017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2018}
2019
2020// PublishXunitXmlFilesRequest: Request message for
2021// StepService.PublishXunitXmlFiles.
2022type PublishXunitXmlFilesRequest struct {
2023	// XunitXmlFiles: URI of the Xunit XML files to publish.
2024	//
2025	// The maximum size of the file this reference is pointing to is
2026	// 50MB.
2027	//
2028	// Required.
2029	XunitXmlFiles []*FileReference `json:"xunitXmlFiles,omitempty"`
2030
2031	// ForceSendFields is a list of field names (e.g. "XunitXmlFiles") to
2032	// unconditionally include in API requests. By default, fields with
2033	// empty values are omitted from API requests. However, any non-pointer,
2034	// non-interface field appearing in ForceSendFields will be sent to the
2035	// server regardless of whether the field is empty or not. This may be
2036	// used to include empty fields in Patch requests.
2037	ForceSendFields []string `json:"-"`
2038
2039	// NullFields is a list of field names (e.g. "XunitXmlFiles") to include
2040	// in API requests with the JSON null value. By default, fields with
2041	// empty values are omitted from API requests. However, any field with
2042	// an empty value appearing in NullFields will be sent to the server as
2043	// null. It is an error if a field in this list has a non-empty value.
2044	// This may be used to include null fields in Patch requests.
2045	NullFields []string `json:"-"`
2046}
2047
2048func (s *PublishXunitXmlFilesRequest) MarshalJSON() ([]byte, error) {
2049	type NoMethod PublishXunitXmlFilesRequest
2050	raw := NoMethod(*s)
2051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2052}
2053
2054type Screen struct {
2055	// FileReference: File reference of the png file. Required.
2056	FileReference string `json:"fileReference,omitempty"`
2057
2058	// Locale: Locale of the device that the screenshot was taken on.
2059	// Required.
2060	Locale string `json:"locale,omitempty"`
2061
2062	// Model: Model of the device that the screenshot was taken on.
2063	// Required.
2064	Model string `json:"model,omitempty"`
2065
2066	// Version: OS version of the device that the screenshot was taken on.
2067	// Required.
2068	Version string `json:"version,omitempty"`
2069
2070	// ForceSendFields is a list of field names (e.g. "FileReference") to
2071	// unconditionally include in API requests. By default, fields with
2072	// empty values are omitted from API requests. However, any non-pointer,
2073	// non-interface field appearing in ForceSendFields will be sent to the
2074	// server regardless of whether the field is empty or not. This may be
2075	// used to include empty fields in Patch requests.
2076	ForceSendFields []string `json:"-"`
2077
2078	// NullFields is a list of field names (e.g. "FileReference") to include
2079	// in API requests with the JSON null value. By default, fields with
2080	// empty values are omitted from API requests. However, any field with
2081	// an empty value appearing in NullFields will be sent to the server as
2082	// null. It is an error if a field in this list has a non-empty value.
2083	// This may be used to include null fields in Patch requests.
2084	NullFields []string `json:"-"`
2085}
2086
2087func (s *Screen) MarshalJSON() ([]byte, error) {
2088	type NoMethod Screen
2089	raw := NoMethod(*s)
2090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2091}
2092
2093type ScreenshotCluster struct {
2094	// Activity: A string that describes the activity of every screen in the
2095	// cluster.
2096	Activity string `json:"activity,omitempty"`
2097
2098	// ClusterId: A unique identifier for the cluster.
2099	ClusterId string `json:"clusterId,omitempty"`
2100
2101	// KeyScreen: A singular screen that represents the cluster as a whole.
2102	// This screen will act as the "cover" of the entire cluster. When users
2103	// look at the clusters, only the key screen from each cluster will be
2104	// shown. Which screen is the key screen is determined by the
2105	// ClusteringAlgorithm
2106	KeyScreen *Screen `json:"keyScreen,omitempty"`
2107
2108	// Screens: Full list of screens.
2109	Screens []*Screen `json:"screens,omitempty"`
2110
2111	// ServerResponse contains the HTTP response code and headers from the
2112	// server.
2113	googleapi.ServerResponse `json:"-"`
2114
2115	// ForceSendFields is a list of field names (e.g. "Activity") to
2116	// unconditionally include in API requests. By default, fields with
2117	// empty values are omitted from API requests. However, any non-pointer,
2118	// non-interface field appearing in ForceSendFields will be sent to the
2119	// server regardless of whether the field is empty or not. This may be
2120	// used to include empty fields in Patch requests.
2121	ForceSendFields []string `json:"-"`
2122
2123	// NullFields is a list of field names (e.g. "Activity") to include in
2124	// API requests with the JSON null value. By default, fields with empty
2125	// values are omitted from API requests. However, any field with an
2126	// empty value appearing in NullFields will be sent to the server as
2127	// null. It is an error if a field in this list has a non-empty value.
2128	// This may be used to include null fields in Patch requests.
2129	NullFields []string `json:"-"`
2130}
2131
2132func (s *ScreenshotCluster) MarshalJSON() ([]byte, error) {
2133	type NoMethod ScreenshotCluster
2134	raw := NoMethod(*s)
2135	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2136}
2137
2138// SkippedDetail: Details for an outcome with a SKIPPED outcome summary.
2139type SkippedDetail struct {
2140	// IncompatibleAppVersion: If the App doesn't support the specific API
2141	// level.
2142	IncompatibleAppVersion bool `json:"incompatibleAppVersion,omitempty"`
2143
2144	// IncompatibleArchitecture: If the App doesn't run on the specific
2145	// architecture, for example, x86.
2146	IncompatibleArchitecture bool `json:"incompatibleArchitecture,omitempty"`
2147
2148	// IncompatibleDevice: If the requested OS version doesn't run on the
2149	// specific device model.
2150	IncompatibleDevice bool `json:"incompatibleDevice,omitempty"`
2151
2152	// ForceSendFields is a list of field names (e.g.
2153	// "IncompatibleAppVersion") to unconditionally include in API requests.
2154	// By default, fields with empty values are omitted from API requests.
2155	// However, any non-pointer, non-interface field appearing in
2156	// ForceSendFields will be sent to the server regardless of whether the
2157	// field is empty or not. This may be used to include empty fields in
2158	// Patch requests.
2159	ForceSendFields []string `json:"-"`
2160
2161	// NullFields is a list of field names (e.g. "IncompatibleAppVersion")
2162	// to include in API requests with the JSON null value. By default,
2163	// fields with empty values are omitted from API requests. However, any
2164	// field with an empty value appearing in NullFields will be sent to the
2165	// server as null. It is an error if a field in this list has a
2166	// non-empty value. This may be used to include null fields in Patch
2167	// requests.
2168	NullFields []string `json:"-"`
2169}
2170
2171func (s *SkippedDetail) MarshalJSON() ([]byte, error) {
2172	type NoMethod SkippedDetail
2173	raw := NoMethod(*s)
2174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2175}
2176
2177// Specification: The details about how to run the execution.
2178type Specification struct {
2179	// AndroidTest: An Android mobile test execution specification.
2180	AndroidTest *AndroidTest `json:"androidTest,omitempty"`
2181
2182	// ForceSendFields is a list of field names (e.g. "AndroidTest") to
2183	// unconditionally include in API requests. By default, fields with
2184	// empty values are omitted from API requests. However, any non-pointer,
2185	// non-interface field appearing in ForceSendFields will be sent to the
2186	// server regardless of whether the field is empty or not. This may be
2187	// used to include empty fields in Patch requests.
2188	ForceSendFields []string `json:"-"`
2189
2190	// NullFields is a list of field names (e.g. "AndroidTest") to include
2191	// in API requests with the JSON null value. By default, fields with
2192	// empty values are omitted from API requests. However, any field with
2193	// an empty value appearing in NullFields will be sent to the server as
2194	// null. It is an error if a field in this list has a non-empty value.
2195	// This may be used to include null fields in Patch requests.
2196	NullFields []string `json:"-"`
2197}
2198
2199func (s *Specification) MarshalJSON() ([]byte, error) {
2200	type NoMethod Specification
2201	raw := NoMethod(*s)
2202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2203}
2204
2205// StackTrace: A stacktrace.
2206type StackTrace struct {
2207	// Exception: The stack trace message.
2208	//
2209	// Required
2210	Exception string `json:"exception,omitempty"`
2211
2212	// ForceSendFields is a list of field names (e.g. "Exception") to
2213	// unconditionally include in API requests. By default, fields with
2214	// empty values are omitted from API requests. However, any non-pointer,
2215	// non-interface field appearing in ForceSendFields will be sent to the
2216	// server regardless of whether the field is empty or not. This may be
2217	// used to include empty fields in Patch requests.
2218	ForceSendFields []string `json:"-"`
2219
2220	// NullFields is a list of field names (e.g. "Exception") to include in
2221	// API requests with the JSON null value. By default, fields with empty
2222	// values are omitted from API requests. However, any field with an
2223	// empty value appearing in NullFields will be sent to the server as
2224	// null. It is an error if a field in this list has a non-empty value.
2225	// This may be used to include null fields in Patch requests.
2226	NullFields []string `json:"-"`
2227}
2228
2229func (s *StackTrace) MarshalJSON() ([]byte, error) {
2230	type NoMethod StackTrace
2231	raw := NoMethod(*s)
2232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2233}
2234
2235// Status: The `Status` type defines a logical error model that is
2236// suitable for different programming environments, including REST APIs
2237// and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each
2238// `Status` message contains three pieces of data: error code, error
2239// message, and error details.
2240//
2241// You can find out more about this error model and how to work with it
2242// in the [API Design
2243// Guide](https://cloud.google.com/apis/design/errors).
2244type Status struct {
2245	// Code: The status code, which should be an enum value of
2246	// [google.rpc.Code][].
2247	Code int64 `json:"code,omitempty"`
2248
2249	// Details: A list of messages that carry the error details. There is a
2250	// common set of message types for APIs to use.
2251	Details []*Any `json:"details,omitempty"`
2252
2253	// Message: A developer-facing error message, which should be in
2254	// English. Any user-facing error message should be localized and sent
2255	// in the [google.rpc.Status.details][] field, or localized by the
2256	// client.
2257	Message string `json:"message,omitempty"`
2258
2259	// ForceSendFields is a list of field names (e.g. "Code") to
2260	// unconditionally include in API requests. By default, fields with
2261	// empty values are omitted from API requests. However, any non-pointer,
2262	// non-interface field appearing in ForceSendFields will be sent to the
2263	// server regardless of whether the field is empty or not. This may be
2264	// used to include empty fields in Patch requests.
2265	ForceSendFields []string `json:"-"`
2266
2267	// NullFields is a list of field names (e.g. "Code") to include in API
2268	// requests with the JSON null value. By default, fields with empty
2269	// values are omitted from API requests. However, any field with an
2270	// empty value appearing in NullFields will be sent to the server as
2271	// null. It is an error if a field in this list has a non-empty value.
2272	// This may be used to include null fields in Patch requests.
2273	NullFields []string `json:"-"`
2274}
2275
2276func (s *Status) MarshalJSON() ([]byte, error) {
2277	type NoMethod Status
2278	raw := NoMethod(*s)
2279	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2280}
2281
2282// Step: A Step represents a single operation performed as part of
2283// Execution. A step can be used to represent the execution of a tool (
2284// for example a test runner execution or an execution of a
2285// compiler).
2286//
2287// Steps can overlap (for instance two steps might have the same start
2288// time if some operations are done in parallel).
2289//
2290// Here is an example, let's consider that we have a continuous build is
2291// executing a test runner for each iteration. The workflow would look
2292// like: - user creates a Execution with id 1 - user creates an
2293// TestExecutionStep with id 100 for Execution 1 - user update
2294// TestExecutionStep with id 100 to add a raw xml log + the service
2295// parses the xml logs and returns a TestExecutionStep with updated
2296// TestResult(s). - user update the status of TestExecutionStep with id
2297// 100 to COMPLETE
2298//
2299// A Step can be updated until its state is set to COMPLETE at which
2300// points it becomes immutable.
2301type Step struct {
2302	// CompletionTime: The time when the step status was set to
2303	// complete.
2304	//
2305	// This value will be set automatically when state transitions to
2306	// COMPLETE.
2307	//
2308	// - In response: set if the execution state is COMPLETE. - In
2309	// create/update request: never set
2310	CompletionTime *Timestamp `json:"completionTime,omitempty"`
2311
2312	// CreationTime: The time when the step was created.
2313	//
2314	// - In response: always set - In create/update request: never set
2315	CreationTime *Timestamp `json:"creationTime,omitempty"`
2316
2317	// Description: A description of this tool For example: mvn clean
2318	// package -D skipTests=true
2319	//
2320	// - In response: present if set by create/update request - In
2321	// create/update request: optional
2322	Description string `json:"description,omitempty"`
2323
2324	// DeviceUsageDuration: How much the device resource is used to perform
2325	// the test.
2326	//
2327	// This is the device usage used for billing purpose, which is different
2328	// from the run_duration, for example, infrastructure failure won't be
2329	// charged for device usage.
2330	//
2331	// PRECONDITION_FAILED will be returned if one attempts to set a
2332	// device_usage on a step which already has this field set.
2333	//
2334	// - In response: present if previously set. - In create request:
2335	// optional - In update request: optional
2336	DeviceUsageDuration *Duration `json:"deviceUsageDuration,omitempty"`
2337
2338	// DimensionValue: If the execution containing this step has any
2339	// dimension_definition set, then this field allows the child to specify
2340	// the values of the dimensions.
2341	//
2342	// The keys must exactly match the dimension_definition of the
2343	// execution.
2344	//
2345	// For example, if the execution has `dimension_definition = ['attempt',
2346	// 'device']` then a step must define values for those dimensions, eg.
2347	// `dimension_value = ['attempt': '1', 'device': 'Nexus 6']`
2348	//
2349	// If a step does not participate in one dimension of the matrix, the
2350	// value for that dimension should be empty string. For example, if one
2351	// of the tests is executed by a runner which does not support retries,
2352	// the step could have `dimension_value = ['attempt': '', 'device':
2353	// 'Nexus 6']`
2354	//
2355	// If the step does not participate in any dimensions of the matrix, it
2356	// may leave dimension_value unset.
2357	//
2358	// A PRECONDITION_FAILED will be returned if any of the keys do not
2359	// exist in the dimension_definition of the execution.
2360	//
2361	// A PRECONDITION_FAILED will be returned if another step in this
2362	// execution already has the same name and dimension_value, but differs
2363	// on other data fields, for example, step field is different.
2364	//
2365	// A PRECONDITION_FAILED will be returned if dimension_value is set, and
2366	// there is a dimension_definition in the execution which is not
2367	// specified as one of the keys.
2368	//
2369	// - In response: present if set by create - In create request: optional
2370	// - In update request: never set
2371	DimensionValue []*StepDimensionValueEntry `json:"dimensionValue,omitempty"`
2372
2373	// HasImages: Whether any of the outputs of this step are images whose
2374	// thumbnails can be fetched with ListThumbnails.
2375	//
2376	// - In response: always set - In create/update request: never set
2377	HasImages bool `json:"hasImages,omitempty"`
2378
2379	// Labels: Arbitrary user-supplied key/value pairs that are associated
2380	// with the step.
2381	//
2382	// Users are responsible for managing the key namespace such that keys
2383	// don't accidentally collide.
2384	//
2385	// An INVALID_ARGUMENT will be returned if the number of labels exceeds
2386	// 100 or if the length of any of the keys or values exceeds 100
2387	// characters.
2388	//
2389	// - In response: always set - In create request: optional - In update
2390	// request: optional; any new key/value pair will be added to the map,
2391	// and any new value for an existing key will update that key's value
2392	Labels []*StepLabelsEntry `json:"labels,omitempty"`
2393
2394	// MultiStep: Details when multiple steps are run with the same
2395	// configuration as a group. These details can be used identify which
2396	// group this step is part of. It also identifies the groups 'primary
2397	// step' which indexes all the group members.
2398	//
2399	// - In response: present if previously set. - In create request:
2400	// optional, set iff this step was performed more than once. - In update
2401	// request: optional
2402	MultiStep *MultiStep `json:"multiStep,omitempty"`
2403
2404	// Name: A short human-readable name to display in the UI. Maximum of
2405	// 100 characters. For example: Clean build
2406	//
2407	// A PRECONDITION_FAILED will be returned upon creating a new step if it
2408	// shares its name and dimension_value with an existing step. If two
2409	// steps represent a similar action, but have different dimension
2410	// values, they should share the same name. For instance, if the same
2411	// set of tests is run on two different platforms, the two steps should
2412	// have the same name.
2413	//
2414	// - In response: always set - In create request: always set - In update
2415	// request: never set
2416	Name string `json:"name,omitempty"`
2417
2418	// Outcome: Classification of the result, for example into SUCCESS or
2419	// FAILURE
2420	//
2421	// - In response: present if set by create/update request - In
2422	// create/update request: optional
2423	Outcome *Outcome `json:"outcome,omitempty"`
2424
2425	// RunDuration: How long it took for this step to run.
2426	//
2427	// If unset, this is set to the difference between creation_time and
2428	// completion_time when the step is set to the COMPLETE state. In some
2429	// cases, it is appropriate to set this value separately: For instance,
2430	// if a step is created, but the operation it represents is queued for a
2431	// few minutes before it executes, it would be appropriate not to
2432	// include the time spent queued in its
2433	// run_duration.
2434	//
2435	// PRECONDITION_FAILED will be returned if one attempts to set a
2436	// run_duration on a step which already has this field set.
2437	//
2438	// - In response: present if previously set; always present on COMPLETE
2439	// step - In create request: optional - In update request: optional
2440	RunDuration *Duration `json:"runDuration,omitempty"`
2441
2442	// State: The initial state is IN_PROGRESS. The only legal state
2443	// transitions are * IN_PROGRESS -> COMPLETE
2444	//
2445	// A PRECONDITION_FAILED will be returned if an invalid transition is
2446	// requested.
2447	//
2448	// It is valid to create Step with a state set to COMPLETE. The state
2449	// can only be set to COMPLETE once. A PRECONDITION_FAILED will be
2450	// returned if the state is set to COMPLETE multiple times.
2451	//
2452	// - In response: always set - In create/update request: optional
2453	//
2454	// Possible values:
2455	//   "complete"
2456	//   "inProgress"
2457	//   "pending"
2458	//   "unknownState"
2459	State string `json:"state,omitempty"`
2460
2461	// StepId: A unique identifier within a Execution for this
2462	// Step.
2463	//
2464	// Returns INVALID_ARGUMENT if this field is set or overwritten by the
2465	// caller.
2466	//
2467	// - In response: always set - In create/update request: never set
2468	StepId string `json:"stepId,omitempty"`
2469
2470	// TestExecutionStep: An execution of a test runner.
2471	TestExecutionStep *TestExecutionStep `json:"testExecutionStep,omitempty"`
2472
2473	// ToolExecutionStep: An execution of a tool (used for steps we don't
2474	// explicitly support).
2475	ToolExecutionStep *ToolExecutionStep `json:"toolExecutionStep,omitempty"`
2476
2477	// ServerResponse contains the HTTP response code and headers from the
2478	// server.
2479	googleapi.ServerResponse `json:"-"`
2480
2481	// ForceSendFields is a list of field names (e.g. "CompletionTime") to
2482	// unconditionally include in API requests. By default, fields with
2483	// empty values are omitted from API requests. However, any non-pointer,
2484	// non-interface field appearing in ForceSendFields will be sent to the
2485	// server regardless of whether the field is empty or not. This may be
2486	// used to include empty fields in Patch requests.
2487	ForceSendFields []string `json:"-"`
2488
2489	// NullFields is a list of field names (e.g. "CompletionTime") to
2490	// include in API requests with the JSON null value. By default, fields
2491	// with empty values are omitted from API requests. However, any field
2492	// with an empty value appearing in NullFields will be sent to the
2493	// server as null. It is an error if a field in this list has a
2494	// non-empty value. This may be used to include null fields in Patch
2495	// requests.
2496	NullFields []string `json:"-"`
2497}
2498
2499func (s *Step) MarshalJSON() ([]byte, error) {
2500	type NoMethod Step
2501	raw := NoMethod(*s)
2502	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2503}
2504
2505type StepDimensionValueEntry struct {
2506	Key string `json:"key,omitempty"`
2507
2508	Value string `json:"value,omitempty"`
2509
2510	// ForceSendFields is a list of field names (e.g. "Key") to
2511	// unconditionally include in API requests. By default, fields with
2512	// empty values are omitted from API requests. However, any non-pointer,
2513	// non-interface field appearing in ForceSendFields will be sent to the
2514	// server regardless of whether the field is empty or not. This may be
2515	// used to include empty fields in Patch requests.
2516	ForceSendFields []string `json:"-"`
2517
2518	// NullFields is a list of field names (e.g. "Key") to include in API
2519	// requests with the JSON null value. By default, fields with empty
2520	// values are omitted from API requests. However, any field with an
2521	// empty value appearing in NullFields will be sent to the server as
2522	// null. It is an error if a field in this list has a non-empty value.
2523	// This may be used to include null fields in Patch requests.
2524	NullFields []string `json:"-"`
2525}
2526
2527func (s *StepDimensionValueEntry) MarshalJSON() ([]byte, error) {
2528	type NoMethod StepDimensionValueEntry
2529	raw := NoMethod(*s)
2530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2531}
2532
2533type StepLabelsEntry struct {
2534	Key string `json:"key,omitempty"`
2535
2536	Value string `json:"value,omitempty"`
2537
2538	// ForceSendFields is a list of field names (e.g. "Key") to
2539	// unconditionally include in API requests. By default, fields with
2540	// empty values are omitted from API requests. However, any non-pointer,
2541	// non-interface field appearing in ForceSendFields will be sent to the
2542	// server regardless of whether the field is empty or not. This may be
2543	// used to include empty fields in Patch requests.
2544	ForceSendFields []string `json:"-"`
2545
2546	// NullFields is a list of field names (e.g. "Key") to include in API
2547	// requests with the JSON null value. By default, fields with empty
2548	// values are omitted from API requests. However, any field with an
2549	// empty value appearing in NullFields will be sent to the server as
2550	// null. It is an error if a field in this list has a non-empty value.
2551	// This may be used to include null fields in Patch requests.
2552	NullFields []string `json:"-"`
2553}
2554
2555func (s *StepLabelsEntry) MarshalJSON() ([]byte, error) {
2556	type NoMethod StepLabelsEntry
2557	raw := NoMethod(*s)
2558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2559}
2560
2561// SuccessDetail: Details for an outcome with a SUCCESS outcome summary.
2562type SuccessDetail struct {
2563	// OtherNativeCrash: If a native process other than the app crashed.
2564	OtherNativeCrash bool `json:"otherNativeCrash,omitempty"`
2565
2566	// ForceSendFields is a list of field names (e.g. "OtherNativeCrash") to
2567	// 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. "OtherNativeCrash") 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 *SuccessDetail) MarshalJSON() ([]byte, error) {
2585	type NoMethod SuccessDetail
2586	raw := NoMethod(*s)
2587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2588}
2589
2590type TestCase struct {
2591	// EndTime: The end time of the test case.
2592	//
2593	// Optional.
2594	EndTime *Timestamp `json:"endTime,omitempty"`
2595
2596	// SkippedMessage: Why the test case was skipped.
2597	//
2598	// Present only for skipped test case
2599	SkippedMessage string `json:"skippedMessage,omitempty"`
2600
2601	// StackTraces: The stack trace details if the test case failed or
2602	// encountered an error.
2603	//
2604	// The maximum size of the stack traces is 100KiB, beyond which the
2605	// stack track will be truncated.
2606	//
2607	// Zero if the test case passed.
2608	StackTraces []*StackTrace `json:"stackTraces,omitempty"`
2609
2610	// StartTime: The start time of the test case.
2611	//
2612	// Optional.
2613	StartTime *Timestamp `json:"startTime,omitempty"`
2614
2615	// Status: The status of the test case.
2616	//
2617	// Required.
2618	//
2619	// Possible values:
2620	//   "error"
2621	//   "failed"
2622	//   "flaky"
2623	//   "passed"
2624	//   "skipped"
2625	Status string `json:"status,omitempty"`
2626
2627	// TestCaseId: A unique identifier within a Step for this Test Case.
2628	TestCaseId string `json:"testCaseId,omitempty"`
2629
2630	// TestCaseReference: Test case reference, e.g. name, class name and
2631	// test suite name.
2632	//
2633	// Required.
2634	TestCaseReference *TestCaseReference `json:"testCaseReference,omitempty"`
2635
2636	// ToolOutputs: References to opaque files of any format output by the
2637	// tool execution.
2638	ToolOutputs []*ToolOutputReference `json:"toolOutputs,omitempty"`
2639
2640	// ServerResponse contains the HTTP response code and headers from the
2641	// server.
2642	googleapi.ServerResponse `json:"-"`
2643
2644	// ForceSendFields is a list of field names (e.g. "EndTime") to
2645	// unconditionally include in API requests. By default, fields with
2646	// empty values are omitted from API requests. However, any non-pointer,
2647	// non-interface field appearing in ForceSendFields will be sent to the
2648	// server regardless of whether the field is empty or not. This may be
2649	// used to include empty fields in Patch requests.
2650	ForceSendFields []string `json:"-"`
2651
2652	// NullFields is a list of field names (e.g. "EndTime") to include in
2653	// API requests with the JSON null value. By default, fields with empty
2654	// values are omitted from API requests. However, any field with an
2655	// empty value appearing in NullFields will be sent to the server as
2656	// null. It is an error if a field in this list has a non-empty value.
2657	// This may be used to include null fields in Patch requests.
2658	NullFields []string `json:"-"`
2659}
2660
2661func (s *TestCase) MarshalJSON() ([]byte, error) {
2662	type NoMethod TestCase
2663	raw := NoMethod(*s)
2664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2665}
2666
2667// TestCaseReference: A reference to a test case.
2668//
2669// Test case references are canonically ordered lexicographically by
2670// these three factors: * First, by test_suite_name. * Second, by
2671// class_name. * Third, by name.
2672type TestCaseReference struct {
2673	// ClassName: The name of the class.
2674	ClassName string `json:"className,omitempty"`
2675
2676	// Name: The name of the test case.
2677	//
2678	// Required.
2679	Name string `json:"name,omitempty"`
2680
2681	// TestSuiteName: The name of the test suite to which this test case
2682	// belongs.
2683	TestSuiteName string `json:"testSuiteName,omitempty"`
2684
2685	// ForceSendFields is a list of field names (e.g. "ClassName") to
2686	// unconditionally include in API requests. By default, fields with
2687	// empty values are omitted from API requests. However, any non-pointer,
2688	// non-interface field appearing in ForceSendFields will be sent to the
2689	// server regardless of whether the field is empty or not. This may be
2690	// used to include empty fields in Patch requests.
2691	ForceSendFields []string `json:"-"`
2692
2693	// NullFields is a list of field names (e.g. "ClassName") to include in
2694	// API requests with the JSON null value. By default, fields with empty
2695	// values are omitted from API requests. However, any field with an
2696	// empty value appearing in NullFields will be sent to the server as
2697	// null. It is an error if a field in this list has a non-empty value.
2698	// This may be used to include null fields in Patch requests.
2699	NullFields []string `json:"-"`
2700}
2701
2702func (s *TestCaseReference) MarshalJSON() ([]byte, error) {
2703	type NoMethod TestCaseReference
2704	raw := NoMethod(*s)
2705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2706}
2707
2708// TestExecutionStep: A step that represents running tests.
2709//
2710// It accepts ant-junit xml files which will be parsed into structured
2711// test results by the service. Xml file paths are updated in order to
2712// append more files, however they can't be deleted.
2713//
2714// Users can also add test results manually by using the test_result
2715// field.
2716type TestExecutionStep struct {
2717	// TestIssues: Issues observed during the test execution.
2718	//
2719	// For example, if the mobile app under test crashed during the test,
2720	// the error message and the stack trace content can be recorded here to
2721	// assist debugging.
2722	//
2723	// - In response: present if set by create or update - In create/update
2724	// request: optional
2725	TestIssues []*TestIssue `json:"testIssues,omitempty"`
2726
2727	// TestSuiteOverviews: List of test suite overview contents. This could
2728	// be parsed from xUnit XML log by server, or uploaded directly by user.
2729	// This references should only be called when test suites are fully
2730	// parsed or uploaded.
2731	//
2732	// The maximum allowed number of test suite overviews per step is
2733	// 1000.
2734	//
2735	// - In response: always set - In create request: optional - In update
2736	// request: never (use publishXunitXmlFiles custom method instead)
2737	TestSuiteOverviews []*TestSuiteOverview `json:"testSuiteOverviews,omitempty"`
2738
2739	// TestTiming: The timing break down of the test execution.
2740	//
2741	// - In response: present if set by create or update - In create/update
2742	// request: optional
2743	TestTiming *TestTiming `json:"testTiming,omitempty"`
2744
2745	// ToolExecution: Represents the execution of the test runner.
2746	//
2747	// The exit code of this tool will be used to determine if the test
2748	// passed.
2749	//
2750	// - In response: always set - In create/update request: optional
2751	ToolExecution *ToolExecution `json:"toolExecution,omitempty"`
2752
2753	// ForceSendFields is a list of field names (e.g. "TestIssues") to
2754	// unconditionally include in API requests. By default, fields with
2755	// empty values are omitted from API requests. However, any non-pointer,
2756	// non-interface field appearing in ForceSendFields will be sent to the
2757	// server regardless of whether the field is empty or not. This may be
2758	// used to include empty fields in Patch requests.
2759	ForceSendFields []string `json:"-"`
2760
2761	// NullFields is a list of field names (e.g. "TestIssues") to include in
2762	// API requests with the JSON null value. By default, fields with empty
2763	// values are omitted from API requests. However, any field with an
2764	// empty value appearing in NullFields will be sent to the server as
2765	// null. It is an error if a field in this list has a non-empty value.
2766	// This may be used to include null fields in Patch requests.
2767	NullFields []string `json:"-"`
2768}
2769
2770func (s *TestExecutionStep) MarshalJSON() ([]byte, error) {
2771	type NoMethod TestExecutionStep
2772	raw := NoMethod(*s)
2773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2774}
2775
2776// TestIssue: An issue detected occurring during a test execution.
2777type TestIssue struct {
2778	// Category: Category of issue. Required.
2779	//
2780	// Possible values:
2781	//   "common"
2782	//   "robo"
2783	//   "unspecifiedCategory"
2784	Category string `json:"category,omitempty"`
2785
2786	// ErrorMessage: A brief human-readable message describing the issue.
2787	// Required.
2788	ErrorMessage string `json:"errorMessage,omitempty"`
2789
2790	// Severity: Severity of issue. Required.
2791	//
2792	// Possible values:
2793	//   "info"
2794	//   "severe"
2795	//   "suggestion"
2796	//   "unspecifiedSeverity"
2797	//   "warning"
2798	Severity string `json:"severity,omitempty"`
2799
2800	// StackTrace: Deprecated in favor of stack trace fields inside specific
2801	// warnings.
2802	StackTrace *StackTrace `json:"stackTrace,omitempty"`
2803
2804	// Type: Type of issue. Required.
2805	//
2806	// Possible values:
2807	//   "anr"
2808	//   "availableDeepLinks"
2809	//   "compatibleWithOrchestrator"
2810	//   "completeRoboScriptExecution"
2811	//   "encounteredLoginScreen"
2812	//   "encounteredNonAndroidUiWidgetScreen"
2813	//   "failedToInstall"
2814	//   "fatalException"
2815	//   "inAppPurchases"
2816	//   "incompleteRoboScriptExecution"
2817	//   "insufficientCoverage"
2818	//   "iosCrash"
2819	//   "iosException"
2820	//   "launcherActivityNotFound"
2821	//   "nativeCrash"
2822	//   "nonSdkApiUsageReport"
2823	//   "nonSdkApiUsageViolation"
2824	//   "performedGoogleLogin"
2825	//   "performedMonkeyActions"
2826	//   "startActivityNotFound"
2827	//   "unspecifiedType"
2828	//   "unusedRoboDirective"
2829	//   "usedRoboDirective"
2830	//   "usedRoboIgnoreDirective"
2831	Type string `json:"type,omitempty"`
2832
2833	// Warning: Warning message with additional details of the issue. Should
2834	// always be a message from com.google.devtools.toolresults.v1.warnings
2835	Warning *Any `json:"warning,omitempty"`
2836
2837	// ForceSendFields is a list of field names (e.g. "Category") to
2838	// unconditionally include in API requests. By default, fields with
2839	// empty values are omitted from API requests. However, any non-pointer,
2840	// non-interface field appearing in ForceSendFields will be sent to the
2841	// server regardless of whether the field is empty or not. This may be
2842	// used to include empty fields in Patch requests.
2843	ForceSendFields []string `json:"-"`
2844
2845	// NullFields is a list of field names (e.g. "Category") to include in
2846	// API requests with the JSON null value. By default, fields with empty
2847	// values are omitted from API requests. However, any field with an
2848	// empty value appearing in NullFields will be sent to the server as
2849	// null. It is an error if a field in this list has a non-empty value.
2850	// This may be used to include null fields in Patch requests.
2851	NullFields []string `json:"-"`
2852}
2853
2854func (s *TestIssue) MarshalJSON() ([]byte, error) {
2855	type NoMethod TestIssue
2856	raw := NoMethod(*s)
2857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2858}
2859
2860// TestSuiteOverview: A summary of a test suite result either parsed
2861// from XML or uploaded directly by a user.
2862//
2863// Note: the API related comments are for StepService only. This message
2864// is also being used in ExecutionService in a read only mode for the
2865// corresponding step.
2866type TestSuiteOverview struct {
2867	// ElapsedTime: Elapsed time of test suite.
2868	ElapsedTime *Duration `json:"elapsedTime,omitempty"`
2869
2870	// ErrorCount: Number of test cases in error, typically set by the
2871	// service by parsing the xml_source.
2872	//
2873	// - In create/response: always set - In update request: never
2874	ErrorCount int64 `json:"errorCount,omitempty"`
2875
2876	// FailureCount: Number of failed test cases, typically set by the
2877	// service by parsing the xml_source. May also be set by the user.
2878	//
2879	// - In create/response: always set - In update request: never
2880	FailureCount int64 `json:"failureCount,omitempty"`
2881
2882	// Name: The name of the test suite.
2883	//
2884	// - In create/response: always set - In update request: never
2885	Name string `json:"name,omitempty"`
2886
2887	// SkippedCount: Number of test cases not run, typically set by the
2888	// service by parsing the xml_source.
2889	//
2890	// - In create/response: always set - In update request: never
2891	SkippedCount int64 `json:"skippedCount,omitempty"`
2892
2893	// TotalCount: Number of test cases, typically set by the service by
2894	// parsing the xml_source.
2895	//
2896	// - In create/response: always set - In update request: never
2897	TotalCount int64 `json:"totalCount,omitempty"`
2898
2899	// XmlSource: If this test suite was parsed from XML, this is the URI
2900	// where the original XML file is stored.
2901	//
2902	// Note: Multiple test suites can share the same xml_source
2903	//
2904	// Returns INVALID_ARGUMENT if the uri format is not supported.
2905	//
2906	// - In create/response: optional - In update request: never
2907	XmlSource *FileReference `json:"xmlSource,omitempty"`
2908
2909	// ForceSendFields is a list of field names (e.g. "ElapsedTime") 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. "ElapsedTime") 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 *TestSuiteOverview) MarshalJSON() ([]byte, error) {
2927	type NoMethod TestSuiteOverview
2928	raw := NoMethod(*s)
2929	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2930}
2931
2932// TestTiming: Testing timing break down to know phases.
2933type TestTiming struct {
2934	// TestProcessDuration: How long it took to run the test process.
2935	//
2936	// - In response: present if previously set. - In create/update request:
2937	// optional
2938	TestProcessDuration *Duration `json:"testProcessDuration,omitempty"`
2939
2940	// ForceSendFields is a list of field names (e.g. "TestProcessDuration")
2941	// to unconditionally include in API requests. By default, fields with
2942	// empty values are omitted from API requests. However, any non-pointer,
2943	// non-interface field appearing in ForceSendFields will be sent to the
2944	// server regardless of whether the field is empty or not. This may be
2945	// used to include empty fields in Patch requests.
2946	ForceSendFields []string `json:"-"`
2947
2948	// NullFields is a list of field names (e.g. "TestProcessDuration") to
2949	// include in API requests with the JSON null value. By default, fields
2950	// with empty values are omitted from API requests. However, any field
2951	// with an empty value appearing in NullFields will be sent to the
2952	// server as null. It is an error if a field in this list has a
2953	// non-empty value. This may be used to include null fields in Patch
2954	// requests.
2955	NullFields []string `json:"-"`
2956}
2957
2958func (s *TestTiming) MarshalJSON() ([]byte, error) {
2959	type NoMethod TestTiming
2960	raw := NoMethod(*s)
2961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2962}
2963
2964// Thumbnail: A single thumbnail, with its size and format.
2965type Thumbnail struct {
2966	// ContentType: The thumbnail's content type, i.e. "image/png".
2967	//
2968	// Always set.
2969	ContentType string `json:"contentType,omitempty"`
2970
2971	// Data: The thumbnail file itself.
2972	//
2973	// That is, the bytes here are precisely the bytes that make up the
2974	// thumbnail file; they can be served as an image as-is (with the
2975	// appropriate content type.)
2976	//
2977	// Always set.
2978	Data string `json:"data,omitempty"`
2979
2980	// HeightPx: The height of the thumbnail, in pixels.
2981	//
2982	// Always set.
2983	HeightPx int64 `json:"heightPx,omitempty"`
2984
2985	// WidthPx: The width of the thumbnail, in pixels.
2986	//
2987	// Always set.
2988	WidthPx int64 `json:"widthPx,omitempty"`
2989
2990	// ForceSendFields is a list of field names (e.g. "ContentType") to
2991	// unconditionally include in API requests. By default, fields with
2992	// empty values are omitted from API requests. However, any non-pointer,
2993	// non-interface field appearing in ForceSendFields will be sent to the
2994	// server regardless of whether the field is empty or not. This may be
2995	// used to include empty fields in Patch requests.
2996	ForceSendFields []string `json:"-"`
2997
2998	// NullFields is a list of field names (e.g. "ContentType") to include
2999	// in API requests with the JSON null value. By default, fields with
3000	// empty values are omitted from API requests. However, any field with
3001	// an empty value appearing in NullFields will be sent to the server as
3002	// null. It is an error if a field in this list has a non-empty value.
3003	// This may be used to include null fields in Patch requests.
3004	NullFields []string `json:"-"`
3005}
3006
3007func (s *Thumbnail) MarshalJSON() ([]byte, error) {
3008	type NoMethod Thumbnail
3009	raw := NoMethod(*s)
3010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3011}
3012
3013// Timestamp: A Timestamp represents a point in time independent of any
3014// time zone or local calendar, encoded as a count of seconds and
3015// fractions of seconds at nanosecond resolution. The count is relative
3016// to an epoch at UTC midnight on January 1, 1970, in the proleptic
3017// Gregorian calendar which extends the Gregorian calendar backwards to
3018// year one.
3019//
3020// All minutes are 60 seconds long. Leap seconds are "smeared" so that
3021// no leap second table is needed for interpretation, using a [24-hour
3022// linear smear](https://developers.google.com/time/smear).
3023//
3024// The range is from 0001-01-01T00:00:00Z to
3025// 9999-12-31T23:59:59.999999999Z. By restricting to that range, we
3026// ensure that we can convert to and from [RFC
3027// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
3028//
3029// # Examples
3030//
3031// Example 1: Compute Timestamp from POSIX `time()`.
3032//
3033// Timestamp timestamp; timestamp.set_seconds(time(NULL));
3034// timestamp.set_nanos(0);
3035//
3036// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
3037//
3038// struct timeval tv; gettimeofday(&tv, NULL);
3039//
3040// Timestamp timestamp; timestamp.set_seconds(tv.tv_sec);
3041// timestamp.set_nanos(tv.tv_usec * 1000);
3042//
3043// Example 3: Compute Timestamp from Win32
3044// `GetSystemTimeAsFileTime()`.
3045//
3046// FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks =
3047// (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
3048//
3049// // A Windows tick is 100 nanoseconds. Windows epoch
3050// 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch
3051// 1970-01-01T00:00:00Z. Timestamp timestamp;
3052// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
3053// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
3054//
3055// Example 4: Compute Timestamp from Java
3056// `System.currentTimeMillis()`.
3057//
3058// long millis = System.currentTimeMillis();
3059//
3060// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis /
3061// 1000) .setNanos((int) ((millis % 1000) *
3062// 1000000)).build();
3063//
3064//
3065//
3066// Example 5: Compute Timestamp from current time in Python.
3067//
3068// timestamp = Timestamp() timestamp.GetCurrentTime()
3069//
3070// # JSON Mapping
3071//
3072// In JSON format, the Timestamp type is encoded as a string in the [RFC
3073// 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
3074// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
3075// where {year} is always expressed using four digits while {month},
3076// {day}, {hour}, {min}, and {sec} are zero-padded to two digits each.
3077// The fractional seconds, which can go up to 9 digits (i.e. up to 1
3078// nanosecond resolution), are optional. The "Z" suffix indicates the
3079// timezone ("UTC"); the timezone is required. A proto3 JSON serializer
3080// should always use UTC (as indicated by "Z") when printing the
3081// Timestamp type and a proto3 JSON parser should be able to accept both
3082// UTC and other timezones (as indicated by an offset).
3083//
3084// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
3085// 01:30 UTC on January 15, 2017.
3086//
3087// In JavaScript, one can convert a Date object to this format using the
3088// standard
3089// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScrip
3090// t/Reference/Global_Objects/Date/toISOString) method. In Python, a
3091// standard `datetime.datetime` object can be converted to this format
3092// using
3093// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime
3094// ) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in
3095// Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
3096// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D ) to obtain a formatter capable of generating timestamps in this
3097// format.
3098type Timestamp struct {
3099	// Nanos: Non-negative fractions of a second at nanosecond resolution.
3100	// Negative second values with fractions must still have non-negative
3101	// nanos values that count forward in time. Must be from 0 to
3102	// 999,999,999 inclusive.
3103	Nanos int64 `json:"nanos,omitempty"`
3104
3105	// Seconds: Represents seconds of UTC time since Unix epoch
3106	// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
3107	// 9999-12-31T23:59:59Z inclusive.
3108	Seconds int64 `json:"seconds,omitempty,string"`
3109
3110	// ForceSendFields is a list of field names (e.g. "Nanos") to
3111	// unconditionally include in API requests. By default, fields with
3112	// empty values are omitted from API requests. However, any non-pointer,
3113	// non-interface field appearing in ForceSendFields will be sent to the
3114	// server regardless of whether the field is empty or not. This may be
3115	// used to include empty fields in Patch requests.
3116	ForceSendFields []string `json:"-"`
3117
3118	// NullFields is a list of field names (e.g. "Nanos") to include in API
3119	// requests with the JSON null value. By default, fields with empty
3120	// values are omitted from API requests. However, any field with an
3121	// empty value appearing in NullFields will be sent to the server as
3122	// null. It is an error if a field in this list has a non-empty value.
3123	// This may be used to include null fields in Patch requests.
3124	NullFields []string `json:"-"`
3125}
3126
3127func (s *Timestamp) MarshalJSON() ([]byte, error) {
3128	type NoMethod Timestamp
3129	raw := NoMethod(*s)
3130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3131}
3132
3133// ToolExecution: An execution of an arbitrary tool. It could be a test
3134// runner or a tool copying artifacts or deploying code.
3135type ToolExecution struct {
3136	// CommandLineArguments: The full tokenized command line including the
3137	// program name (equivalent to argv in a C program).
3138	//
3139	// - In response: present if set by create request - In create request:
3140	// optional - In update request: never set
3141	CommandLineArguments []string `json:"commandLineArguments,omitempty"`
3142
3143	// ExitCode: Tool execution exit code. This field will be set once the
3144	// tool has exited.
3145	//
3146	// - In response: present if set by create/update request - In create
3147	// request: optional - In update request: optional, a
3148	// FAILED_PRECONDITION error will be returned if an exit_code is already
3149	// set.
3150	ExitCode *ToolExitCode `json:"exitCode,omitempty"`
3151
3152	// ToolLogs: References to any plain text logs output the tool
3153	// execution.
3154	//
3155	// This field can be set before the tool has exited in order to be able
3156	// to have access to a live view of the logs while the tool is
3157	// running.
3158	//
3159	// The maximum allowed number of tool logs per step is 1000.
3160	//
3161	// - In response: present if set by create/update request - In create
3162	// request: optional - In update request: optional, any value provided
3163	// will be appended to the existing list
3164	ToolLogs []*FileReference `json:"toolLogs,omitempty"`
3165
3166	// ToolOutputs: References to opaque files of any format output by the
3167	// tool execution.
3168	//
3169	// The maximum allowed number of tool outputs per step is 1000.
3170	//
3171	// - In response: present if set by create/update request - In create
3172	// request: optional - In update request: optional, any value provided
3173	// will be appended to the existing list
3174	ToolOutputs []*ToolOutputReference `json:"toolOutputs,omitempty"`
3175
3176	// ForceSendFields is a list of field names (e.g.
3177	// "CommandLineArguments") to unconditionally include in API requests.
3178	// By default, fields with empty values are omitted from API requests.
3179	// However, any non-pointer, non-interface field appearing in
3180	// ForceSendFields will be sent to the server regardless of whether the
3181	// field is empty or not. This may be used to include empty fields in
3182	// Patch requests.
3183	ForceSendFields []string `json:"-"`
3184
3185	// NullFields is a list of field names (e.g. "CommandLineArguments") to
3186	// include in API requests with the JSON null value. By default, fields
3187	// with empty values are omitted from API requests. However, any field
3188	// with an empty value appearing in NullFields will be sent to the
3189	// server as null. It is an error if a field in this list has a
3190	// non-empty value. This may be used to include null fields in Patch
3191	// requests.
3192	NullFields []string `json:"-"`
3193}
3194
3195func (s *ToolExecution) MarshalJSON() ([]byte, error) {
3196	type NoMethod ToolExecution
3197	raw := NoMethod(*s)
3198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3199}
3200
3201// ToolExecutionStep: Generic tool step to be used for binaries we do
3202// not explicitly support. For example: running cp to copy artifacts
3203// from one location to another.
3204type ToolExecutionStep struct {
3205	// ToolExecution: A Tool execution.
3206	//
3207	// - In response: present if set by create/update request - In
3208	// create/update request: optional
3209	ToolExecution *ToolExecution `json:"toolExecution,omitempty"`
3210
3211	// ForceSendFields is a list of field names (e.g. "ToolExecution") to
3212	// unconditionally include in API requests. By default, fields with
3213	// empty values are omitted from API requests. However, any non-pointer,
3214	// non-interface field appearing in ForceSendFields will be sent to the
3215	// server regardless of whether the field is empty or not. This may be
3216	// used to include empty fields in Patch requests.
3217	ForceSendFields []string `json:"-"`
3218
3219	// NullFields is a list of field names (e.g. "ToolExecution") to include
3220	// in API requests with the JSON null value. By default, fields with
3221	// empty values are omitted from API requests. However, any field with
3222	// an empty value appearing in NullFields will be sent to the server as
3223	// null. It is an error if a field in this list has a non-empty value.
3224	// This may be used to include null fields in Patch requests.
3225	NullFields []string `json:"-"`
3226}
3227
3228func (s *ToolExecutionStep) MarshalJSON() ([]byte, error) {
3229	type NoMethod ToolExecutionStep
3230	raw := NoMethod(*s)
3231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3232}
3233
3234// ToolExitCode: Exit code from a tool execution.
3235type ToolExitCode struct {
3236	// Number: Tool execution exit code. A value of 0 means that the
3237	// execution was successful.
3238	//
3239	// - In response: always set - In create/update request: always set
3240	Number int64 `json:"number,omitempty"`
3241
3242	// ForceSendFields is a list of field names (e.g. "Number") to
3243	// unconditionally include in API requests. By default, fields with
3244	// empty values are omitted from API requests. However, any non-pointer,
3245	// non-interface field appearing in ForceSendFields will be sent to the
3246	// server regardless of whether the field is empty or not. This may be
3247	// used to include empty fields in Patch requests.
3248	ForceSendFields []string `json:"-"`
3249
3250	// NullFields is a list of field names (e.g. "Number") to include in API
3251	// requests with the JSON null value. By default, fields with empty
3252	// values are omitted from API requests. However, any field with an
3253	// empty value appearing in NullFields will be sent to the server as
3254	// null. It is an error if a field in this list has a non-empty value.
3255	// This may be used to include null fields in Patch requests.
3256	NullFields []string `json:"-"`
3257}
3258
3259func (s *ToolExitCode) MarshalJSON() ([]byte, error) {
3260	type NoMethod ToolExitCode
3261	raw := NoMethod(*s)
3262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3263}
3264
3265// ToolOutputReference: A reference to a ToolExecution output file.
3266type ToolOutputReference struct {
3267	// CreationTime: The creation time of the file.
3268	//
3269	// - In response: present if set by create/update request - In
3270	// create/update request: optional
3271	CreationTime *Timestamp `json:"creationTime,omitempty"`
3272
3273	// Output: A FileReference to an output file.
3274	//
3275	// - In response: always set - In create/update request: always set
3276	Output *FileReference `json:"output,omitempty"`
3277
3278	// TestCase: The test case to which this output file belongs.
3279	//
3280	// - In response: present if set by create/update request - In
3281	// create/update request: optional
3282	TestCase *TestCaseReference `json:"testCase,omitempty"`
3283
3284	// ForceSendFields is a list of field names (e.g. "CreationTime") to
3285	// unconditionally include in API requests. By default, fields with
3286	// empty values are omitted from API requests. However, any non-pointer,
3287	// non-interface field appearing in ForceSendFields will be sent to the
3288	// server regardless of whether the field is empty or not. This may be
3289	// used to include empty fields in Patch requests.
3290	ForceSendFields []string `json:"-"`
3291
3292	// NullFields is a list of field names (e.g. "CreationTime") to include
3293	// in API requests with the JSON null value. By default, fields with
3294	// empty values are omitted from API requests. However, any field with
3295	// an empty value appearing in NullFields will be sent to the server as
3296	// null. It is an error if a field in this list has a non-empty value.
3297	// This may be used to include null fields in Patch requests.
3298	NullFields []string `json:"-"`
3299}
3300
3301func (s *ToolOutputReference) MarshalJSON() ([]byte, error) {
3302	type NoMethod ToolOutputReference
3303	raw := NoMethod(*s)
3304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3305}
3306
3307// method id "toolresults.projects.getSettings":
3308
3309type ProjectsGetSettingsCall struct {
3310	s            *Service
3311	projectId    string
3312	urlParams_   gensupport.URLParams
3313	ifNoneMatch_ string
3314	ctx_         context.Context
3315	header_      http.Header
3316}
3317
3318// GetSettings: Gets the Tool Results settings for a project.
3319//
3320// May return any of the following canonical error codes:
3321//
3322// - PERMISSION_DENIED - if the user is not authorized to read from
3323// project
3324func (r *ProjectsService) GetSettings(projectId string) *ProjectsGetSettingsCall {
3325	c := &ProjectsGetSettingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3326	c.projectId = projectId
3327	return c
3328}
3329
3330// Fields allows partial responses to be retrieved. See
3331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3332// for more information.
3333func (c *ProjectsGetSettingsCall) Fields(s ...googleapi.Field) *ProjectsGetSettingsCall {
3334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3335	return c
3336}
3337
3338// IfNoneMatch sets the optional parameter which makes the operation
3339// fail if the object's ETag matches the given value. This is useful for
3340// getting updates only after the object has changed since the last
3341// request. Use googleapi.IsNotModified to check whether the response
3342// error from Do is the result of In-None-Match.
3343func (c *ProjectsGetSettingsCall) IfNoneMatch(entityTag string) *ProjectsGetSettingsCall {
3344	c.ifNoneMatch_ = entityTag
3345	return c
3346}
3347
3348// Context sets the context to be used in this call's Do method. Any
3349// pending HTTP request will be aborted if the provided context is
3350// canceled.
3351func (c *ProjectsGetSettingsCall) Context(ctx context.Context) *ProjectsGetSettingsCall {
3352	c.ctx_ = ctx
3353	return c
3354}
3355
3356// Header returns an http.Header that can be modified by the caller to
3357// add HTTP headers to the request.
3358func (c *ProjectsGetSettingsCall) Header() http.Header {
3359	if c.header_ == nil {
3360		c.header_ = make(http.Header)
3361	}
3362	return c.header_
3363}
3364
3365func (c *ProjectsGetSettingsCall) doRequest(alt string) (*http.Response, error) {
3366	reqHeaders := make(http.Header)
3367	for k, v := range c.header_ {
3368		reqHeaders[k] = v
3369	}
3370	reqHeaders.Set("User-Agent", c.s.userAgent())
3371	if c.ifNoneMatch_ != "" {
3372		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3373	}
3374	var body io.Reader = nil
3375	c.urlParams_.Set("alt", alt)
3376	c.urlParams_.Set("prettyPrint", "false")
3377	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/settings")
3378	urls += "?" + c.urlParams_.Encode()
3379	req, err := http.NewRequest("GET", urls, body)
3380	if err != nil {
3381		return nil, err
3382	}
3383	req.Header = reqHeaders
3384	googleapi.Expand(req.URL, map[string]string{
3385		"projectId": c.projectId,
3386	})
3387	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3388}
3389
3390// Do executes the "toolresults.projects.getSettings" call.
3391// Exactly one of *ProjectSettings or error will be non-nil. Any non-2xx
3392// status code is an error. Response headers are in either
3393// *ProjectSettings.ServerResponse.Header or (if a response was returned
3394// at all) in error.(*googleapi.Error).Header. Use
3395// googleapi.IsNotModified to check whether the returned error was
3396// because http.StatusNotModified was returned.
3397func (c *ProjectsGetSettingsCall) Do(opts ...googleapi.CallOption) (*ProjectSettings, error) {
3398	gensupport.SetOptions(c.urlParams_, opts...)
3399	res, err := c.doRequest("json")
3400	if res != nil && res.StatusCode == http.StatusNotModified {
3401		if res.Body != nil {
3402			res.Body.Close()
3403		}
3404		return nil, &googleapi.Error{
3405			Code:   res.StatusCode,
3406			Header: res.Header,
3407		}
3408	}
3409	if err != nil {
3410		return nil, err
3411	}
3412	defer googleapi.CloseBody(res)
3413	if err := googleapi.CheckResponse(res); err != nil {
3414		return nil, err
3415	}
3416	ret := &ProjectSettings{
3417		ServerResponse: googleapi.ServerResponse{
3418			Header:         res.Header,
3419			HTTPStatusCode: res.StatusCode,
3420		},
3421	}
3422	target := &ret
3423	if err := gensupport.DecodeResponse(target, res); err != nil {
3424		return nil, err
3425	}
3426	return ret, nil
3427	// {
3428	//   "description": "Gets the Tool Results settings for a project.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to read from project",
3429	//   "httpMethod": "GET",
3430	//   "id": "toolresults.projects.getSettings",
3431	//   "parameterOrder": [
3432	//     "projectId"
3433	//   ],
3434	//   "parameters": {
3435	//     "projectId": {
3436	//       "description": "A Project id.\n\nRequired.",
3437	//       "location": "path",
3438	//       "required": true,
3439	//       "type": "string"
3440	//     }
3441	//   },
3442	//   "path": "{projectId}/settings",
3443	//   "response": {
3444	//     "$ref": "ProjectSettings"
3445	//   },
3446	//   "scopes": [
3447	//     "https://www.googleapis.com/auth/cloud-platform"
3448	//   ]
3449	// }
3450
3451}
3452
3453// method id "toolresults.projects.initializeSettings":
3454
3455type ProjectsInitializeSettingsCall struct {
3456	s          *Service
3457	projectId  string
3458	urlParams_ gensupport.URLParams
3459	ctx_       context.Context
3460	header_    http.Header
3461}
3462
3463// InitializeSettings: Creates resources for settings which have not yet
3464// been set.
3465//
3466// Currently, this creates a single resource: a Google Cloud Storage
3467// bucket, to be used as the default bucket for this project. The bucket
3468// is created in an FTL-own storage project. Except for in rare cases,
3469// calling this method in parallel from multiple clients will only
3470// create a single bucket. In order to avoid unnecessary storage
3471// charges, the bucket is configured to automatically delete objects
3472// older than 90 days.
3473//
3474// The bucket is created with the following permissions: - Owner access
3475// for owners of central storage project (FTL-owned) - Writer access for
3476// owners/editors of customer project - Reader access for viewers of
3477// customer project The default ACL on objects created in the bucket is:
3478// - Owner access for owners of central storage project - Reader access
3479// for owners/editors/viewers of customer project See Google Cloud
3480// Storage documentation for more details.
3481//
3482// If there is already a default bucket set and the project can access
3483// the bucket, this call does nothing. However, if the project doesn't
3484// have the permission to access the bucket or the bucket is deleted, a
3485// new bucket will be created.
3486//
3487// May return any canonical error codes, including the following:
3488//
3489// - PERMISSION_DENIED - if the user is not authorized to write to
3490// project - Any error code raised by Google Cloud Storage
3491func (r *ProjectsService) InitializeSettings(projectId string) *ProjectsInitializeSettingsCall {
3492	c := &ProjectsInitializeSettingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3493	c.projectId = projectId
3494	return c
3495}
3496
3497// Fields allows partial responses to be retrieved. See
3498// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3499// for more information.
3500func (c *ProjectsInitializeSettingsCall) Fields(s ...googleapi.Field) *ProjectsInitializeSettingsCall {
3501	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3502	return c
3503}
3504
3505// Context sets the context to be used in this call's Do method. Any
3506// pending HTTP request will be aborted if the provided context is
3507// canceled.
3508func (c *ProjectsInitializeSettingsCall) Context(ctx context.Context) *ProjectsInitializeSettingsCall {
3509	c.ctx_ = ctx
3510	return c
3511}
3512
3513// Header returns an http.Header that can be modified by the caller to
3514// add HTTP headers to the request.
3515func (c *ProjectsInitializeSettingsCall) Header() http.Header {
3516	if c.header_ == nil {
3517		c.header_ = make(http.Header)
3518	}
3519	return c.header_
3520}
3521
3522func (c *ProjectsInitializeSettingsCall) doRequest(alt string) (*http.Response, error) {
3523	reqHeaders := make(http.Header)
3524	for k, v := range c.header_ {
3525		reqHeaders[k] = v
3526	}
3527	reqHeaders.Set("User-Agent", c.s.userAgent())
3528	var body io.Reader = nil
3529	c.urlParams_.Set("alt", alt)
3530	c.urlParams_.Set("prettyPrint", "false")
3531	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}:initializeSettings")
3532	urls += "?" + c.urlParams_.Encode()
3533	req, err := http.NewRequest("POST", urls, body)
3534	if err != nil {
3535		return nil, err
3536	}
3537	req.Header = reqHeaders
3538	googleapi.Expand(req.URL, map[string]string{
3539		"projectId": c.projectId,
3540	})
3541	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3542}
3543
3544// Do executes the "toolresults.projects.initializeSettings" call.
3545// Exactly one of *ProjectSettings or error will be non-nil. Any non-2xx
3546// status code is an error. Response headers are in either
3547// *ProjectSettings.ServerResponse.Header or (if a response was returned
3548// at all) in error.(*googleapi.Error).Header. Use
3549// googleapi.IsNotModified to check whether the returned error was
3550// because http.StatusNotModified was returned.
3551func (c *ProjectsInitializeSettingsCall) Do(opts ...googleapi.CallOption) (*ProjectSettings, error) {
3552	gensupport.SetOptions(c.urlParams_, opts...)
3553	res, err := c.doRequest("json")
3554	if res != nil && res.StatusCode == http.StatusNotModified {
3555		if res.Body != nil {
3556			res.Body.Close()
3557		}
3558		return nil, &googleapi.Error{
3559			Code:   res.StatusCode,
3560			Header: res.Header,
3561		}
3562	}
3563	if err != nil {
3564		return nil, err
3565	}
3566	defer googleapi.CloseBody(res)
3567	if err := googleapi.CheckResponse(res); err != nil {
3568		return nil, err
3569	}
3570	ret := &ProjectSettings{
3571		ServerResponse: googleapi.ServerResponse{
3572			Header:         res.Header,
3573			HTTPStatusCode: res.StatusCode,
3574		},
3575	}
3576	target := &ret
3577	if err := gensupport.DecodeResponse(target, res); err != nil {
3578		return nil, err
3579	}
3580	return ret, nil
3581	// {
3582	//   "description": "Creates resources for settings which have not yet been set.\n\nCurrently, this creates a single resource: a Google Cloud Storage bucket, to be used as the default bucket for this project. The bucket is created in 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.\n\nThe 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.\n\nIf there is already a default bucket set and the project can access the bucket, this call does nothing. However, if the project doesn't have the permission to access the bucket or the bucket is deleted, a new bucket will be created.\n\nMay return any canonical error codes, including the following:\n\n- PERMISSION_DENIED - if the user is not authorized to write to project - Any error code raised by Google Cloud Storage",
3583	//   "httpMethod": "POST",
3584	//   "id": "toolresults.projects.initializeSettings",
3585	//   "parameterOrder": [
3586	//     "projectId"
3587	//   ],
3588	//   "parameters": {
3589	//     "projectId": {
3590	//       "description": "A Project id.\n\nRequired.",
3591	//       "location": "path",
3592	//       "required": true,
3593	//       "type": "string"
3594	//     }
3595	//   },
3596	//   "path": "{projectId}:initializeSettings",
3597	//   "response": {
3598	//     "$ref": "ProjectSettings"
3599	//   },
3600	//   "scopes": [
3601	//     "https://www.googleapis.com/auth/cloud-platform"
3602	//   ]
3603	// }
3604
3605}
3606
3607// method id "toolresults.projects.histories.create":
3608
3609type ProjectsHistoriesCreateCall struct {
3610	s          *Service
3611	projectId  string
3612	history    *History
3613	urlParams_ gensupport.URLParams
3614	ctx_       context.Context
3615	header_    http.Header
3616}
3617
3618// Create: Creates a History.
3619//
3620// The returned History will have the id set.
3621//
3622// May return any of the following canonical error codes:
3623//
3624// - PERMISSION_DENIED - if the user is not authorized to write to
3625// project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND
3626// - if the containing project does not exist
3627func (r *ProjectsHistoriesService) Create(projectId string, history *History) *ProjectsHistoriesCreateCall {
3628	c := &ProjectsHistoriesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3629	c.projectId = projectId
3630	c.history = history
3631	return c
3632}
3633
3634// RequestId sets the optional parameter "requestId": A unique request
3635// ID for server to detect duplicated requests. For example, a
3636// UUID.
3637//
3638// Optional, but strongly recommended.
3639func (c *ProjectsHistoriesCreateCall) RequestId(requestId string) *ProjectsHistoriesCreateCall {
3640	c.urlParams_.Set("requestId", requestId)
3641	return c
3642}
3643
3644// Fields allows partial responses to be retrieved. See
3645// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3646// for more information.
3647func (c *ProjectsHistoriesCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesCreateCall {
3648	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3649	return c
3650}
3651
3652// Context sets the context to be used in this call's Do method. Any
3653// pending HTTP request will be aborted if the provided context is
3654// canceled.
3655func (c *ProjectsHistoriesCreateCall) Context(ctx context.Context) *ProjectsHistoriesCreateCall {
3656	c.ctx_ = ctx
3657	return c
3658}
3659
3660// Header returns an http.Header that can be modified by the caller to
3661// add HTTP headers to the request.
3662func (c *ProjectsHistoriesCreateCall) Header() http.Header {
3663	if c.header_ == nil {
3664		c.header_ = make(http.Header)
3665	}
3666	return c.header_
3667}
3668
3669func (c *ProjectsHistoriesCreateCall) doRequest(alt string) (*http.Response, error) {
3670	reqHeaders := make(http.Header)
3671	for k, v := range c.header_ {
3672		reqHeaders[k] = v
3673	}
3674	reqHeaders.Set("User-Agent", c.s.userAgent())
3675	var body io.Reader = nil
3676	body, err := googleapi.WithoutDataWrapper.JSONReader(c.history)
3677	if err != nil {
3678		return nil, err
3679	}
3680	reqHeaders.Set("Content-Type", "application/json")
3681	c.urlParams_.Set("alt", alt)
3682	c.urlParams_.Set("prettyPrint", "false")
3683	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories")
3684	urls += "?" + c.urlParams_.Encode()
3685	req, err := http.NewRequest("POST", urls, body)
3686	if err != nil {
3687		return nil, err
3688	}
3689	req.Header = reqHeaders
3690	googleapi.Expand(req.URL, map[string]string{
3691		"projectId": c.projectId,
3692	})
3693	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3694}
3695
3696// Do executes the "toolresults.projects.histories.create" call.
3697// Exactly one of *History or error will be non-nil. Any non-2xx status
3698// code is an error. Response headers are in either
3699// *History.ServerResponse.Header or (if a response was returned at all)
3700// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
3701// check whether the returned error was because http.StatusNotModified
3702// was returned.
3703func (c *ProjectsHistoriesCreateCall) Do(opts ...googleapi.CallOption) (*History, error) {
3704	gensupport.SetOptions(c.urlParams_, opts...)
3705	res, err := c.doRequest("json")
3706	if res != nil && res.StatusCode == http.StatusNotModified {
3707		if res.Body != nil {
3708			res.Body.Close()
3709		}
3710		return nil, &googleapi.Error{
3711			Code:   res.StatusCode,
3712			Header: res.Header,
3713		}
3714	}
3715	if err != nil {
3716		return nil, err
3717	}
3718	defer googleapi.CloseBody(res)
3719	if err := googleapi.CheckResponse(res); err != nil {
3720		return nil, err
3721	}
3722	ret := &History{
3723		ServerResponse: googleapi.ServerResponse{
3724			Header:         res.Header,
3725			HTTPStatusCode: res.StatusCode,
3726		},
3727	}
3728	target := &ret
3729	if err := gensupport.DecodeResponse(target, res); err != nil {
3730		return nil, err
3731	}
3732	return ret, nil
3733	// {
3734	//   "description": "Creates a History.\n\nThe returned History will have the id set.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing project does not exist",
3735	//   "httpMethod": "POST",
3736	//   "id": "toolresults.projects.histories.create",
3737	//   "parameterOrder": [
3738	//     "projectId"
3739	//   ],
3740	//   "parameters": {
3741	//     "projectId": {
3742	//       "description": "A Project id.\n\nRequired.",
3743	//       "location": "path",
3744	//       "required": true,
3745	//       "type": "string"
3746	//     },
3747	//     "requestId": {
3748	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
3749	//       "location": "query",
3750	//       "type": "string"
3751	//     }
3752	//   },
3753	//   "path": "{projectId}/histories",
3754	//   "request": {
3755	//     "$ref": "History"
3756	//   },
3757	//   "response": {
3758	//     "$ref": "History"
3759	//   },
3760	//   "scopes": [
3761	//     "https://www.googleapis.com/auth/cloud-platform"
3762	//   ]
3763	// }
3764
3765}
3766
3767// method id "toolresults.projects.histories.get":
3768
3769type ProjectsHistoriesGetCall struct {
3770	s            *Service
3771	projectId    string
3772	historyId    string
3773	urlParams_   gensupport.URLParams
3774	ifNoneMatch_ string
3775	ctx_         context.Context
3776	header_      http.Header
3777}
3778
3779// Get: Gets a History.
3780//
3781// May return any of the following canonical error codes:
3782//
3783// - PERMISSION_DENIED - if the user is not authorized to read project -
3784// INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the
3785// History does not exist
3786func (r *ProjectsHistoriesService) Get(projectId string, historyId string) *ProjectsHistoriesGetCall {
3787	c := &ProjectsHistoriesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3788	c.projectId = projectId
3789	c.historyId = historyId
3790	return c
3791}
3792
3793// Fields allows partial responses to be retrieved. See
3794// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3795// for more information.
3796func (c *ProjectsHistoriesGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesGetCall {
3797	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3798	return c
3799}
3800
3801// IfNoneMatch sets the optional parameter which makes the operation
3802// fail if the object's ETag matches the given value. This is useful for
3803// getting updates only after the object has changed since the last
3804// request. Use googleapi.IsNotModified to check whether the response
3805// error from Do is the result of In-None-Match.
3806func (c *ProjectsHistoriesGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesGetCall {
3807	c.ifNoneMatch_ = entityTag
3808	return c
3809}
3810
3811// Context sets the context to be used in this call's Do method. Any
3812// pending HTTP request will be aborted if the provided context is
3813// canceled.
3814func (c *ProjectsHistoriesGetCall) Context(ctx context.Context) *ProjectsHistoriesGetCall {
3815	c.ctx_ = ctx
3816	return c
3817}
3818
3819// Header returns an http.Header that can be modified by the caller to
3820// add HTTP headers to the request.
3821func (c *ProjectsHistoriesGetCall) Header() http.Header {
3822	if c.header_ == nil {
3823		c.header_ = make(http.Header)
3824	}
3825	return c.header_
3826}
3827
3828func (c *ProjectsHistoriesGetCall) doRequest(alt string) (*http.Response, error) {
3829	reqHeaders := make(http.Header)
3830	for k, v := range c.header_ {
3831		reqHeaders[k] = v
3832	}
3833	reqHeaders.Set("User-Agent", c.s.userAgent())
3834	if c.ifNoneMatch_ != "" {
3835		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3836	}
3837	var body io.Reader = nil
3838	c.urlParams_.Set("alt", alt)
3839	c.urlParams_.Set("prettyPrint", "false")
3840	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}")
3841	urls += "?" + c.urlParams_.Encode()
3842	req, err := http.NewRequest("GET", urls, body)
3843	if err != nil {
3844		return nil, err
3845	}
3846	req.Header = reqHeaders
3847	googleapi.Expand(req.URL, map[string]string{
3848		"projectId": c.projectId,
3849		"historyId": c.historyId,
3850	})
3851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3852}
3853
3854// Do executes the "toolresults.projects.histories.get" call.
3855// Exactly one of *History or error will be non-nil. Any non-2xx status
3856// code is an error. Response headers are in either
3857// *History.ServerResponse.Header or (if a response was returned at all)
3858// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
3859// check whether the returned error was because http.StatusNotModified
3860// was returned.
3861func (c *ProjectsHistoriesGetCall) Do(opts ...googleapi.CallOption) (*History, error) {
3862	gensupport.SetOptions(c.urlParams_, opts...)
3863	res, err := c.doRequest("json")
3864	if res != nil && res.StatusCode == http.StatusNotModified {
3865		if res.Body != nil {
3866			res.Body.Close()
3867		}
3868		return nil, &googleapi.Error{
3869			Code:   res.StatusCode,
3870			Header: res.Header,
3871		}
3872	}
3873	if err != nil {
3874		return nil, err
3875	}
3876	defer googleapi.CloseBody(res)
3877	if err := googleapi.CheckResponse(res); err != nil {
3878		return nil, err
3879	}
3880	ret := &History{
3881		ServerResponse: googleapi.ServerResponse{
3882			Header:         res.Header,
3883			HTTPStatusCode: res.StatusCode,
3884		},
3885	}
3886	target := &ret
3887	if err := gensupport.DecodeResponse(target, res); err != nil {
3888		return nil, err
3889	}
3890	return ret, nil
3891	// {
3892	//   "description": "Gets a History.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the History does not exist",
3893	//   "httpMethod": "GET",
3894	//   "id": "toolresults.projects.histories.get",
3895	//   "parameterOrder": [
3896	//     "projectId",
3897	//     "historyId"
3898	//   ],
3899	//   "parameters": {
3900	//     "historyId": {
3901	//       "description": "A History id.\n\nRequired.",
3902	//       "location": "path",
3903	//       "required": true,
3904	//       "type": "string"
3905	//     },
3906	//     "projectId": {
3907	//       "description": "A Project id.\n\nRequired.",
3908	//       "location": "path",
3909	//       "required": true,
3910	//       "type": "string"
3911	//     }
3912	//   },
3913	//   "path": "{projectId}/histories/{historyId}",
3914	//   "response": {
3915	//     "$ref": "History"
3916	//   },
3917	//   "scopes": [
3918	//     "https://www.googleapis.com/auth/cloud-platform"
3919	//   ]
3920	// }
3921
3922}
3923
3924// method id "toolresults.projects.histories.list":
3925
3926type ProjectsHistoriesListCall struct {
3927	s            *Service
3928	projectId    string
3929	urlParams_   gensupport.URLParams
3930	ifNoneMatch_ string
3931	ctx_         context.Context
3932	header_      http.Header
3933}
3934
3935// List: Lists Histories for a given Project.
3936//
3937// The histories are sorted by modification time in descending order.
3938// The history_id key will be used to order the history with the same
3939// modification time.
3940//
3941// May return any of the following canonical error codes:
3942//
3943// - PERMISSION_DENIED - if the user is not authorized to read project -
3944// INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the
3945// History does not exist
3946func (r *ProjectsHistoriesService) List(projectId string) *ProjectsHistoriesListCall {
3947	c := &ProjectsHistoriesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3948	c.projectId = projectId
3949	return c
3950}
3951
3952// FilterByName sets the optional parameter "filterByName": If set, only
3953// return histories with the given name.
3954func (c *ProjectsHistoriesListCall) FilterByName(filterByName string) *ProjectsHistoriesListCall {
3955	c.urlParams_.Set("filterByName", filterByName)
3956	return c
3957}
3958
3959// PageSize sets the optional parameter "pageSize": The maximum number
3960// of Histories to fetch.
3961//
3962// Default value: 20. The server will use this default if the field is
3963// not set or has a value of 0. Any value greater than 100 will be
3964// treated as 100.
3965func (c *ProjectsHistoriesListCall) PageSize(pageSize int64) *ProjectsHistoriesListCall {
3966	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
3967	return c
3968}
3969
3970// PageToken sets the optional parameter "pageToken": A continuation
3971// token to resume the query at the next item.
3972func (c *ProjectsHistoriesListCall) PageToken(pageToken string) *ProjectsHistoriesListCall {
3973	c.urlParams_.Set("pageToken", pageToken)
3974	return c
3975}
3976
3977// Fields allows partial responses to be retrieved. See
3978// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3979// for more information.
3980func (c *ProjectsHistoriesListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesListCall {
3981	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3982	return c
3983}
3984
3985// IfNoneMatch sets the optional parameter which makes the operation
3986// fail if the object's ETag matches the given value. This is useful for
3987// getting updates only after the object has changed since the last
3988// request. Use googleapi.IsNotModified to check whether the response
3989// error from Do is the result of In-None-Match.
3990func (c *ProjectsHistoriesListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesListCall {
3991	c.ifNoneMatch_ = entityTag
3992	return c
3993}
3994
3995// Context sets the context to be used in this call's Do method. Any
3996// pending HTTP request will be aborted if the provided context is
3997// canceled.
3998func (c *ProjectsHistoriesListCall) Context(ctx context.Context) *ProjectsHistoriesListCall {
3999	c.ctx_ = ctx
4000	return c
4001}
4002
4003// Header returns an http.Header that can be modified by the caller to
4004// add HTTP headers to the request.
4005func (c *ProjectsHistoriesListCall) Header() http.Header {
4006	if c.header_ == nil {
4007		c.header_ = make(http.Header)
4008	}
4009	return c.header_
4010}
4011
4012func (c *ProjectsHistoriesListCall) doRequest(alt string) (*http.Response, error) {
4013	reqHeaders := make(http.Header)
4014	for k, v := range c.header_ {
4015		reqHeaders[k] = v
4016	}
4017	reqHeaders.Set("User-Agent", c.s.userAgent())
4018	if c.ifNoneMatch_ != "" {
4019		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4020	}
4021	var body io.Reader = nil
4022	c.urlParams_.Set("alt", alt)
4023	c.urlParams_.Set("prettyPrint", "false")
4024	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories")
4025	urls += "?" + c.urlParams_.Encode()
4026	req, err := http.NewRequest("GET", urls, body)
4027	if err != nil {
4028		return nil, err
4029	}
4030	req.Header = reqHeaders
4031	googleapi.Expand(req.URL, map[string]string{
4032		"projectId": c.projectId,
4033	})
4034	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4035}
4036
4037// Do executes the "toolresults.projects.histories.list" call.
4038// Exactly one of *ListHistoriesResponse or error will be non-nil. Any
4039// non-2xx status code is an error. Response headers are in either
4040// *ListHistoriesResponse.ServerResponse.Header or (if a response was
4041// returned at all) in error.(*googleapi.Error).Header. Use
4042// googleapi.IsNotModified to check whether the returned error was
4043// because http.StatusNotModified was returned.
4044func (c *ProjectsHistoriesListCall) Do(opts ...googleapi.CallOption) (*ListHistoriesResponse, error) {
4045	gensupport.SetOptions(c.urlParams_, opts...)
4046	res, err := c.doRequest("json")
4047	if res != nil && res.StatusCode == http.StatusNotModified {
4048		if res.Body != nil {
4049			res.Body.Close()
4050		}
4051		return nil, &googleapi.Error{
4052			Code:   res.StatusCode,
4053			Header: res.Header,
4054		}
4055	}
4056	if err != nil {
4057		return nil, err
4058	}
4059	defer googleapi.CloseBody(res)
4060	if err := googleapi.CheckResponse(res); err != nil {
4061		return nil, err
4062	}
4063	ret := &ListHistoriesResponse{
4064		ServerResponse: googleapi.ServerResponse{
4065			Header:         res.Header,
4066			HTTPStatusCode: res.StatusCode,
4067		},
4068	}
4069	target := &ret
4070	if err := gensupport.DecodeResponse(target, res); err != nil {
4071		return nil, err
4072	}
4073	return ret, nil
4074	// {
4075	//   "description": "Lists Histories for a given Project.\n\nThe histories are sorted by modification time in descending order. The history_id key will be used to order the history with the same modification time.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the History does not exist",
4076	//   "httpMethod": "GET",
4077	//   "id": "toolresults.projects.histories.list",
4078	//   "parameterOrder": [
4079	//     "projectId"
4080	//   ],
4081	//   "parameters": {
4082	//     "filterByName": {
4083	//       "description": "If set, only return histories with the given name.\n\nOptional.",
4084	//       "location": "query",
4085	//       "type": "string"
4086	//     },
4087	//     "pageSize": {
4088	//       "description": "The maximum number of Histories to fetch.\n\nDefault value: 20. The server will use this default if the field is not set or has a value of 0. Any value greater than 100 will be treated as 100.\n\nOptional.",
4089	//       "format": "int32",
4090	//       "location": "query",
4091	//       "type": "integer"
4092	//     },
4093	//     "pageToken": {
4094	//       "description": "A continuation token to resume the query at the next item.\n\nOptional.",
4095	//       "location": "query",
4096	//       "type": "string"
4097	//     },
4098	//     "projectId": {
4099	//       "description": "A Project id.\n\nRequired.",
4100	//       "location": "path",
4101	//       "required": true,
4102	//       "type": "string"
4103	//     }
4104	//   },
4105	//   "path": "{projectId}/histories",
4106	//   "response": {
4107	//     "$ref": "ListHistoriesResponse"
4108	//   },
4109	//   "scopes": [
4110	//     "https://www.googleapis.com/auth/cloud-platform"
4111	//   ]
4112	// }
4113
4114}
4115
4116// Pages invokes f for each page of results.
4117// A non-nil error returned from f will halt the iteration.
4118// The provided context supersedes any context provided to the Context method.
4119func (c *ProjectsHistoriesListCall) Pages(ctx context.Context, f func(*ListHistoriesResponse) error) error {
4120	c.ctx_ = ctx
4121	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
4122	for {
4123		x, err := c.Do()
4124		if err != nil {
4125			return err
4126		}
4127		if err := f(x); err != nil {
4128			return err
4129		}
4130		if x.NextPageToken == "" {
4131			return nil
4132		}
4133		c.PageToken(x.NextPageToken)
4134	}
4135}
4136
4137// method id "toolresults.projects.histories.executions.create":
4138
4139type ProjectsHistoriesExecutionsCreateCall struct {
4140	s          *Service
4141	projectId  string
4142	historyId  string
4143	execution  *Execution
4144	urlParams_ gensupport.URLParams
4145	ctx_       context.Context
4146	header_    http.Header
4147}
4148
4149// Create: Creates an Execution.
4150//
4151// The returned Execution will have the id set.
4152//
4153// May return any of the following canonical error codes:
4154//
4155// - PERMISSION_DENIED - if the user is not authorized to write to
4156// project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND
4157// - if the containing History does not exist
4158func (r *ProjectsHistoriesExecutionsService) Create(projectId string, historyId string, execution *Execution) *ProjectsHistoriesExecutionsCreateCall {
4159	c := &ProjectsHistoriesExecutionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4160	c.projectId = projectId
4161	c.historyId = historyId
4162	c.execution = execution
4163	return c
4164}
4165
4166// RequestId sets the optional parameter "requestId": A unique request
4167// ID for server to detect duplicated requests. For example, a
4168// UUID.
4169//
4170// Optional, but strongly recommended.
4171func (c *ProjectsHistoriesExecutionsCreateCall) RequestId(requestId string) *ProjectsHistoriesExecutionsCreateCall {
4172	c.urlParams_.Set("requestId", requestId)
4173	return c
4174}
4175
4176// Fields allows partial responses to be retrieved. See
4177// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4178// for more information.
4179func (c *ProjectsHistoriesExecutionsCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsCreateCall {
4180	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4181	return c
4182}
4183
4184// Context sets the context to be used in this call's Do method. Any
4185// pending HTTP request will be aborted if the provided context is
4186// canceled.
4187func (c *ProjectsHistoriesExecutionsCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsCreateCall {
4188	c.ctx_ = ctx
4189	return c
4190}
4191
4192// Header returns an http.Header that can be modified by the caller to
4193// add HTTP headers to the request.
4194func (c *ProjectsHistoriesExecutionsCreateCall) Header() http.Header {
4195	if c.header_ == nil {
4196		c.header_ = make(http.Header)
4197	}
4198	return c.header_
4199}
4200
4201func (c *ProjectsHistoriesExecutionsCreateCall) doRequest(alt string) (*http.Response, error) {
4202	reqHeaders := make(http.Header)
4203	for k, v := range c.header_ {
4204		reqHeaders[k] = v
4205	}
4206	reqHeaders.Set("User-Agent", c.s.userAgent())
4207	var body io.Reader = nil
4208	body, err := googleapi.WithoutDataWrapper.JSONReader(c.execution)
4209	if err != nil {
4210		return nil, err
4211	}
4212	reqHeaders.Set("Content-Type", "application/json")
4213	c.urlParams_.Set("alt", alt)
4214	c.urlParams_.Set("prettyPrint", "false")
4215	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions")
4216	urls += "?" + c.urlParams_.Encode()
4217	req, err := http.NewRequest("POST", urls, body)
4218	if err != nil {
4219		return nil, err
4220	}
4221	req.Header = reqHeaders
4222	googleapi.Expand(req.URL, map[string]string{
4223		"projectId": c.projectId,
4224		"historyId": c.historyId,
4225	})
4226	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4227}
4228
4229// Do executes the "toolresults.projects.histories.executions.create" call.
4230// Exactly one of *Execution or error will be non-nil. Any non-2xx
4231// status code is an error. Response headers are in either
4232// *Execution.ServerResponse.Header or (if a response was returned at
4233// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4234// to check whether the returned error was because
4235// http.StatusNotModified was returned.
4236func (c *ProjectsHistoriesExecutionsCreateCall) Do(opts ...googleapi.CallOption) (*Execution, error) {
4237	gensupport.SetOptions(c.urlParams_, opts...)
4238	res, err := c.doRequest("json")
4239	if res != nil && res.StatusCode == http.StatusNotModified {
4240		if res.Body != nil {
4241			res.Body.Close()
4242		}
4243		return nil, &googleapi.Error{
4244			Code:   res.StatusCode,
4245			Header: res.Header,
4246		}
4247	}
4248	if err != nil {
4249		return nil, err
4250	}
4251	defer googleapi.CloseBody(res)
4252	if err := googleapi.CheckResponse(res); err != nil {
4253		return nil, err
4254	}
4255	ret := &Execution{
4256		ServerResponse: googleapi.ServerResponse{
4257			Header:         res.Header,
4258			HTTPStatusCode: res.StatusCode,
4259		},
4260	}
4261	target := &ret
4262	if err := gensupport.DecodeResponse(target, res); err != nil {
4263		return nil, err
4264	}
4265	return ret, nil
4266	// {
4267	//   "description": "Creates an Execution.\n\nThe returned Execution will have the id set.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing History does not exist",
4268	//   "httpMethod": "POST",
4269	//   "id": "toolresults.projects.histories.executions.create",
4270	//   "parameterOrder": [
4271	//     "projectId",
4272	//     "historyId"
4273	//   ],
4274	//   "parameters": {
4275	//     "historyId": {
4276	//       "description": "A History id.\n\nRequired.",
4277	//       "location": "path",
4278	//       "required": true,
4279	//       "type": "string"
4280	//     },
4281	//     "projectId": {
4282	//       "description": "A Project id.\n\nRequired.",
4283	//       "location": "path",
4284	//       "required": true,
4285	//       "type": "string"
4286	//     },
4287	//     "requestId": {
4288	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
4289	//       "location": "query",
4290	//       "type": "string"
4291	//     }
4292	//   },
4293	//   "path": "{projectId}/histories/{historyId}/executions",
4294	//   "request": {
4295	//     "$ref": "Execution"
4296	//   },
4297	//   "response": {
4298	//     "$ref": "Execution"
4299	//   },
4300	//   "scopes": [
4301	//     "https://www.googleapis.com/auth/cloud-platform"
4302	//   ]
4303	// }
4304
4305}
4306
4307// method id "toolresults.projects.histories.executions.get":
4308
4309type ProjectsHistoriesExecutionsGetCall struct {
4310	s            *Service
4311	projectId    string
4312	historyId    string
4313	executionId  string
4314	urlParams_   gensupport.URLParams
4315	ifNoneMatch_ string
4316	ctx_         context.Context
4317	header_      http.Header
4318}
4319
4320// Get: Gets an Execution.
4321//
4322// May return any of the following canonical error codes:
4323//
4324// - PERMISSION_DENIED - if the user is not authorized to write to
4325// project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND
4326// - if the Execution does not exist
4327func (r *ProjectsHistoriesExecutionsService) Get(projectId string, historyId string, executionId string) *ProjectsHistoriesExecutionsGetCall {
4328	c := &ProjectsHistoriesExecutionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4329	c.projectId = projectId
4330	c.historyId = historyId
4331	c.executionId = executionId
4332	return c
4333}
4334
4335// Fields allows partial responses to be retrieved. See
4336// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4337// for more information.
4338func (c *ProjectsHistoriesExecutionsGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsGetCall {
4339	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4340	return c
4341}
4342
4343// IfNoneMatch sets the optional parameter which makes the operation
4344// fail if the object's ETag matches the given value. This is useful for
4345// getting updates only after the object has changed since the last
4346// request. Use googleapi.IsNotModified to check whether the response
4347// error from Do is the result of In-None-Match.
4348func (c *ProjectsHistoriesExecutionsGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsGetCall {
4349	c.ifNoneMatch_ = entityTag
4350	return c
4351}
4352
4353// Context sets the context to be used in this call's Do method. Any
4354// pending HTTP request will be aborted if the provided context is
4355// canceled.
4356func (c *ProjectsHistoriesExecutionsGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsGetCall {
4357	c.ctx_ = ctx
4358	return c
4359}
4360
4361// Header returns an http.Header that can be modified by the caller to
4362// add HTTP headers to the request.
4363func (c *ProjectsHistoriesExecutionsGetCall) Header() http.Header {
4364	if c.header_ == nil {
4365		c.header_ = make(http.Header)
4366	}
4367	return c.header_
4368}
4369
4370func (c *ProjectsHistoriesExecutionsGetCall) doRequest(alt string) (*http.Response, error) {
4371	reqHeaders := make(http.Header)
4372	for k, v := range c.header_ {
4373		reqHeaders[k] = v
4374	}
4375	reqHeaders.Set("User-Agent", c.s.userAgent())
4376	if c.ifNoneMatch_ != "" {
4377		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4378	}
4379	var body io.Reader = nil
4380	c.urlParams_.Set("alt", alt)
4381	c.urlParams_.Set("prettyPrint", "false")
4382	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}")
4383	urls += "?" + c.urlParams_.Encode()
4384	req, err := http.NewRequest("GET", urls, body)
4385	if err != nil {
4386		return nil, err
4387	}
4388	req.Header = reqHeaders
4389	googleapi.Expand(req.URL, map[string]string{
4390		"projectId":   c.projectId,
4391		"historyId":   c.historyId,
4392		"executionId": c.executionId,
4393	})
4394	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4395}
4396
4397// Do executes the "toolresults.projects.histories.executions.get" call.
4398// Exactly one of *Execution or error will be non-nil. Any non-2xx
4399// status code is an error. Response headers are in either
4400// *Execution.ServerResponse.Header or (if a response was returned at
4401// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4402// to check whether the returned error was because
4403// http.StatusNotModified was returned.
4404func (c *ProjectsHistoriesExecutionsGetCall) Do(opts ...googleapi.CallOption) (*Execution, error) {
4405	gensupport.SetOptions(c.urlParams_, opts...)
4406	res, err := c.doRequest("json")
4407	if res != nil && res.StatusCode == http.StatusNotModified {
4408		if res.Body != nil {
4409			res.Body.Close()
4410		}
4411		return nil, &googleapi.Error{
4412			Code:   res.StatusCode,
4413			Header: res.Header,
4414		}
4415	}
4416	if err != nil {
4417		return nil, err
4418	}
4419	defer googleapi.CloseBody(res)
4420	if err := googleapi.CheckResponse(res); err != nil {
4421		return nil, err
4422	}
4423	ret := &Execution{
4424		ServerResponse: googleapi.ServerResponse{
4425			Header:         res.Header,
4426			HTTPStatusCode: res.StatusCode,
4427		},
4428	}
4429	target := &ret
4430	if err := gensupport.DecodeResponse(target, res); err != nil {
4431		return nil, err
4432	}
4433	return ret, nil
4434	// {
4435	//   "description": "Gets an Execution.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Execution does not exist",
4436	//   "httpMethod": "GET",
4437	//   "id": "toolresults.projects.histories.executions.get",
4438	//   "parameterOrder": [
4439	//     "projectId",
4440	//     "historyId",
4441	//     "executionId"
4442	//   ],
4443	//   "parameters": {
4444	//     "executionId": {
4445	//       "description": "An Execution id.\n\nRequired.",
4446	//       "location": "path",
4447	//       "required": true,
4448	//       "type": "string"
4449	//     },
4450	//     "historyId": {
4451	//       "description": "A History id.\n\nRequired.",
4452	//       "location": "path",
4453	//       "required": true,
4454	//       "type": "string"
4455	//     },
4456	//     "projectId": {
4457	//       "description": "A Project id.\n\nRequired.",
4458	//       "location": "path",
4459	//       "required": true,
4460	//       "type": "string"
4461	//     }
4462	//   },
4463	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}",
4464	//   "response": {
4465	//     "$ref": "Execution"
4466	//   },
4467	//   "scopes": [
4468	//     "https://www.googleapis.com/auth/cloud-platform"
4469	//   ]
4470	// }
4471
4472}
4473
4474// method id "toolresults.projects.histories.executions.list":
4475
4476type ProjectsHistoriesExecutionsListCall struct {
4477	s            *Service
4478	projectId    string
4479	historyId    string
4480	urlParams_   gensupport.URLParams
4481	ifNoneMatch_ string
4482	ctx_         context.Context
4483	header_      http.Header
4484}
4485
4486// List: Lists Executions for a given History.
4487//
4488// The executions are sorted by creation_time in descending order. The
4489// execution_id key will be used to order the executions with the same
4490// creation_time.
4491//
4492// May return any of the following canonical error codes:
4493//
4494// - PERMISSION_DENIED - if the user is not authorized to read project -
4495// INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the
4496// containing History does not exist
4497func (r *ProjectsHistoriesExecutionsService) List(projectId string, historyId string) *ProjectsHistoriesExecutionsListCall {
4498	c := &ProjectsHistoriesExecutionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4499	c.projectId = projectId
4500	c.historyId = historyId
4501	return c
4502}
4503
4504// PageSize sets the optional parameter "pageSize": The maximum number
4505// of Executions to fetch.
4506//
4507// Default value: 25. The server will use this default if the field is
4508// not set or has a value of 0.
4509func (c *ProjectsHistoriesExecutionsListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsListCall {
4510	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
4511	return c
4512}
4513
4514// PageToken sets the optional parameter "pageToken": A continuation
4515// token to resume the query at the next item.
4516func (c *ProjectsHistoriesExecutionsListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsListCall {
4517	c.urlParams_.Set("pageToken", pageToken)
4518	return c
4519}
4520
4521// Fields allows partial responses to be retrieved. See
4522// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4523// for more information.
4524func (c *ProjectsHistoriesExecutionsListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsListCall {
4525	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4526	return c
4527}
4528
4529// IfNoneMatch sets the optional parameter which makes the operation
4530// fail if the object's ETag matches the given value. This is useful for
4531// getting updates only after the object has changed since the last
4532// request. Use googleapi.IsNotModified to check whether the response
4533// error from Do is the result of In-None-Match.
4534func (c *ProjectsHistoriesExecutionsListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsListCall {
4535	c.ifNoneMatch_ = entityTag
4536	return c
4537}
4538
4539// Context sets the context to be used in this call's Do method. Any
4540// pending HTTP request will be aborted if the provided context is
4541// canceled.
4542func (c *ProjectsHistoriesExecutionsListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsListCall {
4543	c.ctx_ = ctx
4544	return c
4545}
4546
4547// Header returns an http.Header that can be modified by the caller to
4548// add HTTP headers to the request.
4549func (c *ProjectsHistoriesExecutionsListCall) Header() http.Header {
4550	if c.header_ == nil {
4551		c.header_ = make(http.Header)
4552	}
4553	return c.header_
4554}
4555
4556func (c *ProjectsHistoriesExecutionsListCall) doRequest(alt string) (*http.Response, error) {
4557	reqHeaders := make(http.Header)
4558	for k, v := range c.header_ {
4559		reqHeaders[k] = v
4560	}
4561	reqHeaders.Set("User-Agent", c.s.userAgent())
4562	if c.ifNoneMatch_ != "" {
4563		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4564	}
4565	var body io.Reader = nil
4566	c.urlParams_.Set("alt", alt)
4567	c.urlParams_.Set("prettyPrint", "false")
4568	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions")
4569	urls += "?" + c.urlParams_.Encode()
4570	req, err := http.NewRequest("GET", urls, body)
4571	if err != nil {
4572		return nil, err
4573	}
4574	req.Header = reqHeaders
4575	googleapi.Expand(req.URL, map[string]string{
4576		"projectId": c.projectId,
4577		"historyId": c.historyId,
4578	})
4579	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4580}
4581
4582// Do executes the "toolresults.projects.histories.executions.list" call.
4583// Exactly one of *ListExecutionsResponse or error will be non-nil. Any
4584// non-2xx status code is an error. Response headers are in either
4585// *ListExecutionsResponse.ServerResponse.Header or (if a response was
4586// returned at all) in error.(*googleapi.Error).Header. Use
4587// googleapi.IsNotModified to check whether the returned error was
4588// because http.StatusNotModified was returned.
4589func (c *ProjectsHistoriesExecutionsListCall) Do(opts ...googleapi.CallOption) (*ListExecutionsResponse, error) {
4590	gensupport.SetOptions(c.urlParams_, opts...)
4591	res, err := c.doRequest("json")
4592	if res != nil && res.StatusCode == http.StatusNotModified {
4593		if res.Body != nil {
4594			res.Body.Close()
4595		}
4596		return nil, &googleapi.Error{
4597			Code:   res.StatusCode,
4598			Header: res.Header,
4599		}
4600	}
4601	if err != nil {
4602		return nil, err
4603	}
4604	defer googleapi.CloseBody(res)
4605	if err := googleapi.CheckResponse(res); err != nil {
4606		return nil, err
4607	}
4608	ret := &ListExecutionsResponse{
4609		ServerResponse: googleapi.ServerResponse{
4610			Header:         res.Header,
4611			HTTPStatusCode: res.StatusCode,
4612		},
4613	}
4614	target := &ret
4615	if err := gensupport.DecodeResponse(target, res); err != nil {
4616		return nil, err
4617	}
4618	return ret, nil
4619	// {
4620	//   "description": "Lists Executions for a given History.\n\nThe executions are sorted by creation_time in descending order. The execution_id key will be used to order the executions with the same creation_time.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing History does not exist",
4621	//   "httpMethod": "GET",
4622	//   "id": "toolresults.projects.histories.executions.list",
4623	//   "parameterOrder": [
4624	//     "projectId",
4625	//     "historyId"
4626	//   ],
4627	//   "parameters": {
4628	//     "historyId": {
4629	//       "description": "A History id.\n\nRequired.",
4630	//       "location": "path",
4631	//       "required": true,
4632	//       "type": "string"
4633	//     },
4634	//     "pageSize": {
4635	//       "description": "The maximum number of Executions to fetch.\n\nDefault value: 25. The server will use this default if the field is not set or has a value of 0.\n\nOptional.",
4636	//       "format": "int32",
4637	//       "location": "query",
4638	//       "type": "integer"
4639	//     },
4640	//     "pageToken": {
4641	//       "description": "A continuation token to resume the query at the next item.\n\nOptional.",
4642	//       "location": "query",
4643	//       "type": "string"
4644	//     },
4645	//     "projectId": {
4646	//       "description": "A Project id.\n\nRequired.",
4647	//       "location": "path",
4648	//       "required": true,
4649	//       "type": "string"
4650	//     }
4651	//   },
4652	//   "path": "{projectId}/histories/{historyId}/executions",
4653	//   "response": {
4654	//     "$ref": "ListExecutionsResponse"
4655	//   },
4656	//   "scopes": [
4657	//     "https://www.googleapis.com/auth/cloud-platform"
4658	//   ]
4659	// }
4660
4661}
4662
4663// Pages invokes f for each page of results.
4664// A non-nil error returned from f will halt the iteration.
4665// The provided context supersedes any context provided to the Context method.
4666func (c *ProjectsHistoriesExecutionsListCall) Pages(ctx context.Context, f func(*ListExecutionsResponse) error) error {
4667	c.ctx_ = ctx
4668	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
4669	for {
4670		x, err := c.Do()
4671		if err != nil {
4672			return err
4673		}
4674		if err := f(x); err != nil {
4675			return err
4676		}
4677		if x.NextPageToken == "" {
4678			return nil
4679		}
4680		c.PageToken(x.NextPageToken)
4681	}
4682}
4683
4684// method id "toolresults.projects.histories.executions.patch":
4685
4686type ProjectsHistoriesExecutionsPatchCall struct {
4687	s           *Service
4688	projectId   string
4689	historyId   string
4690	executionId string
4691	execution   *Execution
4692	urlParams_  gensupport.URLParams
4693	ctx_        context.Context
4694	header_     http.Header
4695}
4696
4697// Patch: Updates an existing Execution with the supplied partial
4698// entity.
4699//
4700// May return any of the following canonical error codes:
4701//
4702// - PERMISSION_DENIED - if the user is not authorized to write to
4703// project - INVALID_ARGUMENT - if the request is malformed -
4704// FAILED_PRECONDITION - if the requested state transition is illegal -
4705// NOT_FOUND - if the containing History does not exist
4706func (r *ProjectsHistoriesExecutionsService) Patch(projectId string, historyId string, executionId string, execution *Execution) *ProjectsHistoriesExecutionsPatchCall {
4707	c := &ProjectsHistoriesExecutionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4708	c.projectId = projectId
4709	c.historyId = historyId
4710	c.executionId = executionId
4711	c.execution = execution
4712	return c
4713}
4714
4715// RequestId sets the optional parameter "requestId": A unique request
4716// ID for server to detect duplicated requests. For example, a
4717// UUID.
4718//
4719// Optional, but strongly recommended.
4720func (c *ProjectsHistoriesExecutionsPatchCall) RequestId(requestId string) *ProjectsHistoriesExecutionsPatchCall {
4721	c.urlParams_.Set("requestId", requestId)
4722	return c
4723}
4724
4725// Fields allows partial responses to be retrieved. See
4726// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4727// for more information.
4728func (c *ProjectsHistoriesExecutionsPatchCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsPatchCall {
4729	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4730	return c
4731}
4732
4733// Context sets the context to be used in this call's Do method. Any
4734// pending HTTP request will be aborted if the provided context is
4735// canceled.
4736func (c *ProjectsHistoriesExecutionsPatchCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsPatchCall {
4737	c.ctx_ = ctx
4738	return c
4739}
4740
4741// Header returns an http.Header that can be modified by the caller to
4742// add HTTP headers to the request.
4743func (c *ProjectsHistoriesExecutionsPatchCall) Header() http.Header {
4744	if c.header_ == nil {
4745		c.header_ = make(http.Header)
4746	}
4747	return c.header_
4748}
4749
4750func (c *ProjectsHistoriesExecutionsPatchCall) doRequest(alt string) (*http.Response, error) {
4751	reqHeaders := make(http.Header)
4752	for k, v := range c.header_ {
4753		reqHeaders[k] = v
4754	}
4755	reqHeaders.Set("User-Agent", c.s.userAgent())
4756	var body io.Reader = nil
4757	body, err := googleapi.WithoutDataWrapper.JSONReader(c.execution)
4758	if err != nil {
4759		return nil, err
4760	}
4761	reqHeaders.Set("Content-Type", "application/json")
4762	c.urlParams_.Set("alt", alt)
4763	c.urlParams_.Set("prettyPrint", "false")
4764	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}")
4765	urls += "?" + c.urlParams_.Encode()
4766	req, err := http.NewRequest("PATCH", urls, body)
4767	if err != nil {
4768		return nil, err
4769	}
4770	req.Header = reqHeaders
4771	googleapi.Expand(req.URL, map[string]string{
4772		"projectId":   c.projectId,
4773		"historyId":   c.historyId,
4774		"executionId": c.executionId,
4775	})
4776	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4777}
4778
4779// Do executes the "toolresults.projects.histories.executions.patch" call.
4780// Exactly one of *Execution or error will be non-nil. Any non-2xx
4781// status code is an error. Response headers are in either
4782// *Execution.ServerResponse.Header or (if a response was returned at
4783// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4784// to check whether the returned error was because
4785// http.StatusNotModified was returned.
4786func (c *ProjectsHistoriesExecutionsPatchCall) Do(opts ...googleapi.CallOption) (*Execution, error) {
4787	gensupport.SetOptions(c.urlParams_, opts...)
4788	res, err := c.doRequest("json")
4789	if res != nil && res.StatusCode == http.StatusNotModified {
4790		if res.Body != nil {
4791			res.Body.Close()
4792		}
4793		return nil, &googleapi.Error{
4794			Code:   res.StatusCode,
4795			Header: res.Header,
4796		}
4797	}
4798	if err != nil {
4799		return nil, err
4800	}
4801	defer googleapi.CloseBody(res)
4802	if err := googleapi.CheckResponse(res); err != nil {
4803		return nil, err
4804	}
4805	ret := &Execution{
4806		ServerResponse: googleapi.ServerResponse{
4807			Header:         res.Header,
4808			HTTPStatusCode: res.StatusCode,
4809		},
4810	}
4811	target := &ret
4812	if err := gensupport.DecodeResponse(target, res); err != nil {
4813		return nil, err
4814	}
4815	return ret, nil
4816	// {
4817	//   "description": "Updates an existing Execution with the supplied partial entity.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal - NOT_FOUND - if the containing History does not exist",
4818	//   "httpMethod": "PATCH",
4819	//   "id": "toolresults.projects.histories.executions.patch",
4820	//   "parameterOrder": [
4821	//     "projectId",
4822	//     "historyId",
4823	//     "executionId"
4824	//   ],
4825	//   "parameters": {
4826	//     "executionId": {
4827	//       "description": "Required.",
4828	//       "location": "path",
4829	//       "required": true,
4830	//       "type": "string"
4831	//     },
4832	//     "historyId": {
4833	//       "description": "Required.",
4834	//       "location": "path",
4835	//       "required": true,
4836	//       "type": "string"
4837	//     },
4838	//     "projectId": {
4839	//       "description": "A Project id. Required.",
4840	//       "location": "path",
4841	//       "required": true,
4842	//       "type": "string"
4843	//     },
4844	//     "requestId": {
4845	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
4846	//       "location": "query",
4847	//       "type": "string"
4848	//     }
4849	//   },
4850	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}",
4851	//   "request": {
4852	//     "$ref": "Execution"
4853	//   },
4854	//   "response": {
4855	//     "$ref": "Execution"
4856	//   },
4857	//   "scopes": [
4858	//     "https://www.googleapis.com/auth/cloud-platform"
4859	//   ]
4860	// }
4861
4862}
4863
4864// method id "toolresults.projects.histories.executions.clusters.get":
4865
4866type ProjectsHistoriesExecutionsClustersGetCall struct {
4867	s            *Service
4868	projectId    string
4869	historyId    string
4870	executionId  string
4871	clusterId    string
4872	urlParams_   gensupport.URLParams
4873	ifNoneMatch_ string
4874	ctx_         context.Context
4875	header_      http.Header
4876}
4877
4878// Get: Retrieves a single screenshot cluster by its ID
4879func (r *ProjectsHistoriesExecutionsClustersService) Get(projectId string, historyId string, executionId string, clusterId string) *ProjectsHistoriesExecutionsClustersGetCall {
4880	c := &ProjectsHistoriesExecutionsClustersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4881	c.projectId = projectId
4882	c.historyId = historyId
4883	c.executionId = executionId
4884	c.clusterId = clusterId
4885	return c
4886}
4887
4888// Fields allows partial responses to be retrieved. See
4889// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4890// for more information.
4891func (c *ProjectsHistoriesExecutionsClustersGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsClustersGetCall {
4892	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4893	return c
4894}
4895
4896// IfNoneMatch sets the optional parameter which makes the operation
4897// fail if the object's ETag matches the given value. This is useful for
4898// getting updates only after the object has changed since the last
4899// request. Use googleapi.IsNotModified to check whether the response
4900// error from Do is the result of In-None-Match.
4901func (c *ProjectsHistoriesExecutionsClustersGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsClustersGetCall {
4902	c.ifNoneMatch_ = entityTag
4903	return c
4904}
4905
4906// Context sets the context to be used in this call's Do method. Any
4907// pending HTTP request will be aborted if the provided context is
4908// canceled.
4909func (c *ProjectsHistoriesExecutionsClustersGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsClustersGetCall {
4910	c.ctx_ = ctx
4911	return c
4912}
4913
4914// Header returns an http.Header that can be modified by the caller to
4915// add HTTP headers to the request.
4916func (c *ProjectsHistoriesExecutionsClustersGetCall) Header() http.Header {
4917	if c.header_ == nil {
4918		c.header_ = make(http.Header)
4919	}
4920	return c.header_
4921}
4922
4923func (c *ProjectsHistoriesExecutionsClustersGetCall) doRequest(alt string) (*http.Response, error) {
4924	reqHeaders := make(http.Header)
4925	for k, v := range c.header_ {
4926		reqHeaders[k] = v
4927	}
4928	reqHeaders.Set("User-Agent", c.s.userAgent())
4929	if c.ifNoneMatch_ != "" {
4930		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4931	}
4932	var body io.Reader = nil
4933	c.urlParams_.Set("alt", alt)
4934	c.urlParams_.Set("prettyPrint", "false")
4935	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/clusters/{clusterId}")
4936	urls += "?" + c.urlParams_.Encode()
4937	req, err := http.NewRequest("GET", urls, body)
4938	if err != nil {
4939		return nil, err
4940	}
4941	req.Header = reqHeaders
4942	googleapi.Expand(req.URL, map[string]string{
4943		"projectId":   c.projectId,
4944		"historyId":   c.historyId,
4945		"executionId": c.executionId,
4946		"clusterId":   c.clusterId,
4947	})
4948	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4949}
4950
4951// Do executes the "toolresults.projects.histories.executions.clusters.get" call.
4952// Exactly one of *ScreenshotCluster or error will be non-nil. Any
4953// non-2xx status code is an error. Response headers are in either
4954// *ScreenshotCluster.ServerResponse.Header or (if a response was
4955// returned at all) in error.(*googleapi.Error).Header. Use
4956// googleapi.IsNotModified to check whether the returned error was
4957// because http.StatusNotModified was returned.
4958func (c *ProjectsHistoriesExecutionsClustersGetCall) Do(opts ...googleapi.CallOption) (*ScreenshotCluster, error) {
4959	gensupport.SetOptions(c.urlParams_, opts...)
4960	res, err := c.doRequest("json")
4961	if res != nil && res.StatusCode == http.StatusNotModified {
4962		if res.Body != nil {
4963			res.Body.Close()
4964		}
4965		return nil, &googleapi.Error{
4966			Code:   res.StatusCode,
4967			Header: res.Header,
4968		}
4969	}
4970	if err != nil {
4971		return nil, err
4972	}
4973	defer googleapi.CloseBody(res)
4974	if err := googleapi.CheckResponse(res); err != nil {
4975		return nil, err
4976	}
4977	ret := &ScreenshotCluster{
4978		ServerResponse: googleapi.ServerResponse{
4979			Header:         res.Header,
4980			HTTPStatusCode: res.StatusCode,
4981		},
4982	}
4983	target := &ret
4984	if err := gensupport.DecodeResponse(target, res); err != nil {
4985		return nil, err
4986	}
4987	return ret, nil
4988	// {
4989	//   "description": "Retrieves a single screenshot cluster by its ID",
4990	//   "httpMethod": "GET",
4991	//   "id": "toolresults.projects.histories.executions.clusters.get",
4992	//   "parameterOrder": [
4993	//     "projectId",
4994	//     "historyId",
4995	//     "executionId",
4996	//     "clusterId"
4997	//   ],
4998	//   "parameters": {
4999	//     "clusterId": {
5000	//       "description": "A Cluster id\n\nRequired.",
5001	//       "location": "path",
5002	//       "required": true,
5003	//       "type": "string"
5004	//     },
5005	//     "executionId": {
5006	//       "description": "An Execution id.\n\nRequired.",
5007	//       "location": "path",
5008	//       "required": true,
5009	//       "type": "string"
5010	//     },
5011	//     "historyId": {
5012	//       "description": "A History id.\n\nRequired.",
5013	//       "location": "path",
5014	//       "required": true,
5015	//       "type": "string"
5016	//     },
5017	//     "projectId": {
5018	//       "description": "A Project id.\n\nRequired.",
5019	//       "location": "path",
5020	//       "required": true,
5021	//       "type": "string"
5022	//     }
5023	//   },
5024	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/clusters/{clusterId}",
5025	//   "response": {
5026	//     "$ref": "ScreenshotCluster"
5027	//   }
5028	// }
5029
5030}
5031
5032// method id "toolresults.projects.histories.executions.clusters.list":
5033
5034type ProjectsHistoriesExecutionsClustersListCall struct {
5035	s            *Service
5036	projectId    string
5037	historyId    string
5038	executionId  string
5039	urlParams_   gensupport.URLParams
5040	ifNoneMatch_ string
5041	ctx_         context.Context
5042	header_      http.Header
5043}
5044
5045// List: Lists Screenshot Clusters
5046//
5047// Returns the list of screenshot clusters corresponding to an
5048// execution. Screenshot clusters are created after the execution is
5049// finished. Clusters are created from a set of screenshots. Between any
5050// two screenshots, a matching score is calculated based off their
5051// metadata that determines how similar they are. Screenshots are placed
5052// in the cluster that has screens which have the highest matching
5053// scores.
5054func (r *ProjectsHistoriesExecutionsClustersService) List(projectId string, historyId string, executionId string) *ProjectsHistoriesExecutionsClustersListCall {
5055	c := &ProjectsHistoriesExecutionsClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5056	c.projectId = projectId
5057	c.historyId = historyId
5058	c.executionId = executionId
5059	return c
5060}
5061
5062// Fields allows partial responses to be retrieved. See
5063// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5064// for more information.
5065func (c *ProjectsHistoriesExecutionsClustersListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsClustersListCall {
5066	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5067	return c
5068}
5069
5070// IfNoneMatch sets the optional parameter which makes the operation
5071// fail if the object's ETag matches the given value. This is useful for
5072// getting updates only after the object has changed since the last
5073// request. Use googleapi.IsNotModified to check whether the response
5074// error from Do is the result of In-None-Match.
5075func (c *ProjectsHistoriesExecutionsClustersListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsClustersListCall {
5076	c.ifNoneMatch_ = entityTag
5077	return c
5078}
5079
5080// Context sets the context to be used in this call's Do method. Any
5081// pending HTTP request will be aborted if the provided context is
5082// canceled.
5083func (c *ProjectsHistoriesExecutionsClustersListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsClustersListCall {
5084	c.ctx_ = ctx
5085	return c
5086}
5087
5088// Header returns an http.Header that can be modified by the caller to
5089// add HTTP headers to the request.
5090func (c *ProjectsHistoriesExecutionsClustersListCall) Header() http.Header {
5091	if c.header_ == nil {
5092		c.header_ = make(http.Header)
5093	}
5094	return c.header_
5095}
5096
5097func (c *ProjectsHistoriesExecutionsClustersListCall) doRequest(alt string) (*http.Response, error) {
5098	reqHeaders := make(http.Header)
5099	for k, v := range c.header_ {
5100		reqHeaders[k] = v
5101	}
5102	reqHeaders.Set("User-Agent", c.s.userAgent())
5103	if c.ifNoneMatch_ != "" {
5104		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5105	}
5106	var body io.Reader = nil
5107	c.urlParams_.Set("alt", alt)
5108	c.urlParams_.Set("prettyPrint", "false")
5109	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/clusters")
5110	urls += "?" + c.urlParams_.Encode()
5111	req, err := http.NewRequest("GET", urls, body)
5112	if err != nil {
5113		return nil, err
5114	}
5115	req.Header = reqHeaders
5116	googleapi.Expand(req.URL, map[string]string{
5117		"projectId":   c.projectId,
5118		"historyId":   c.historyId,
5119		"executionId": c.executionId,
5120	})
5121	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5122}
5123
5124// Do executes the "toolresults.projects.histories.executions.clusters.list" call.
5125// Exactly one of *ListScreenshotClustersResponse or error will be
5126// non-nil. Any non-2xx status code is an error. Response headers are in
5127// either *ListScreenshotClustersResponse.ServerResponse.Header or (if a
5128// response was returned at all) in error.(*googleapi.Error).Header. Use
5129// googleapi.IsNotModified to check whether the returned error was
5130// because http.StatusNotModified was returned.
5131func (c *ProjectsHistoriesExecutionsClustersListCall) Do(opts ...googleapi.CallOption) (*ListScreenshotClustersResponse, error) {
5132	gensupport.SetOptions(c.urlParams_, opts...)
5133	res, err := c.doRequest("json")
5134	if res != nil && res.StatusCode == http.StatusNotModified {
5135		if res.Body != nil {
5136			res.Body.Close()
5137		}
5138		return nil, &googleapi.Error{
5139			Code:   res.StatusCode,
5140			Header: res.Header,
5141		}
5142	}
5143	if err != nil {
5144		return nil, err
5145	}
5146	defer googleapi.CloseBody(res)
5147	if err := googleapi.CheckResponse(res); err != nil {
5148		return nil, err
5149	}
5150	ret := &ListScreenshotClustersResponse{
5151		ServerResponse: googleapi.ServerResponse{
5152			Header:         res.Header,
5153			HTTPStatusCode: res.StatusCode,
5154		},
5155	}
5156	target := &ret
5157	if err := gensupport.DecodeResponse(target, res); err != nil {
5158		return nil, err
5159	}
5160	return ret, nil
5161	// {
5162	//   "description": "Lists Screenshot Clusters\n\nReturns 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.",
5163	//   "httpMethod": "GET",
5164	//   "id": "toolresults.projects.histories.executions.clusters.list",
5165	//   "parameterOrder": [
5166	//     "projectId",
5167	//     "historyId",
5168	//     "executionId"
5169	//   ],
5170	//   "parameters": {
5171	//     "executionId": {
5172	//       "description": "An Execution id.\n\nRequired.",
5173	//       "location": "path",
5174	//       "required": true,
5175	//       "type": "string"
5176	//     },
5177	//     "historyId": {
5178	//       "description": "A History id.\n\nRequired.",
5179	//       "location": "path",
5180	//       "required": true,
5181	//       "type": "string"
5182	//     },
5183	//     "projectId": {
5184	//       "description": "A Project id.\n\nRequired.",
5185	//       "location": "path",
5186	//       "required": true,
5187	//       "type": "string"
5188	//     }
5189	//   },
5190	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/clusters",
5191	//   "response": {
5192	//     "$ref": "ListScreenshotClustersResponse"
5193	//   }
5194	// }
5195
5196}
5197
5198// method id "toolresults.projects.histories.executions.steps.create":
5199
5200type ProjectsHistoriesExecutionsStepsCreateCall struct {
5201	s           *Service
5202	projectId   string
5203	historyId   string
5204	executionId string
5205	step        *Step
5206	urlParams_  gensupport.URLParams
5207	ctx_        context.Context
5208	header_     http.Header
5209}
5210
5211// Create: Creates a Step.
5212//
5213// The returned Step will have the id set.
5214//
5215// May return any of the following canonical error codes:
5216//
5217// - PERMISSION_DENIED - if the user is not authorized to write to
5218// project - INVALID_ARGUMENT - if the request is malformed -
5219// FAILED_PRECONDITION - if the step is too large (more than 10Mib) -
5220// NOT_FOUND - if the containing Execution does not exist
5221func (r *ProjectsHistoriesExecutionsStepsService) Create(projectId string, historyId string, executionId string, step *Step) *ProjectsHistoriesExecutionsStepsCreateCall {
5222	c := &ProjectsHistoriesExecutionsStepsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5223	c.projectId = projectId
5224	c.historyId = historyId
5225	c.executionId = executionId
5226	c.step = step
5227	return c
5228}
5229
5230// RequestId sets the optional parameter "requestId": A unique request
5231// ID for server to detect duplicated requests. For example, a
5232// UUID.
5233//
5234// Optional, but strongly recommended.
5235func (c *ProjectsHistoriesExecutionsStepsCreateCall) RequestId(requestId string) *ProjectsHistoriesExecutionsStepsCreateCall {
5236	c.urlParams_.Set("requestId", requestId)
5237	return c
5238}
5239
5240// Fields allows partial responses to be retrieved. See
5241// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5242// for more information.
5243func (c *ProjectsHistoriesExecutionsStepsCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsCreateCall {
5244	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5245	return c
5246}
5247
5248// Context sets the context to be used in this call's Do method. Any
5249// pending HTTP request will be aborted if the provided context is
5250// canceled.
5251func (c *ProjectsHistoriesExecutionsStepsCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsCreateCall {
5252	c.ctx_ = ctx
5253	return c
5254}
5255
5256// Header returns an http.Header that can be modified by the caller to
5257// add HTTP headers to the request.
5258func (c *ProjectsHistoriesExecutionsStepsCreateCall) Header() http.Header {
5259	if c.header_ == nil {
5260		c.header_ = make(http.Header)
5261	}
5262	return c.header_
5263}
5264
5265func (c *ProjectsHistoriesExecutionsStepsCreateCall) doRequest(alt string) (*http.Response, error) {
5266	reqHeaders := make(http.Header)
5267	for k, v := range c.header_ {
5268		reqHeaders[k] = v
5269	}
5270	reqHeaders.Set("User-Agent", c.s.userAgent())
5271	var body io.Reader = nil
5272	body, err := googleapi.WithoutDataWrapper.JSONReader(c.step)
5273	if err != nil {
5274		return nil, err
5275	}
5276	reqHeaders.Set("Content-Type", "application/json")
5277	c.urlParams_.Set("alt", alt)
5278	c.urlParams_.Set("prettyPrint", "false")
5279	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps")
5280	urls += "?" + c.urlParams_.Encode()
5281	req, err := http.NewRequest("POST", urls, body)
5282	if err != nil {
5283		return nil, err
5284	}
5285	req.Header = reqHeaders
5286	googleapi.Expand(req.URL, map[string]string{
5287		"projectId":   c.projectId,
5288		"historyId":   c.historyId,
5289		"executionId": c.executionId,
5290	})
5291	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5292}
5293
5294// Do executes the "toolresults.projects.histories.executions.steps.create" call.
5295// Exactly one of *Step or error will be non-nil. Any non-2xx status
5296// code is an error. Response headers are in either
5297// *Step.ServerResponse.Header or (if a response was returned at all) in
5298// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
5299// whether the returned error was because http.StatusNotModified was
5300// returned.
5301func (c *ProjectsHistoriesExecutionsStepsCreateCall) Do(opts ...googleapi.CallOption) (*Step, error) {
5302	gensupport.SetOptions(c.urlParams_, opts...)
5303	res, err := c.doRequest("json")
5304	if res != nil && res.StatusCode == http.StatusNotModified {
5305		if res.Body != nil {
5306			res.Body.Close()
5307		}
5308		return nil, &googleapi.Error{
5309			Code:   res.StatusCode,
5310			Header: res.Header,
5311		}
5312	}
5313	if err != nil {
5314		return nil, err
5315	}
5316	defer googleapi.CloseBody(res)
5317	if err := googleapi.CheckResponse(res); err != nil {
5318		return nil, err
5319	}
5320	ret := &Step{
5321		ServerResponse: googleapi.ServerResponse{
5322			Header:         res.Header,
5323			HTTPStatusCode: res.StatusCode,
5324		},
5325	}
5326	target := &ret
5327	if err := gensupport.DecodeResponse(target, res); err != nil {
5328		return nil, err
5329	}
5330	return ret, nil
5331	// {
5332	//   "description": "Creates a Step.\n\nThe returned Step will have the id set.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the step is too large (more than 10Mib) - NOT_FOUND - if the containing Execution does not exist",
5333	//   "httpMethod": "POST",
5334	//   "id": "toolresults.projects.histories.executions.steps.create",
5335	//   "parameterOrder": [
5336	//     "projectId",
5337	//     "historyId",
5338	//     "executionId"
5339	//   ],
5340	//   "parameters": {
5341	//     "executionId": {
5342	//       "description": "A Execution id.\n\nRequired.",
5343	//       "location": "path",
5344	//       "required": true,
5345	//       "type": "string"
5346	//     },
5347	//     "historyId": {
5348	//       "description": "A History id.\n\nRequired.",
5349	//       "location": "path",
5350	//       "required": true,
5351	//       "type": "string"
5352	//     },
5353	//     "projectId": {
5354	//       "description": "A Project id.\n\nRequired.",
5355	//       "location": "path",
5356	//       "required": true,
5357	//       "type": "string"
5358	//     },
5359	//     "requestId": {
5360	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
5361	//       "location": "query",
5362	//       "type": "string"
5363	//     }
5364	//   },
5365	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps",
5366	//   "request": {
5367	//     "$ref": "Step"
5368	//   },
5369	//   "response": {
5370	//     "$ref": "Step"
5371	//   },
5372	//   "scopes": [
5373	//     "https://www.googleapis.com/auth/cloud-platform"
5374	//   ]
5375	// }
5376
5377}
5378
5379// method id "toolresults.projects.histories.executions.steps.get":
5380
5381type ProjectsHistoriesExecutionsStepsGetCall struct {
5382	s            *Service
5383	projectId    string
5384	historyId    string
5385	executionId  string
5386	stepId       string
5387	urlParams_   gensupport.URLParams
5388	ifNoneMatch_ string
5389	ctx_         context.Context
5390	header_      http.Header
5391}
5392
5393// Get: Gets a Step.
5394//
5395// May return any of the following canonical error codes:
5396//
5397// - PERMISSION_DENIED - if the user is not authorized to read project -
5398// INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the
5399// Step does not exist
5400func (r *ProjectsHistoriesExecutionsStepsService) Get(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsGetCall {
5401	c := &ProjectsHistoriesExecutionsStepsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5402	c.projectId = projectId
5403	c.historyId = historyId
5404	c.executionId = executionId
5405	c.stepId = stepId
5406	return c
5407}
5408
5409// Fields allows partial responses to be retrieved. See
5410// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5411// for more information.
5412func (c *ProjectsHistoriesExecutionsStepsGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsGetCall {
5413	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5414	return c
5415}
5416
5417// IfNoneMatch sets the optional parameter which makes the operation
5418// fail if the object's ETag matches the given value. This is useful for
5419// getting updates only after the object has changed since the last
5420// request. Use googleapi.IsNotModified to check whether the response
5421// error from Do is the result of In-None-Match.
5422func (c *ProjectsHistoriesExecutionsStepsGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsGetCall {
5423	c.ifNoneMatch_ = entityTag
5424	return c
5425}
5426
5427// Context sets the context to be used in this call's Do method. Any
5428// pending HTTP request will be aborted if the provided context is
5429// canceled.
5430func (c *ProjectsHistoriesExecutionsStepsGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsGetCall {
5431	c.ctx_ = ctx
5432	return c
5433}
5434
5435// Header returns an http.Header that can be modified by the caller to
5436// add HTTP headers to the request.
5437func (c *ProjectsHistoriesExecutionsStepsGetCall) Header() http.Header {
5438	if c.header_ == nil {
5439		c.header_ = make(http.Header)
5440	}
5441	return c.header_
5442}
5443
5444func (c *ProjectsHistoriesExecutionsStepsGetCall) doRequest(alt string) (*http.Response, error) {
5445	reqHeaders := make(http.Header)
5446	for k, v := range c.header_ {
5447		reqHeaders[k] = v
5448	}
5449	reqHeaders.Set("User-Agent", c.s.userAgent())
5450	if c.ifNoneMatch_ != "" {
5451		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5452	}
5453	var body io.Reader = nil
5454	c.urlParams_.Set("alt", alt)
5455	c.urlParams_.Set("prettyPrint", "false")
5456	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}")
5457	urls += "?" + c.urlParams_.Encode()
5458	req, err := http.NewRequest("GET", urls, body)
5459	if err != nil {
5460		return nil, err
5461	}
5462	req.Header = reqHeaders
5463	googleapi.Expand(req.URL, map[string]string{
5464		"projectId":   c.projectId,
5465		"historyId":   c.historyId,
5466		"executionId": c.executionId,
5467		"stepId":      c.stepId,
5468	})
5469	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5470}
5471
5472// Do executes the "toolresults.projects.histories.executions.steps.get" call.
5473// Exactly one of *Step or error will be non-nil. Any non-2xx status
5474// code is an error. Response headers are in either
5475// *Step.ServerResponse.Header or (if a response was returned at all) in
5476// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
5477// whether the returned error was because http.StatusNotModified was
5478// returned.
5479func (c *ProjectsHistoriesExecutionsStepsGetCall) Do(opts ...googleapi.CallOption) (*Step, error) {
5480	gensupport.SetOptions(c.urlParams_, opts...)
5481	res, err := c.doRequest("json")
5482	if res != nil && res.StatusCode == http.StatusNotModified {
5483		if res.Body != nil {
5484			res.Body.Close()
5485		}
5486		return nil, &googleapi.Error{
5487			Code:   res.StatusCode,
5488			Header: res.Header,
5489		}
5490	}
5491	if err != nil {
5492		return nil, err
5493	}
5494	defer googleapi.CloseBody(res)
5495	if err := googleapi.CheckResponse(res); err != nil {
5496		return nil, err
5497	}
5498	ret := &Step{
5499		ServerResponse: googleapi.ServerResponse{
5500			Header:         res.Header,
5501			HTTPStatusCode: res.StatusCode,
5502		},
5503	}
5504	target := &ret
5505	if err := gensupport.DecodeResponse(target, res); err != nil {
5506		return nil, err
5507	}
5508	return ret, nil
5509	// {
5510	//   "description": "Gets a Step.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Step does not exist",
5511	//   "httpMethod": "GET",
5512	//   "id": "toolresults.projects.histories.executions.steps.get",
5513	//   "parameterOrder": [
5514	//     "projectId",
5515	//     "historyId",
5516	//     "executionId",
5517	//     "stepId"
5518	//   ],
5519	//   "parameters": {
5520	//     "executionId": {
5521	//       "description": "A Execution id.\n\nRequired.",
5522	//       "location": "path",
5523	//       "required": true,
5524	//       "type": "string"
5525	//     },
5526	//     "historyId": {
5527	//       "description": "A History id.\n\nRequired.",
5528	//       "location": "path",
5529	//       "required": true,
5530	//       "type": "string"
5531	//     },
5532	//     "projectId": {
5533	//       "description": "A Project id.\n\nRequired.",
5534	//       "location": "path",
5535	//       "required": true,
5536	//       "type": "string"
5537	//     },
5538	//     "stepId": {
5539	//       "description": "A Step id.\n\nRequired.",
5540	//       "location": "path",
5541	//       "required": true,
5542	//       "type": "string"
5543	//     }
5544	//   },
5545	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
5546	//   "response": {
5547	//     "$ref": "Step"
5548	//   },
5549	//   "scopes": [
5550	//     "https://www.googleapis.com/auth/cloud-platform"
5551	//   ]
5552	// }
5553
5554}
5555
5556// method id "toolresults.projects.histories.executions.steps.getPerfMetricsSummary":
5557
5558type ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall struct {
5559	s            *Service
5560	projectId    string
5561	historyId    string
5562	executionId  string
5563	stepId       string
5564	urlParams_   gensupport.URLParams
5565	ifNoneMatch_ string
5566	ctx_         context.Context
5567	header_      http.Header
5568}
5569
5570// GetPerfMetricsSummary: Retrieves a PerfMetricsSummary.
5571//
5572// May return any of the following error code(s): - NOT_FOUND - The
5573// specified PerfMetricsSummary does not exist
5574func (r *ProjectsHistoriesExecutionsStepsService) GetPerfMetricsSummary(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall {
5575	c := &ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5576	c.projectId = projectId
5577	c.historyId = historyId
5578	c.executionId = executionId
5579	c.stepId = stepId
5580	return c
5581}
5582
5583// Fields allows partial responses to be retrieved. See
5584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5585// for more information.
5586func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall {
5587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5588	return c
5589}
5590
5591// IfNoneMatch sets the optional parameter which makes the operation
5592// fail if the object's ETag matches the given value. This is useful for
5593// getting updates only after the object has changed since the last
5594// request. Use googleapi.IsNotModified to check whether the response
5595// error from Do is the result of In-None-Match.
5596func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall {
5597	c.ifNoneMatch_ = entityTag
5598	return c
5599}
5600
5601// Context sets the context to be used in this call's Do method. Any
5602// pending HTTP request will be aborted if the provided context is
5603// canceled.
5604func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall {
5605	c.ctx_ = ctx
5606	return c
5607}
5608
5609// Header returns an http.Header that can be modified by the caller to
5610// add HTTP headers to the request.
5611func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) Header() http.Header {
5612	if c.header_ == nil {
5613		c.header_ = make(http.Header)
5614	}
5615	return c.header_
5616}
5617
5618func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) doRequest(alt string) (*http.Response, error) {
5619	reqHeaders := make(http.Header)
5620	for k, v := range c.header_ {
5621		reqHeaders[k] = v
5622	}
5623	reqHeaders.Set("User-Agent", c.s.userAgent())
5624	if c.ifNoneMatch_ != "" {
5625		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5626	}
5627	var body io.Reader = nil
5628	c.urlParams_.Set("alt", alt)
5629	c.urlParams_.Set("prettyPrint", "false")
5630	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary")
5631	urls += "?" + c.urlParams_.Encode()
5632	req, err := http.NewRequest("GET", urls, body)
5633	if err != nil {
5634		return nil, err
5635	}
5636	req.Header = reqHeaders
5637	googleapi.Expand(req.URL, map[string]string{
5638		"projectId":   c.projectId,
5639		"historyId":   c.historyId,
5640		"executionId": c.executionId,
5641		"stepId":      c.stepId,
5642	})
5643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5644}
5645
5646// Do executes the "toolresults.projects.histories.executions.steps.getPerfMetricsSummary" call.
5647// Exactly one of *PerfMetricsSummary or error will be non-nil. Any
5648// non-2xx status code is an error. Response headers are in either
5649// *PerfMetricsSummary.ServerResponse.Header or (if a response was
5650// returned at all) in error.(*googleapi.Error).Header. Use
5651// googleapi.IsNotModified to check whether the returned error was
5652// because http.StatusNotModified was returned.
5653func (c *ProjectsHistoriesExecutionsStepsGetPerfMetricsSummaryCall) Do(opts ...googleapi.CallOption) (*PerfMetricsSummary, error) {
5654	gensupport.SetOptions(c.urlParams_, opts...)
5655	res, err := c.doRequest("json")
5656	if res != nil && res.StatusCode == http.StatusNotModified {
5657		if res.Body != nil {
5658			res.Body.Close()
5659		}
5660		return nil, &googleapi.Error{
5661			Code:   res.StatusCode,
5662			Header: res.Header,
5663		}
5664	}
5665	if err != nil {
5666		return nil, err
5667	}
5668	defer googleapi.CloseBody(res)
5669	if err := googleapi.CheckResponse(res); err != nil {
5670		return nil, err
5671	}
5672	ret := &PerfMetricsSummary{
5673		ServerResponse: googleapi.ServerResponse{
5674			Header:         res.Header,
5675			HTTPStatusCode: res.StatusCode,
5676		},
5677	}
5678	target := &ret
5679	if err := gensupport.DecodeResponse(target, res); err != nil {
5680		return nil, err
5681	}
5682	return ret, nil
5683	// {
5684	//   "description": "Retrieves a PerfMetricsSummary.\n\nMay return any of the following error code(s): - NOT_FOUND - The specified PerfMetricsSummary does not exist",
5685	//   "httpMethod": "GET",
5686	//   "id": "toolresults.projects.histories.executions.steps.getPerfMetricsSummary",
5687	//   "parameterOrder": [
5688	//     "projectId",
5689	//     "historyId",
5690	//     "executionId",
5691	//     "stepId"
5692	//   ],
5693	//   "parameters": {
5694	//     "executionId": {
5695	//       "description": "A tool results execution ID.",
5696	//       "location": "path",
5697	//       "required": true,
5698	//       "type": "string"
5699	//     },
5700	//     "historyId": {
5701	//       "description": "A tool results history ID.",
5702	//       "location": "path",
5703	//       "required": true,
5704	//       "type": "string"
5705	//     },
5706	//     "projectId": {
5707	//       "description": "The cloud project",
5708	//       "location": "path",
5709	//       "required": true,
5710	//       "type": "string"
5711	//     },
5712	//     "stepId": {
5713	//       "description": "A tool results step ID.",
5714	//       "location": "path",
5715	//       "required": true,
5716	//       "type": "string"
5717	//     }
5718	//   },
5719	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary",
5720	//   "response": {
5721	//     "$ref": "PerfMetricsSummary"
5722	//   },
5723	//   "scopes": [
5724	//     "https://www.googleapis.com/auth/cloud-platform"
5725	//   ]
5726	// }
5727
5728}
5729
5730// method id "toolresults.projects.histories.executions.steps.list":
5731
5732type ProjectsHistoriesExecutionsStepsListCall struct {
5733	s            *Service
5734	projectId    string
5735	historyId    string
5736	executionId  string
5737	urlParams_   gensupport.URLParams
5738	ifNoneMatch_ string
5739	ctx_         context.Context
5740	header_      http.Header
5741}
5742
5743// List: Lists Steps for a given Execution.
5744//
5745// The steps are sorted by creation_time in descending order. The
5746// step_id key will be used to order the steps with the same
5747// creation_time.
5748//
5749// May return any of the following canonical error codes:
5750//
5751// - PERMISSION_DENIED - if the user is not authorized to read project -
5752// INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION
5753// - if an argument in the request happens to be invalid; e.g. if an
5754// attempt is made to list the children of a nonexistent Step -
5755// NOT_FOUND - if the containing Execution does not exist
5756func (r *ProjectsHistoriesExecutionsStepsService) List(projectId string, historyId string, executionId string) *ProjectsHistoriesExecutionsStepsListCall {
5757	c := &ProjectsHistoriesExecutionsStepsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5758	c.projectId = projectId
5759	c.historyId = historyId
5760	c.executionId = executionId
5761	return c
5762}
5763
5764// PageSize sets the optional parameter "pageSize": The maximum number
5765// of Steps to fetch.
5766//
5767// Default value: 25. The server will use this default if the field is
5768// not set or has a value of 0.
5769func (c *ProjectsHistoriesExecutionsStepsListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsStepsListCall {
5770	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
5771	return c
5772}
5773
5774// PageToken sets the optional parameter "pageToken": A continuation
5775// token to resume the query at the next item.
5776func (c *ProjectsHistoriesExecutionsStepsListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsStepsListCall {
5777	c.urlParams_.Set("pageToken", pageToken)
5778	return c
5779}
5780
5781// Fields allows partial responses to be retrieved. See
5782// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5783// for more information.
5784func (c *ProjectsHistoriesExecutionsStepsListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsListCall {
5785	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5786	return c
5787}
5788
5789// IfNoneMatch sets the optional parameter which makes the operation
5790// fail if the object's ETag matches the given value. This is useful for
5791// getting updates only after the object has changed since the last
5792// request. Use googleapi.IsNotModified to check whether the response
5793// error from Do is the result of In-None-Match.
5794func (c *ProjectsHistoriesExecutionsStepsListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsListCall {
5795	c.ifNoneMatch_ = entityTag
5796	return c
5797}
5798
5799// Context sets the context to be used in this call's Do method. Any
5800// pending HTTP request will be aborted if the provided context is
5801// canceled.
5802func (c *ProjectsHistoriesExecutionsStepsListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsListCall {
5803	c.ctx_ = ctx
5804	return c
5805}
5806
5807// Header returns an http.Header that can be modified by the caller to
5808// add HTTP headers to the request.
5809func (c *ProjectsHistoriesExecutionsStepsListCall) Header() http.Header {
5810	if c.header_ == nil {
5811		c.header_ = make(http.Header)
5812	}
5813	return c.header_
5814}
5815
5816func (c *ProjectsHistoriesExecutionsStepsListCall) doRequest(alt string) (*http.Response, error) {
5817	reqHeaders := make(http.Header)
5818	for k, v := range c.header_ {
5819		reqHeaders[k] = v
5820	}
5821	reqHeaders.Set("User-Agent", c.s.userAgent())
5822	if c.ifNoneMatch_ != "" {
5823		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5824	}
5825	var body io.Reader = nil
5826	c.urlParams_.Set("alt", alt)
5827	c.urlParams_.Set("prettyPrint", "false")
5828	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps")
5829	urls += "?" + c.urlParams_.Encode()
5830	req, err := http.NewRequest("GET", urls, body)
5831	if err != nil {
5832		return nil, err
5833	}
5834	req.Header = reqHeaders
5835	googleapi.Expand(req.URL, map[string]string{
5836		"projectId":   c.projectId,
5837		"historyId":   c.historyId,
5838		"executionId": c.executionId,
5839	})
5840	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5841}
5842
5843// Do executes the "toolresults.projects.histories.executions.steps.list" call.
5844// Exactly one of *ListStepsResponse or error will be non-nil. Any
5845// non-2xx status code is an error. Response headers are in either
5846// *ListStepsResponse.ServerResponse.Header or (if a response was
5847// returned at all) in error.(*googleapi.Error).Header. Use
5848// googleapi.IsNotModified to check whether the returned error was
5849// because http.StatusNotModified was returned.
5850func (c *ProjectsHistoriesExecutionsStepsListCall) Do(opts ...googleapi.CallOption) (*ListStepsResponse, error) {
5851	gensupport.SetOptions(c.urlParams_, opts...)
5852	res, err := c.doRequest("json")
5853	if res != nil && res.StatusCode == http.StatusNotModified {
5854		if res.Body != nil {
5855			res.Body.Close()
5856		}
5857		return nil, &googleapi.Error{
5858			Code:   res.StatusCode,
5859			Header: res.Header,
5860		}
5861	}
5862	if err != nil {
5863		return nil, err
5864	}
5865	defer googleapi.CloseBody(res)
5866	if err := googleapi.CheckResponse(res); err != nil {
5867		return nil, err
5868	}
5869	ret := &ListStepsResponse{
5870		ServerResponse: googleapi.ServerResponse{
5871			Header:         res.Header,
5872			HTTPStatusCode: res.StatusCode,
5873		},
5874	}
5875	target := &ret
5876	if err := gensupport.DecodeResponse(target, res); err != nil {
5877		return nil, err
5878	}
5879	return ret, nil
5880	// {
5881	//   "description": "Lists Steps for a given Execution.\n\nThe steps are sorted by creation_time in descending order. The step_id key will be used to order the steps with the same creation_time.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if an argument in the request happens to be invalid; e.g. if an attempt is made to list the children of a nonexistent Step - NOT_FOUND - if the containing Execution does not exist",
5882	//   "httpMethod": "GET",
5883	//   "id": "toolresults.projects.histories.executions.steps.list",
5884	//   "parameterOrder": [
5885	//     "projectId",
5886	//     "historyId",
5887	//     "executionId"
5888	//   ],
5889	//   "parameters": {
5890	//     "executionId": {
5891	//       "description": "A Execution id.\n\nRequired.",
5892	//       "location": "path",
5893	//       "required": true,
5894	//       "type": "string"
5895	//     },
5896	//     "historyId": {
5897	//       "description": "A History id.\n\nRequired.",
5898	//       "location": "path",
5899	//       "required": true,
5900	//       "type": "string"
5901	//     },
5902	//     "pageSize": {
5903	//       "description": "The maximum number of Steps to fetch.\n\nDefault value: 25. The server will use this default if the field is not set or has a value of 0.\n\nOptional.",
5904	//       "format": "int32",
5905	//       "location": "query",
5906	//       "type": "integer"
5907	//     },
5908	//     "pageToken": {
5909	//       "description": "A continuation token to resume the query at the next item.\n\nOptional.",
5910	//       "location": "query",
5911	//       "type": "string"
5912	//     },
5913	//     "projectId": {
5914	//       "description": "A Project id.\n\nRequired.",
5915	//       "location": "path",
5916	//       "required": true,
5917	//       "type": "string"
5918	//     }
5919	//   },
5920	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps",
5921	//   "response": {
5922	//     "$ref": "ListStepsResponse"
5923	//   },
5924	//   "scopes": [
5925	//     "https://www.googleapis.com/auth/cloud-platform"
5926	//   ]
5927	// }
5928
5929}
5930
5931// Pages invokes f for each page of results.
5932// A non-nil error returned from f will halt the iteration.
5933// The provided context supersedes any context provided to the Context method.
5934func (c *ProjectsHistoriesExecutionsStepsListCall) Pages(ctx context.Context, f func(*ListStepsResponse) error) error {
5935	c.ctx_ = ctx
5936	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5937	for {
5938		x, err := c.Do()
5939		if err != nil {
5940			return err
5941		}
5942		if err := f(x); err != nil {
5943			return err
5944		}
5945		if x.NextPageToken == "" {
5946			return nil
5947		}
5948		c.PageToken(x.NextPageToken)
5949	}
5950}
5951
5952// method id "toolresults.projects.histories.executions.steps.patch":
5953
5954type ProjectsHistoriesExecutionsStepsPatchCall struct {
5955	s           *Service
5956	projectId   string
5957	historyId   string
5958	executionId string
5959	stepId      string
5960	step        *Step
5961	urlParams_  gensupport.URLParams
5962	ctx_        context.Context
5963	header_     http.Header
5964}
5965
5966// Patch: Updates an existing Step with the supplied partial
5967// entity.
5968//
5969// May return any of the following canonical error codes:
5970//
5971// - PERMISSION_DENIED - if the user is not authorized to write project
5972// - INVALID_ARGUMENT - if the request is malformed -
5973// FAILED_PRECONDITION - if the requested state transition is illegal
5974// (e.g try to upload a duplicate xml file), if the updated step is too
5975// large (more than 10Mib) - NOT_FOUND - if the containing Execution
5976// does not exist
5977func (r *ProjectsHistoriesExecutionsStepsService) Patch(projectId string, historyId string, executionId string, stepId string, step *Step) *ProjectsHistoriesExecutionsStepsPatchCall {
5978	c := &ProjectsHistoriesExecutionsStepsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5979	c.projectId = projectId
5980	c.historyId = historyId
5981	c.executionId = executionId
5982	c.stepId = stepId
5983	c.step = step
5984	return c
5985}
5986
5987// RequestId sets the optional parameter "requestId": A unique request
5988// ID for server to detect duplicated requests. For example, a
5989// UUID.
5990//
5991// Optional, but strongly recommended.
5992func (c *ProjectsHistoriesExecutionsStepsPatchCall) RequestId(requestId string) *ProjectsHistoriesExecutionsStepsPatchCall {
5993	c.urlParams_.Set("requestId", requestId)
5994	return c
5995}
5996
5997// Fields allows partial responses to be retrieved. See
5998// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5999// for more information.
6000func (c *ProjectsHistoriesExecutionsStepsPatchCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPatchCall {
6001	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6002	return c
6003}
6004
6005// Context sets the context to be used in this call's Do method. Any
6006// pending HTTP request will be aborted if the provided context is
6007// canceled.
6008func (c *ProjectsHistoriesExecutionsStepsPatchCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPatchCall {
6009	c.ctx_ = ctx
6010	return c
6011}
6012
6013// Header returns an http.Header that can be modified by the caller to
6014// add HTTP headers to the request.
6015func (c *ProjectsHistoriesExecutionsStepsPatchCall) Header() http.Header {
6016	if c.header_ == nil {
6017		c.header_ = make(http.Header)
6018	}
6019	return c.header_
6020}
6021
6022func (c *ProjectsHistoriesExecutionsStepsPatchCall) doRequest(alt string) (*http.Response, error) {
6023	reqHeaders := make(http.Header)
6024	for k, v := range c.header_ {
6025		reqHeaders[k] = v
6026	}
6027	reqHeaders.Set("User-Agent", c.s.userAgent())
6028	var body io.Reader = nil
6029	body, err := googleapi.WithoutDataWrapper.JSONReader(c.step)
6030	if err != nil {
6031		return nil, err
6032	}
6033	reqHeaders.Set("Content-Type", "application/json")
6034	c.urlParams_.Set("alt", alt)
6035	c.urlParams_.Set("prettyPrint", "false")
6036	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}")
6037	urls += "?" + c.urlParams_.Encode()
6038	req, err := http.NewRequest("PATCH", urls, body)
6039	if err != nil {
6040		return nil, err
6041	}
6042	req.Header = reqHeaders
6043	googleapi.Expand(req.URL, map[string]string{
6044		"projectId":   c.projectId,
6045		"historyId":   c.historyId,
6046		"executionId": c.executionId,
6047		"stepId":      c.stepId,
6048	})
6049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6050}
6051
6052// Do executes the "toolresults.projects.histories.executions.steps.patch" call.
6053// Exactly one of *Step or error will be non-nil. Any non-2xx status
6054// code is an error. Response headers are in either
6055// *Step.ServerResponse.Header or (if a response was returned at all) in
6056// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
6057// whether the returned error was because http.StatusNotModified was
6058// returned.
6059func (c *ProjectsHistoriesExecutionsStepsPatchCall) Do(opts ...googleapi.CallOption) (*Step, error) {
6060	gensupport.SetOptions(c.urlParams_, opts...)
6061	res, err := c.doRequest("json")
6062	if res != nil && res.StatusCode == http.StatusNotModified {
6063		if res.Body != nil {
6064			res.Body.Close()
6065		}
6066		return nil, &googleapi.Error{
6067			Code:   res.StatusCode,
6068			Header: res.Header,
6069		}
6070	}
6071	if err != nil {
6072		return nil, err
6073	}
6074	defer googleapi.CloseBody(res)
6075	if err := googleapi.CheckResponse(res); err != nil {
6076		return nil, err
6077	}
6078	ret := &Step{
6079		ServerResponse: googleapi.ServerResponse{
6080			Header:         res.Header,
6081			HTTPStatusCode: res.StatusCode,
6082		},
6083	}
6084	target := &ret
6085	if err := gensupport.DecodeResponse(target, res); err != nil {
6086		return nil, err
6087	}
6088	return ret, nil
6089	// {
6090	//   "description": "Updates an existing Step with the supplied partial entity.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal (e.g try to upload a duplicate xml file), if the updated step is too large (more than 10Mib) - NOT_FOUND - if the containing Execution does not exist",
6091	//   "httpMethod": "PATCH",
6092	//   "id": "toolresults.projects.histories.executions.steps.patch",
6093	//   "parameterOrder": [
6094	//     "projectId",
6095	//     "historyId",
6096	//     "executionId",
6097	//     "stepId"
6098	//   ],
6099	//   "parameters": {
6100	//     "executionId": {
6101	//       "description": "A Execution id.\n\nRequired.",
6102	//       "location": "path",
6103	//       "required": true,
6104	//       "type": "string"
6105	//     },
6106	//     "historyId": {
6107	//       "description": "A History id.\n\nRequired.",
6108	//       "location": "path",
6109	//       "required": true,
6110	//       "type": "string"
6111	//     },
6112	//     "projectId": {
6113	//       "description": "A Project id.\n\nRequired.",
6114	//       "location": "path",
6115	//       "required": true,
6116	//       "type": "string"
6117	//     },
6118	//     "requestId": {
6119	//       "description": "A unique request ID for server to detect duplicated requests. For example, a UUID.\n\nOptional, but strongly recommended.",
6120	//       "location": "query",
6121	//       "type": "string"
6122	//     },
6123	//     "stepId": {
6124	//       "description": "A Step id.\n\nRequired.",
6125	//       "location": "path",
6126	//       "required": true,
6127	//       "type": "string"
6128	//     }
6129	//   },
6130	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}",
6131	//   "request": {
6132	//     "$ref": "Step"
6133	//   },
6134	//   "response": {
6135	//     "$ref": "Step"
6136	//   },
6137	//   "scopes": [
6138	//     "https://www.googleapis.com/auth/cloud-platform"
6139	//   ]
6140	// }
6141
6142}
6143
6144// method id "toolresults.projects.histories.executions.steps.publishXunitXmlFiles":
6145
6146type ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall struct {
6147	s                           *Service
6148	projectId                   string
6149	historyId                   string
6150	executionId                 string
6151	stepId                      string
6152	publishxunitxmlfilesrequest *PublishXunitXmlFilesRequest
6153	urlParams_                  gensupport.URLParams
6154	ctx_                        context.Context
6155	header_                     http.Header
6156}
6157
6158// PublishXunitXmlFiles: Publish xml files to an existing Step.
6159//
6160// May return any of the following canonical error codes:
6161//
6162// - PERMISSION_DENIED - if the user is not authorized to write project
6163// - INVALID_ARGUMENT - if the request is malformed -
6164// FAILED_PRECONDITION - if the requested state transition is illegal,
6165// e.g try to upload a duplicate xml file or a file too large. -
6166// NOT_FOUND - if the containing Execution does not exist
6167func (r *ProjectsHistoriesExecutionsStepsService) PublishXunitXmlFiles(projectId string, historyId string, executionId string, stepId string, publishxunitxmlfilesrequest *PublishXunitXmlFilesRequest) *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall {
6168	c := &ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6169	c.projectId = projectId
6170	c.historyId = historyId
6171	c.executionId = executionId
6172	c.stepId = stepId
6173	c.publishxunitxmlfilesrequest = publishxunitxmlfilesrequest
6174	return c
6175}
6176
6177// Fields allows partial responses to be retrieved. See
6178// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6179// for more information.
6180func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall {
6181	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6182	return c
6183}
6184
6185// Context sets the context to be used in this call's Do method. Any
6186// pending HTTP request will be aborted if the provided context is
6187// canceled.
6188func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall {
6189	c.ctx_ = ctx
6190	return c
6191}
6192
6193// Header returns an http.Header that can be modified by the caller to
6194// add HTTP headers to the request.
6195func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) Header() http.Header {
6196	if c.header_ == nil {
6197		c.header_ = make(http.Header)
6198	}
6199	return c.header_
6200}
6201
6202func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) doRequest(alt string) (*http.Response, error) {
6203	reqHeaders := make(http.Header)
6204	for k, v := range c.header_ {
6205		reqHeaders[k] = v
6206	}
6207	reqHeaders.Set("User-Agent", c.s.userAgent())
6208	var body io.Reader = nil
6209	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publishxunitxmlfilesrequest)
6210	if err != nil {
6211		return nil, err
6212	}
6213	reqHeaders.Set("Content-Type", "application/json")
6214	c.urlParams_.Set("alt", alt)
6215	c.urlParams_.Set("prettyPrint", "false")
6216	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles")
6217	urls += "?" + c.urlParams_.Encode()
6218	req, err := http.NewRequest("POST", urls, body)
6219	if err != nil {
6220		return nil, err
6221	}
6222	req.Header = reqHeaders
6223	googleapi.Expand(req.URL, map[string]string{
6224		"projectId":   c.projectId,
6225		"historyId":   c.historyId,
6226		"executionId": c.executionId,
6227		"stepId":      c.stepId,
6228	})
6229	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6230}
6231
6232// Do executes the "toolresults.projects.histories.executions.steps.publishXunitXmlFiles" call.
6233// Exactly one of *Step or error will be non-nil. Any non-2xx status
6234// code is an error. Response headers are in either
6235// *Step.ServerResponse.Header or (if a response was returned at all) in
6236// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
6237// whether the returned error was because http.StatusNotModified was
6238// returned.
6239func (c *ProjectsHistoriesExecutionsStepsPublishXunitXmlFilesCall) Do(opts ...googleapi.CallOption) (*Step, error) {
6240	gensupport.SetOptions(c.urlParams_, opts...)
6241	res, err := c.doRequest("json")
6242	if res != nil && res.StatusCode == http.StatusNotModified {
6243		if res.Body != nil {
6244			res.Body.Close()
6245		}
6246		return nil, &googleapi.Error{
6247			Code:   res.StatusCode,
6248			Header: res.Header,
6249		}
6250	}
6251	if err != nil {
6252		return nil, err
6253	}
6254	defer googleapi.CloseBody(res)
6255	if err := googleapi.CheckResponse(res); err != nil {
6256		return nil, err
6257	}
6258	ret := &Step{
6259		ServerResponse: googleapi.ServerResponse{
6260			Header:         res.Header,
6261			HTTPStatusCode: res.StatusCode,
6262		},
6263	}
6264	target := &ret
6265	if err := gensupport.DecodeResponse(target, res); err != nil {
6266		return nil, err
6267	}
6268	return ret, nil
6269	// {
6270	//   "description": "Publish xml files to an existing Step.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal, e.g try to upload a duplicate xml file or a file too large. - NOT_FOUND - if the containing Execution does not exist",
6271	//   "httpMethod": "POST",
6272	//   "id": "toolresults.projects.histories.executions.steps.publishXunitXmlFiles",
6273	//   "parameterOrder": [
6274	//     "projectId",
6275	//     "historyId",
6276	//     "executionId",
6277	//     "stepId"
6278	//   ],
6279	//   "parameters": {
6280	//     "executionId": {
6281	//       "description": "A Execution id.\n\nRequired.",
6282	//       "location": "path",
6283	//       "required": true,
6284	//       "type": "string"
6285	//     },
6286	//     "historyId": {
6287	//       "description": "A History id.\n\nRequired.",
6288	//       "location": "path",
6289	//       "required": true,
6290	//       "type": "string"
6291	//     },
6292	//     "projectId": {
6293	//       "description": "A Project id.\n\nRequired.",
6294	//       "location": "path",
6295	//       "required": true,
6296	//       "type": "string"
6297	//     },
6298	//     "stepId": {
6299	//       "description": "A Step id. Note: This step must include a TestExecutionStep.\n\nRequired.",
6300	//       "location": "path",
6301	//       "required": true,
6302	//       "type": "string"
6303	//     }
6304	//   },
6305	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}:publishXunitXmlFiles",
6306	//   "request": {
6307	//     "$ref": "PublishXunitXmlFilesRequest"
6308	//   },
6309	//   "response": {
6310	//     "$ref": "Step"
6311	//   },
6312	//   "scopes": [
6313	//     "https://www.googleapis.com/auth/cloud-platform"
6314	//   ]
6315	// }
6316
6317}
6318
6319// method id "toolresults.projects.histories.executions.steps.perfMetricsSummary.create":
6320
6321type ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall struct {
6322	s                  *Service
6323	projectId          string
6324	historyId          string
6325	executionId        string
6326	stepId             string
6327	perfmetricssummary *PerfMetricsSummary
6328	urlParams_         gensupport.URLParams
6329	ctx_               context.Context
6330	header_            http.Header
6331}
6332
6333// Create: Creates a PerfMetricsSummary resource. Returns the existing
6334// one if it has already been created.
6335//
6336// May return any of the following error code(s): - NOT_FOUND - The
6337// containing Step does not exist
6338func (r *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryService) Create(projectId string, historyId string, executionId string, stepId string, perfmetricssummary *PerfMetricsSummary) *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall {
6339	c := &ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6340	c.projectId = projectId
6341	c.historyId = historyId
6342	c.executionId = executionId
6343	c.stepId = stepId
6344	c.perfmetricssummary = perfmetricssummary
6345	return c
6346}
6347
6348// Fields allows partial responses to be retrieved. See
6349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6350// for more information.
6351func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall {
6352	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6353	return c
6354}
6355
6356// Context sets the context to be used in this call's Do method. Any
6357// pending HTTP request will be aborted if the provided context is
6358// canceled.
6359func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall {
6360	c.ctx_ = ctx
6361	return c
6362}
6363
6364// Header returns an http.Header that can be modified by the caller to
6365// add HTTP headers to the request.
6366func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) Header() http.Header {
6367	if c.header_ == nil {
6368		c.header_ = make(http.Header)
6369	}
6370	return c.header_
6371}
6372
6373func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) doRequest(alt string) (*http.Response, error) {
6374	reqHeaders := make(http.Header)
6375	for k, v := range c.header_ {
6376		reqHeaders[k] = v
6377	}
6378	reqHeaders.Set("User-Agent", c.s.userAgent())
6379	var body io.Reader = nil
6380	body, err := googleapi.WithoutDataWrapper.JSONReader(c.perfmetricssummary)
6381	if err != nil {
6382		return nil, err
6383	}
6384	reqHeaders.Set("Content-Type", "application/json")
6385	c.urlParams_.Set("alt", alt)
6386	c.urlParams_.Set("prettyPrint", "false")
6387	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary")
6388	urls += "?" + c.urlParams_.Encode()
6389	req, err := http.NewRequest("POST", urls, body)
6390	if err != nil {
6391		return nil, err
6392	}
6393	req.Header = reqHeaders
6394	googleapi.Expand(req.URL, map[string]string{
6395		"projectId":   c.projectId,
6396		"historyId":   c.historyId,
6397		"executionId": c.executionId,
6398		"stepId":      c.stepId,
6399	})
6400	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6401}
6402
6403// Do executes the "toolresults.projects.histories.executions.steps.perfMetricsSummary.create" call.
6404// Exactly one of *PerfMetricsSummary or error will be non-nil. Any
6405// non-2xx status code is an error. Response headers are in either
6406// *PerfMetricsSummary.ServerResponse.Header or (if a response was
6407// returned at all) in error.(*googleapi.Error).Header. Use
6408// googleapi.IsNotModified to check whether the returned error was
6409// because http.StatusNotModified was returned.
6410func (c *ProjectsHistoriesExecutionsStepsPerfMetricsSummaryCreateCall) Do(opts ...googleapi.CallOption) (*PerfMetricsSummary, error) {
6411	gensupport.SetOptions(c.urlParams_, opts...)
6412	res, err := c.doRequest("json")
6413	if res != nil && res.StatusCode == http.StatusNotModified {
6414		if res.Body != nil {
6415			res.Body.Close()
6416		}
6417		return nil, &googleapi.Error{
6418			Code:   res.StatusCode,
6419			Header: res.Header,
6420		}
6421	}
6422	if err != nil {
6423		return nil, err
6424	}
6425	defer googleapi.CloseBody(res)
6426	if err := googleapi.CheckResponse(res); err != nil {
6427		return nil, err
6428	}
6429	ret := &PerfMetricsSummary{
6430		ServerResponse: googleapi.ServerResponse{
6431			Header:         res.Header,
6432			HTTPStatusCode: res.StatusCode,
6433		},
6434	}
6435	target := &ret
6436	if err := gensupport.DecodeResponse(target, res); err != nil {
6437		return nil, err
6438	}
6439	return ret, nil
6440	// {
6441	//   "description": "Creates a PerfMetricsSummary resource. Returns the existing one if it has already been created.\n\nMay return any of the following error code(s): - NOT_FOUND - The containing Step does not exist",
6442	//   "httpMethod": "POST",
6443	//   "id": "toolresults.projects.histories.executions.steps.perfMetricsSummary.create",
6444	//   "parameterOrder": [
6445	//     "projectId",
6446	//     "historyId",
6447	//     "executionId",
6448	//     "stepId"
6449	//   ],
6450	//   "parameters": {
6451	//     "executionId": {
6452	//       "description": "A tool results execution ID.",
6453	//       "location": "path",
6454	//       "required": true,
6455	//       "type": "string"
6456	//     },
6457	//     "historyId": {
6458	//       "description": "A tool results history ID.",
6459	//       "location": "path",
6460	//       "required": true,
6461	//       "type": "string"
6462	//     },
6463	//     "projectId": {
6464	//       "description": "The cloud project",
6465	//       "location": "path",
6466	//       "required": true,
6467	//       "type": "string"
6468	//     },
6469	//     "stepId": {
6470	//       "description": "A tool results step ID.",
6471	//       "location": "path",
6472	//       "required": true,
6473	//       "type": "string"
6474	//     }
6475	//   },
6476	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary",
6477	//   "request": {
6478	//     "$ref": "PerfMetricsSummary"
6479	//   },
6480	//   "response": {
6481	//     "$ref": "PerfMetricsSummary"
6482	//   },
6483	//   "scopes": [
6484	//     "https://www.googleapis.com/auth/cloud-platform"
6485	//   ]
6486	// }
6487
6488}
6489
6490// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.create":
6491
6492type ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall struct {
6493	s                *Service
6494	projectId        string
6495	historyId        string
6496	executionId      string
6497	stepId           string
6498	perfsampleseries *PerfSampleSeries
6499	urlParams_       gensupport.URLParams
6500	ctx_             context.Context
6501	header_          http.Header
6502}
6503
6504// Create: Creates a PerfSampleSeries.
6505//
6506// May return any of the following error code(s): - ALREADY_EXISTS -
6507// PerfMetricSummary already exists for the given Step - NOT_FOUND - The
6508// containing Step does not exist
6509func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService) Create(projectId string, historyId string, executionId string, stepId string, perfsampleseries *PerfSampleSeries) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall {
6510	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6511	c.projectId = projectId
6512	c.historyId = historyId
6513	c.executionId = executionId
6514	c.stepId = stepId
6515	c.perfsampleseries = perfsampleseries
6516	return c
6517}
6518
6519// Fields allows partial responses to be retrieved. See
6520// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6521// for more information.
6522func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall {
6523	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6524	return c
6525}
6526
6527// Context sets the context to be used in this call's Do method. Any
6528// pending HTTP request will be aborted if the provided context is
6529// canceled.
6530func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall {
6531	c.ctx_ = ctx
6532	return c
6533}
6534
6535// Header returns an http.Header that can be modified by the caller to
6536// add HTTP headers to the request.
6537func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) Header() http.Header {
6538	if c.header_ == nil {
6539		c.header_ = make(http.Header)
6540	}
6541	return c.header_
6542}
6543
6544func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) doRequest(alt string) (*http.Response, error) {
6545	reqHeaders := make(http.Header)
6546	for k, v := range c.header_ {
6547		reqHeaders[k] = v
6548	}
6549	reqHeaders.Set("User-Agent", c.s.userAgent())
6550	var body io.Reader = nil
6551	body, err := googleapi.WithoutDataWrapper.JSONReader(c.perfsampleseries)
6552	if err != nil {
6553		return nil, err
6554	}
6555	reqHeaders.Set("Content-Type", "application/json")
6556	c.urlParams_.Set("alt", alt)
6557	c.urlParams_.Set("prettyPrint", "false")
6558	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries")
6559	urls += "?" + c.urlParams_.Encode()
6560	req, err := http.NewRequest("POST", urls, body)
6561	if err != nil {
6562		return nil, err
6563	}
6564	req.Header = reqHeaders
6565	googleapi.Expand(req.URL, map[string]string{
6566		"projectId":   c.projectId,
6567		"historyId":   c.historyId,
6568		"executionId": c.executionId,
6569		"stepId":      c.stepId,
6570	})
6571	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6572}
6573
6574// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.create" call.
6575// Exactly one of *PerfSampleSeries or error will be non-nil. Any
6576// non-2xx status code is an error. Response headers are in either
6577// *PerfSampleSeries.ServerResponse.Header or (if a response was
6578// returned at all) in error.(*googleapi.Error).Header. Use
6579// googleapi.IsNotModified to check whether the returned error was
6580// because http.StatusNotModified was returned.
6581func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesCreateCall) Do(opts ...googleapi.CallOption) (*PerfSampleSeries, error) {
6582	gensupport.SetOptions(c.urlParams_, opts...)
6583	res, err := c.doRequest("json")
6584	if res != nil && res.StatusCode == http.StatusNotModified {
6585		if res.Body != nil {
6586			res.Body.Close()
6587		}
6588		return nil, &googleapi.Error{
6589			Code:   res.StatusCode,
6590			Header: res.Header,
6591		}
6592	}
6593	if err != nil {
6594		return nil, err
6595	}
6596	defer googleapi.CloseBody(res)
6597	if err := googleapi.CheckResponse(res); err != nil {
6598		return nil, err
6599	}
6600	ret := &PerfSampleSeries{
6601		ServerResponse: googleapi.ServerResponse{
6602			Header:         res.Header,
6603			HTTPStatusCode: res.StatusCode,
6604		},
6605	}
6606	target := &ret
6607	if err := gensupport.DecodeResponse(target, res); err != nil {
6608		return nil, err
6609	}
6610	return ret, nil
6611	// {
6612	//   "description": "Creates a PerfSampleSeries.\n\nMay 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",
6613	//   "httpMethod": "POST",
6614	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.create",
6615	//   "parameterOrder": [
6616	//     "projectId",
6617	//     "historyId",
6618	//     "executionId",
6619	//     "stepId"
6620	//   ],
6621	//   "parameters": {
6622	//     "executionId": {
6623	//       "description": "A tool results execution ID.",
6624	//       "location": "path",
6625	//       "required": true,
6626	//       "type": "string"
6627	//     },
6628	//     "historyId": {
6629	//       "description": "A tool results history ID.",
6630	//       "location": "path",
6631	//       "required": true,
6632	//       "type": "string"
6633	//     },
6634	//     "projectId": {
6635	//       "description": "The cloud project",
6636	//       "location": "path",
6637	//       "required": true,
6638	//       "type": "string"
6639	//     },
6640	//     "stepId": {
6641	//       "description": "A tool results step ID.",
6642	//       "location": "path",
6643	//       "required": true,
6644	//       "type": "string"
6645	//     }
6646	//   },
6647	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries",
6648	//   "request": {
6649	//     "$ref": "PerfSampleSeries"
6650	//   },
6651	//   "response": {
6652	//     "$ref": "PerfSampleSeries"
6653	//   },
6654	//   "scopes": [
6655	//     "https://www.googleapis.com/auth/cloud-platform"
6656	//   ]
6657	// }
6658
6659}
6660
6661// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.get":
6662
6663type ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall struct {
6664	s              *Service
6665	projectId      string
6666	historyId      string
6667	executionId    string
6668	stepId         string
6669	sampleSeriesId string
6670	urlParams_     gensupport.URLParams
6671	ifNoneMatch_   string
6672	ctx_           context.Context
6673	header_        http.Header
6674}
6675
6676// Get: Gets a PerfSampleSeries.
6677//
6678// May return any of the following error code(s): - NOT_FOUND - The
6679// specified PerfSampleSeries does not exist
6680func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService) Get(projectId string, historyId string, executionId string, stepId string, sampleSeriesId string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall {
6681	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6682	c.projectId = projectId
6683	c.historyId = historyId
6684	c.executionId = executionId
6685	c.stepId = stepId
6686	c.sampleSeriesId = sampleSeriesId
6687	return c
6688}
6689
6690// Fields allows partial responses to be retrieved. See
6691// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6692// for more information.
6693func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall {
6694	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6695	return c
6696}
6697
6698// IfNoneMatch sets the optional parameter which makes the operation
6699// fail if the object's ETag matches the given value. This is useful for
6700// getting updates only after the object has changed since the last
6701// request. Use googleapi.IsNotModified to check whether the response
6702// error from Do is the result of In-None-Match.
6703func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall {
6704	c.ifNoneMatch_ = entityTag
6705	return c
6706}
6707
6708// Context sets the context to be used in this call's Do method. Any
6709// pending HTTP request will be aborted if the provided context is
6710// canceled.
6711func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall {
6712	c.ctx_ = ctx
6713	return c
6714}
6715
6716// Header returns an http.Header that can be modified by the caller to
6717// add HTTP headers to the request.
6718func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) Header() http.Header {
6719	if c.header_ == nil {
6720		c.header_ = make(http.Header)
6721	}
6722	return c.header_
6723}
6724
6725func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) doRequest(alt string) (*http.Response, error) {
6726	reqHeaders := make(http.Header)
6727	for k, v := range c.header_ {
6728		reqHeaders[k] = v
6729	}
6730	reqHeaders.Set("User-Agent", c.s.userAgent())
6731	if c.ifNoneMatch_ != "" {
6732		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6733	}
6734	var body io.Reader = nil
6735	c.urlParams_.Set("alt", alt)
6736	c.urlParams_.Set("prettyPrint", "false")
6737	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}")
6738	urls += "?" + c.urlParams_.Encode()
6739	req, err := http.NewRequest("GET", urls, body)
6740	if err != nil {
6741		return nil, err
6742	}
6743	req.Header = reqHeaders
6744	googleapi.Expand(req.URL, map[string]string{
6745		"projectId":      c.projectId,
6746		"historyId":      c.historyId,
6747		"executionId":    c.executionId,
6748		"stepId":         c.stepId,
6749		"sampleSeriesId": c.sampleSeriesId,
6750	})
6751	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6752}
6753
6754// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.get" call.
6755// Exactly one of *PerfSampleSeries or error will be non-nil. Any
6756// non-2xx status code is an error. Response headers are in either
6757// *PerfSampleSeries.ServerResponse.Header or (if a response was
6758// returned at all) in error.(*googleapi.Error).Header. Use
6759// googleapi.IsNotModified to check whether the returned error was
6760// because http.StatusNotModified was returned.
6761func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesGetCall) Do(opts ...googleapi.CallOption) (*PerfSampleSeries, error) {
6762	gensupport.SetOptions(c.urlParams_, opts...)
6763	res, err := c.doRequest("json")
6764	if res != nil && res.StatusCode == http.StatusNotModified {
6765		if res.Body != nil {
6766			res.Body.Close()
6767		}
6768		return nil, &googleapi.Error{
6769			Code:   res.StatusCode,
6770			Header: res.Header,
6771		}
6772	}
6773	if err != nil {
6774		return nil, err
6775	}
6776	defer googleapi.CloseBody(res)
6777	if err := googleapi.CheckResponse(res); err != nil {
6778		return nil, err
6779	}
6780	ret := &PerfSampleSeries{
6781		ServerResponse: googleapi.ServerResponse{
6782			Header:         res.Header,
6783			HTTPStatusCode: res.StatusCode,
6784		},
6785	}
6786	target := &ret
6787	if err := gensupport.DecodeResponse(target, res); err != nil {
6788		return nil, err
6789	}
6790	return ret, nil
6791	// {
6792	//   "description": "Gets a PerfSampleSeries.\n\nMay return any of the following error code(s): - NOT_FOUND - The specified PerfSampleSeries does not exist",
6793	//   "httpMethod": "GET",
6794	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.get",
6795	//   "parameterOrder": [
6796	//     "projectId",
6797	//     "historyId",
6798	//     "executionId",
6799	//     "stepId",
6800	//     "sampleSeriesId"
6801	//   ],
6802	//   "parameters": {
6803	//     "executionId": {
6804	//       "description": "A tool results execution ID.",
6805	//       "location": "path",
6806	//       "required": true,
6807	//       "type": "string"
6808	//     },
6809	//     "historyId": {
6810	//       "description": "A tool results history ID.",
6811	//       "location": "path",
6812	//       "required": true,
6813	//       "type": "string"
6814	//     },
6815	//     "projectId": {
6816	//       "description": "The cloud project",
6817	//       "location": "path",
6818	//       "required": true,
6819	//       "type": "string"
6820	//     },
6821	//     "sampleSeriesId": {
6822	//       "description": "A sample series id",
6823	//       "location": "path",
6824	//       "required": true,
6825	//       "type": "string"
6826	//     },
6827	//     "stepId": {
6828	//       "description": "A tool results step ID.",
6829	//       "location": "path",
6830	//       "required": true,
6831	//       "type": "string"
6832	//     }
6833	//   },
6834	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}",
6835	//   "response": {
6836	//     "$ref": "PerfSampleSeries"
6837	//   },
6838	//   "scopes": [
6839	//     "https://www.googleapis.com/auth/cloud-platform"
6840	//   ]
6841	// }
6842
6843}
6844
6845// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.list":
6846
6847type ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall struct {
6848	s            *Service
6849	projectId    string
6850	historyId    string
6851	executionId  string
6852	stepId       string
6853	urlParams_   gensupport.URLParams
6854	ifNoneMatch_ string
6855	ctx_         context.Context
6856	header_      http.Header
6857}
6858
6859// List: Lists PerfSampleSeries for a given Step.
6860//
6861// The request provides an optional filter which specifies one or more
6862// PerfMetricsType to include in the result; if none returns all. The
6863// resulting PerfSampleSeries are sorted by ids.
6864//
6865// May return any of the following canonical error codes: - NOT_FOUND -
6866// The containing Step does not exist
6867func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesService) List(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
6868	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6869	c.projectId = projectId
6870	c.historyId = historyId
6871	c.executionId = executionId
6872	c.stepId = stepId
6873	return c
6874}
6875
6876// Filter sets the optional parameter "filter": Specify one or more
6877// PerfMetricType values such as CPU to filter the result
6878//
6879// Possible values:
6880//   "cpu"
6881//   "graphics"
6882//   "memory"
6883//   "network"
6884//   "perfMetricTypeUnspecified"
6885func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Filter(filter ...string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
6886	c.urlParams_.SetMulti("filter", append([]string{}, filter...))
6887	return c
6888}
6889
6890// Fields allows partial responses to be retrieved. See
6891// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6892// for more information.
6893func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
6894	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6895	return c
6896}
6897
6898// IfNoneMatch sets the optional parameter which makes the operation
6899// fail if the object's ETag matches the given value. This is useful for
6900// getting updates only after the object has changed since the last
6901// request. Use googleapi.IsNotModified to check whether the response
6902// error from Do is the result of In-None-Match.
6903func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
6904	c.ifNoneMatch_ = entityTag
6905	return c
6906}
6907
6908// Context sets the context to be used in this call's Do method. Any
6909// pending HTTP request will be aborted if the provided context is
6910// canceled.
6911func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall {
6912	c.ctx_ = ctx
6913	return c
6914}
6915
6916// Header returns an http.Header that can be modified by the caller to
6917// add HTTP headers to the request.
6918func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Header() http.Header {
6919	if c.header_ == nil {
6920		c.header_ = make(http.Header)
6921	}
6922	return c.header_
6923}
6924
6925func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) doRequest(alt string) (*http.Response, error) {
6926	reqHeaders := make(http.Header)
6927	for k, v := range c.header_ {
6928		reqHeaders[k] = v
6929	}
6930	reqHeaders.Set("User-Agent", c.s.userAgent())
6931	if c.ifNoneMatch_ != "" {
6932		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6933	}
6934	var body io.Reader = nil
6935	c.urlParams_.Set("alt", alt)
6936	c.urlParams_.Set("prettyPrint", "false")
6937	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries")
6938	urls += "?" + c.urlParams_.Encode()
6939	req, err := http.NewRequest("GET", urls, body)
6940	if err != nil {
6941		return nil, err
6942	}
6943	req.Header = reqHeaders
6944	googleapi.Expand(req.URL, map[string]string{
6945		"projectId":   c.projectId,
6946		"historyId":   c.historyId,
6947		"executionId": c.executionId,
6948		"stepId":      c.stepId,
6949	})
6950	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6951}
6952
6953// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.list" call.
6954// Exactly one of *ListPerfSampleSeriesResponse or error will be
6955// non-nil. Any non-2xx status code is an error. Response headers are in
6956// either *ListPerfSampleSeriesResponse.ServerResponse.Header or (if a
6957// response was returned at all) in error.(*googleapi.Error).Header. Use
6958// googleapi.IsNotModified to check whether the returned error was
6959// because http.StatusNotModified was returned.
6960func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesListCall) Do(opts ...googleapi.CallOption) (*ListPerfSampleSeriesResponse, error) {
6961	gensupport.SetOptions(c.urlParams_, opts...)
6962	res, err := c.doRequest("json")
6963	if res != nil && res.StatusCode == http.StatusNotModified {
6964		if res.Body != nil {
6965			res.Body.Close()
6966		}
6967		return nil, &googleapi.Error{
6968			Code:   res.StatusCode,
6969			Header: res.Header,
6970		}
6971	}
6972	if err != nil {
6973		return nil, err
6974	}
6975	defer googleapi.CloseBody(res)
6976	if err := googleapi.CheckResponse(res); err != nil {
6977		return nil, err
6978	}
6979	ret := &ListPerfSampleSeriesResponse{
6980		ServerResponse: googleapi.ServerResponse{
6981			Header:         res.Header,
6982			HTTPStatusCode: res.StatusCode,
6983		},
6984	}
6985	target := &ret
6986	if err := gensupport.DecodeResponse(target, res); err != nil {
6987		return nil, err
6988	}
6989	return ret, nil
6990	// {
6991	//   "description": "Lists PerfSampleSeries for a given Step.\n\nThe 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.\n\nMay return any of the following canonical error codes: - NOT_FOUND - The containing Step does not exist",
6992	//   "httpMethod": "GET",
6993	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.list",
6994	//   "parameterOrder": [
6995	//     "projectId",
6996	//     "historyId",
6997	//     "executionId",
6998	//     "stepId"
6999	//   ],
7000	//   "parameters": {
7001	//     "executionId": {
7002	//       "description": "A tool results execution ID.",
7003	//       "location": "path",
7004	//       "required": true,
7005	//       "type": "string"
7006	//     },
7007	//     "filter": {
7008	//       "description": "Specify one or more PerfMetricType values such as CPU to filter the result",
7009	//       "enum": [
7010	//         "cpu",
7011	//         "graphics",
7012	//         "memory",
7013	//         "network",
7014	//         "perfMetricTypeUnspecified"
7015	//       ],
7016	//       "enumDescriptions": [
7017	//         "",
7018	//         "",
7019	//         "",
7020	//         "",
7021	//         ""
7022	//       ],
7023	//       "location": "query",
7024	//       "repeated": true,
7025	//       "type": "string"
7026	//     },
7027	//     "historyId": {
7028	//       "description": "A tool results history ID.",
7029	//       "location": "path",
7030	//       "required": true,
7031	//       "type": "string"
7032	//     },
7033	//     "projectId": {
7034	//       "description": "The cloud project",
7035	//       "location": "path",
7036	//       "required": true,
7037	//       "type": "string"
7038	//     },
7039	//     "stepId": {
7040	//       "description": "A tool results step ID.",
7041	//       "location": "path",
7042	//       "required": true,
7043	//       "type": "string"
7044	//     }
7045	//   },
7046	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries",
7047	//   "response": {
7048	//     "$ref": "ListPerfSampleSeriesResponse"
7049	//   },
7050	//   "scopes": [
7051	//     "https://www.googleapis.com/auth/cloud-platform"
7052	//   ]
7053	// }
7054
7055}
7056
7057// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate":
7058
7059type ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall struct {
7060	s                             *Service
7061	projectId                     string
7062	historyId                     string
7063	executionId                   string
7064	stepId                        string
7065	sampleSeriesId                string
7066	batchcreateperfsamplesrequest *BatchCreatePerfSamplesRequest
7067	urlParams_                    gensupport.URLParams
7068	ctx_                          context.Context
7069	header_                       http.Header
7070}
7071
7072// BatchCreate: Creates a batch of PerfSamples - a client can submit
7073// multiple batches of Perf Samples through repeated calls to this
7074// method in order to split up a large request payload - duplicates and
7075// existing timestamp entries will be ignored. - the batch operation may
7076// partially succeed - the set of elements successfully inserted is
7077// returned in the response (omits items which already existed in the
7078// database).
7079//
7080// May return any of the following canonical error codes: - NOT_FOUND -
7081// The containing PerfSampleSeries does not exist
7082func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService) BatchCreate(projectId string, historyId string, executionId string, stepId string, sampleSeriesId string, batchcreateperfsamplesrequest *BatchCreatePerfSamplesRequest) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall {
7083	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7084	c.projectId = projectId
7085	c.historyId = historyId
7086	c.executionId = executionId
7087	c.stepId = stepId
7088	c.sampleSeriesId = sampleSeriesId
7089	c.batchcreateperfsamplesrequest = batchcreateperfsamplesrequest
7090	return c
7091}
7092
7093// Fields allows partial responses to be retrieved. See
7094// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7095// for more information.
7096func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall {
7097	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7098	return c
7099}
7100
7101// Context sets the context to be used in this call's Do method. Any
7102// pending HTTP request will be aborted if the provided context is
7103// canceled.
7104func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall {
7105	c.ctx_ = ctx
7106	return c
7107}
7108
7109// Header returns an http.Header that can be modified by the caller to
7110// add HTTP headers to the request.
7111func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) Header() http.Header {
7112	if c.header_ == nil {
7113		c.header_ = make(http.Header)
7114	}
7115	return c.header_
7116}
7117
7118func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) doRequest(alt string) (*http.Response, error) {
7119	reqHeaders := make(http.Header)
7120	for k, v := range c.header_ {
7121		reqHeaders[k] = v
7122	}
7123	reqHeaders.Set("User-Agent", c.s.userAgent())
7124	var body io.Reader = nil
7125	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchcreateperfsamplesrequest)
7126	if err != nil {
7127		return nil, err
7128	}
7129	reqHeaders.Set("Content-Type", "application/json")
7130	c.urlParams_.Set("alt", alt)
7131	c.urlParams_.Set("prettyPrint", "false")
7132	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples:batchCreate")
7133	urls += "?" + c.urlParams_.Encode()
7134	req, err := http.NewRequest("POST", urls, body)
7135	if err != nil {
7136		return nil, err
7137	}
7138	req.Header = reqHeaders
7139	googleapi.Expand(req.URL, map[string]string{
7140		"projectId":      c.projectId,
7141		"historyId":      c.historyId,
7142		"executionId":    c.executionId,
7143		"stepId":         c.stepId,
7144		"sampleSeriesId": c.sampleSeriesId,
7145	})
7146	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7147}
7148
7149// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate" call.
7150// Exactly one of *BatchCreatePerfSamplesResponse or error will be
7151// non-nil. Any non-2xx status code is an error. Response headers are in
7152// either *BatchCreatePerfSamplesResponse.ServerResponse.Header or (if a
7153// response was returned at all) in error.(*googleapi.Error).Header. Use
7154// googleapi.IsNotModified to check whether the returned error was
7155// because http.StatusNotModified was returned.
7156func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesBatchCreateCall) Do(opts ...googleapi.CallOption) (*BatchCreatePerfSamplesResponse, error) {
7157	gensupport.SetOptions(c.urlParams_, opts...)
7158	res, err := c.doRequest("json")
7159	if res != nil && res.StatusCode == http.StatusNotModified {
7160		if res.Body != nil {
7161			res.Body.Close()
7162		}
7163		return nil, &googleapi.Error{
7164			Code:   res.StatusCode,
7165			Header: res.Header,
7166		}
7167	}
7168	if err != nil {
7169		return nil, err
7170	}
7171	defer googleapi.CloseBody(res)
7172	if err := googleapi.CheckResponse(res); err != nil {
7173		return nil, err
7174	}
7175	ret := &BatchCreatePerfSamplesResponse{
7176		ServerResponse: googleapi.ServerResponse{
7177			Header:         res.Header,
7178			HTTPStatusCode: res.StatusCode,
7179		},
7180	}
7181	target := &ret
7182	if err := gensupport.DecodeResponse(target, res); err != nil {
7183		return nil, err
7184	}
7185	return ret, nil
7186	// {
7187	//   "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).\n\nMay return any of the following canonical error codes: - NOT_FOUND - The containing PerfSampleSeries does not exist",
7188	//   "httpMethod": "POST",
7189	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.batchCreate",
7190	//   "parameterOrder": [
7191	//     "projectId",
7192	//     "historyId",
7193	//     "executionId",
7194	//     "stepId",
7195	//     "sampleSeriesId"
7196	//   ],
7197	//   "parameters": {
7198	//     "executionId": {
7199	//       "description": "A tool results execution ID.",
7200	//       "location": "path",
7201	//       "required": true,
7202	//       "type": "string"
7203	//     },
7204	//     "historyId": {
7205	//       "description": "A tool results history ID.",
7206	//       "location": "path",
7207	//       "required": true,
7208	//       "type": "string"
7209	//     },
7210	//     "projectId": {
7211	//       "description": "The cloud project",
7212	//       "location": "path",
7213	//       "required": true,
7214	//       "type": "string"
7215	//     },
7216	//     "sampleSeriesId": {
7217	//       "description": "A sample series id",
7218	//       "location": "path",
7219	//       "required": true,
7220	//       "type": "string"
7221	//     },
7222	//     "stepId": {
7223	//       "description": "A tool results step ID.",
7224	//       "location": "path",
7225	//       "required": true,
7226	//       "type": "string"
7227	//     }
7228	//   },
7229	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples:batchCreate",
7230	//   "request": {
7231	//     "$ref": "BatchCreatePerfSamplesRequest"
7232	//   },
7233	//   "response": {
7234	//     "$ref": "BatchCreatePerfSamplesResponse"
7235	//   },
7236	//   "scopes": [
7237	//     "https://www.googleapis.com/auth/cloud-platform"
7238	//   ]
7239	// }
7240
7241}
7242
7243// method id "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list":
7244
7245type ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall struct {
7246	s              *Service
7247	projectId      string
7248	historyId      string
7249	executionId    string
7250	stepId         string
7251	sampleSeriesId string
7252	urlParams_     gensupport.URLParams
7253	ifNoneMatch_   string
7254	ctx_           context.Context
7255	header_        http.Header
7256}
7257
7258// List: Lists the Performance Samples of a given Sample Series - The
7259// list results are sorted by timestamps ascending - The default page
7260// size is 500 samples; and maximum size allowed 5000 - The response
7261// token indicates the last returned PerfSample timestamp - When the
7262// results size exceeds the page size, submit a subsequent request
7263// including the page token to return the rest of the samples up to the
7264// page limit
7265//
7266// May return any of the following canonical error codes: - OUT_OF_RANGE
7267// - The specified request page_token is out of valid range - NOT_FOUND
7268// - The containing PerfSampleSeries does not exist
7269func (r *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesService) List(projectId string, historyId string, executionId string, stepId string, sampleSeriesId string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
7270	c := &ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7271	c.projectId = projectId
7272	c.historyId = historyId
7273	c.executionId = executionId
7274	c.stepId = stepId
7275	c.sampleSeriesId = sampleSeriesId
7276	return c
7277}
7278
7279// PageSize sets the optional parameter "pageSize": The default page
7280// size is 500 samples, and the maximum size is 5000. If the page_size
7281// is greater than 5000, the effective page size will be 5000
7282func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
7283	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
7284	return c
7285}
7286
7287// PageToken sets the optional parameter "pageToken": Optional, the
7288// next_page_token returned in the previous response
7289func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
7290	c.urlParams_.Set("pageToken", pageToken)
7291	return c
7292}
7293
7294// Fields allows partial responses to be retrieved. See
7295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7296// for more information.
7297func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
7298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7299	return c
7300}
7301
7302// IfNoneMatch sets the optional parameter which makes the operation
7303// fail if the object's ETag matches the given value. This is useful for
7304// getting updates only after the object has changed since the last
7305// request. Use googleapi.IsNotModified to check whether the response
7306// error from Do is the result of In-None-Match.
7307func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
7308	c.ifNoneMatch_ = entityTag
7309	return c
7310}
7311
7312// Context sets the context to be used in this call's Do method. Any
7313// pending HTTP request will be aborted if the provided context is
7314// canceled.
7315func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall {
7316	c.ctx_ = ctx
7317	return c
7318}
7319
7320// Header returns an http.Header that can be modified by the caller to
7321// add HTTP headers to the request.
7322func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Header() http.Header {
7323	if c.header_ == nil {
7324		c.header_ = make(http.Header)
7325	}
7326	return c.header_
7327}
7328
7329func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) doRequest(alt string) (*http.Response, error) {
7330	reqHeaders := make(http.Header)
7331	for k, v := range c.header_ {
7332		reqHeaders[k] = v
7333	}
7334	reqHeaders.Set("User-Agent", c.s.userAgent())
7335	if c.ifNoneMatch_ != "" {
7336		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7337	}
7338	var body io.Reader = nil
7339	c.urlParams_.Set("alt", alt)
7340	c.urlParams_.Set("prettyPrint", "false")
7341	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples")
7342	urls += "?" + c.urlParams_.Encode()
7343	req, err := http.NewRequest("GET", urls, body)
7344	if err != nil {
7345		return nil, err
7346	}
7347	req.Header = reqHeaders
7348	googleapi.Expand(req.URL, map[string]string{
7349		"projectId":      c.projectId,
7350		"historyId":      c.historyId,
7351		"executionId":    c.executionId,
7352		"stepId":         c.stepId,
7353		"sampleSeriesId": c.sampleSeriesId,
7354	})
7355	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7356}
7357
7358// Do executes the "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list" call.
7359// Exactly one of *ListPerfSamplesResponse or error will be non-nil. Any
7360// non-2xx status code is an error. Response headers are in either
7361// *ListPerfSamplesResponse.ServerResponse.Header or (if a response was
7362// returned at all) in error.(*googleapi.Error).Header. Use
7363// googleapi.IsNotModified to check whether the returned error was
7364// because http.StatusNotModified was returned.
7365func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Do(opts ...googleapi.CallOption) (*ListPerfSamplesResponse, error) {
7366	gensupport.SetOptions(c.urlParams_, opts...)
7367	res, err := c.doRequest("json")
7368	if res != nil && res.StatusCode == http.StatusNotModified {
7369		if res.Body != nil {
7370			res.Body.Close()
7371		}
7372		return nil, &googleapi.Error{
7373			Code:   res.StatusCode,
7374			Header: res.Header,
7375		}
7376	}
7377	if err != nil {
7378		return nil, err
7379	}
7380	defer googleapi.CloseBody(res)
7381	if err := googleapi.CheckResponse(res); err != nil {
7382		return nil, err
7383	}
7384	ret := &ListPerfSamplesResponse{
7385		ServerResponse: googleapi.ServerResponse{
7386			Header:         res.Header,
7387			HTTPStatusCode: res.StatusCode,
7388		},
7389	}
7390	target := &ret
7391	if err := gensupport.DecodeResponse(target, res); err != nil {
7392		return nil, err
7393	}
7394	return ret, nil
7395	// {
7396	//   "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\n\nMay 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",
7397	//   "httpMethod": "GET",
7398	//   "id": "toolresults.projects.histories.executions.steps.perfSampleSeries.samples.list",
7399	//   "parameterOrder": [
7400	//     "projectId",
7401	//     "historyId",
7402	//     "executionId",
7403	//     "stepId",
7404	//     "sampleSeriesId"
7405	//   ],
7406	//   "parameters": {
7407	//     "executionId": {
7408	//       "description": "A tool results execution ID.",
7409	//       "location": "path",
7410	//       "required": true,
7411	//       "type": "string"
7412	//     },
7413	//     "historyId": {
7414	//       "description": "A tool results history ID.",
7415	//       "location": "path",
7416	//       "required": true,
7417	//       "type": "string"
7418	//     },
7419	//     "pageSize": {
7420	//       "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",
7421	//       "format": "int32",
7422	//       "location": "query",
7423	//       "type": "integer"
7424	//     },
7425	//     "pageToken": {
7426	//       "description": "Optional, the next_page_token returned in the previous response",
7427	//       "location": "query",
7428	//       "type": "string"
7429	//     },
7430	//     "projectId": {
7431	//       "description": "The cloud project",
7432	//       "location": "path",
7433	//       "required": true,
7434	//       "type": "string"
7435	//     },
7436	//     "sampleSeriesId": {
7437	//       "description": "A sample series id",
7438	//       "location": "path",
7439	//       "required": true,
7440	//       "type": "string"
7441	//     },
7442	//     "stepId": {
7443	//       "description": "A tool results step ID.",
7444	//       "location": "path",
7445	//       "required": true,
7446	//       "type": "string"
7447	//     }
7448	//   },
7449	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleSeriesId}/samples",
7450	//   "response": {
7451	//     "$ref": "ListPerfSamplesResponse"
7452	//   },
7453	//   "scopes": [
7454	//     "https://www.googleapis.com/auth/cloud-platform"
7455	//   ]
7456	// }
7457
7458}
7459
7460// Pages invokes f for each page of results.
7461// A non-nil error returned from f will halt the iteration.
7462// The provided context supersedes any context provided to the Context method.
7463func (c *ProjectsHistoriesExecutionsStepsPerfSampleSeriesSamplesListCall) Pages(ctx context.Context, f func(*ListPerfSamplesResponse) error) error {
7464	c.ctx_ = ctx
7465	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7466	for {
7467		x, err := c.Do()
7468		if err != nil {
7469			return err
7470		}
7471		if err := f(x); err != nil {
7472			return err
7473		}
7474		if x.NextPageToken == "" {
7475			return nil
7476		}
7477		c.PageToken(x.NextPageToken)
7478	}
7479}
7480
7481// method id "toolresults.projects.histories.executions.steps.testCases.get":
7482
7483type ProjectsHistoriesExecutionsStepsTestCasesGetCall struct {
7484	s            *Service
7485	projectId    string
7486	historyId    string
7487	executionId  string
7488	stepId       string
7489	testCaseId   string
7490	urlParams_   gensupport.URLParams
7491	ifNoneMatch_ string
7492	ctx_         context.Context
7493	header_      http.Header
7494}
7495
7496// Get: Gets details of a Test Case for a Step. Experimental test cases
7497// API. Still in active development.
7498//
7499// May return any of the following canonical error codes:
7500//
7501// - PERMISSION_DENIED - if the user is not authorized to write to
7502// project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND
7503// - if the containing Test Case does not exist
7504func (r *ProjectsHistoriesExecutionsStepsTestCasesService) Get(projectId string, historyId string, executionId string, stepId string, testCaseId string) *ProjectsHistoriesExecutionsStepsTestCasesGetCall {
7505	c := &ProjectsHistoriesExecutionsStepsTestCasesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7506	c.projectId = projectId
7507	c.historyId = historyId
7508	c.executionId = executionId
7509	c.stepId = stepId
7510	c.testCaseId = testCaseId
7511	return c
7512}
7513
7514// Fields allows partial responses to be retrieved. See
7515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7516// for more information.
7517func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsTestCasesGetCall {
7518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7519	return c
7520}
7521
7522// IfNoneMatch sets the optional parameter which makes the operation
7523// fail if the object's ETag matches the given value. This is useful for
7524// getting updates only after the object has changed since the last
7525// request. Use googleapi.IsNotModified to check whether the response
7526// error from Do is the result of In-None-Match.
7527func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsTestCasesGetCall {
7528	c.ifNoneMatch_ = entityTag
7529	return c
7530}
7531
7532// Context sets the context to be used in this call's Do method. Any
7533// pending HTTP request will be aborted if the provided context is
7534// canceled.
7535func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsTestCasesGetCall {
7536	c.ctx_ = ctx
7537	return c
7538}
7539
7540// Header returns an http.Header that can be modified by the caller to
7541// add HTTP headers to the request.
7542func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) Header() http.Header {
7543	if c.header_ == nil {
7544		c.header_ = make(http.Header)
7545	}
7546	return c.header_
7547}
7548
7549func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) doRequest(alt string) (*http.Response, error) {
7550	reqHeaders := make(http.Header)
7551	for k, v := range c.header_ {
7552		reqHeaders[k] = v
7553	}
7554	reqHeaders.Set("User-Agent", c.s.userAgent())
7555	if c.ifNoneMatch_ != "" {
7556		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7557	}
7558	var body io.Reader = nil
7559	c.urlParams_.Set("alt", alt)
7560	c.urlParams_.Set("prettyPrint", "false")
7561	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases/{testCaseId}")
7562	urls += "?" + c.urlParams_.Encode()
7563	req, err := http.NewRequest("GET", urls, body)
7564	if err != nil {
7565		return nil, err
7566	}
7567	req.Header = reqHeaders
7568	googleapi.Expand(req.URL, map[string]string{
7569		"projectId":   c.projectId,
7570		"historyId":   c.historyId,
7571		"executionId": c.executionId,
7572		"stepId":      c.stepId,
7573		"testCaseId":  c.testCaseId,
7574	})
7575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7576}
7577
7578// Do executes the "toolresults.projects.histories.executions.steps.testCases.get" call.
7579// Exactly one of *TestCase or error will be non-nil. Any non-2xx status
7580// code is an error. Response headers are in either
7581// *TestCase.ServerResponse.Header or (if a response was returned at
7582// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7583// to check whether the returned error was because
7584// http.StatusNotModified was returned.
7585func (c *ProjectsHistoriesExecutionsStepsTestCasesGetCall) Do(opts ...googleapi.CallOption) (*TestCase, error) {
7586	gensupport.SetOptions(c.urlParams_, opts...)
7587	res, err := c.doRequest("json")
7588	if res != nil && res.StatusCode == http.StatusNotModified {
7589		if res.Body != nil {
7590			res.Body.Close()
7591		}
7592		return nil, &googleapi.Error{
7593			Code:   res.StatusCode,
7594			Header: res.Header,
7595		}
7596	}
7597	if err != nil {
7598		return nil, err
7599	}
7600	defer googleapi.CloseBody(res)
7601	if err := googleapi.CheckResponse(res); err != nil {
7602		return nil, err
7603	}
7604	ret := &TestCase{
7605		ServerResponse: googleapi.ServerResponse{
7606			Header:         res.Header,
7607			HTTPStatusCode: res.StatusCode,
7608		},
7609	}
7610	target := &ret
7611	if err := gensupport.DecodeResponse(target, res); err != nil {
7612		return nil, err
7613	}
7614	return ret, nil
7615	// {
7616	//   "description": "Gets details of a Test Case for a Step. Experimental test cases API. Still in active development.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing Test Case does not exist",
7617	//   "httpMethod": "GET",
7618	//   "id": "toolresults.projects.histories.executions.steps.testCases.get",
7619	//   "parameterOrder": [
7620	//     "projectId",
7621	//     "historyId",
7622	//     "executionId",
7623	//     "stepId",
7624	//     "testCaseId"
7625	//   ],
7626	//   "parameters": {
7627	//     "executionId": {
7628	//       "description": "A Execution id\n\nRequired.",
7629	//       "location": "path",
7630	//       "required": true,
7631	//       "type": "string"
7632	//     },
7633	//     "historyId": {
7634	//       "description": "A History id.\n\nRequired.",
7635	//       "location": "path",
7636	//       "required": true,
7637	//       "type": "string"
7638	//     },
7639	//     "projectId": {
7640	//       "description": "A Project id.\n\nRequired.",
7641	//       "location": "path",
7642	//       "required": true,
7643	//       "type": "string"
7644	//     },
7645	//     "stepId": {
7646	//       "description": "A Step id. Note: This step must include a TestExecutionStep.\n\nRequired.",
7647	//       "location": "path",
7648	//       "required": true,
7649	//       "type": "string"
7650	//     },
7651	//     "testCaseId": {
7652	//       "description": "A Test Case id.\n\nRequired.",
7653	//       "location": "path",
7654	//       "required": true,
7655	//       "type": "string"
7656	//     }
7657	//   },
7658	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases/{testCaseId}",
7659	//   "response": {
7660	//     "$ref": "TestCase"
7661	//   },
7662	//   "scopes": [
7663	//     "https://www.googleapis.com/auth/cloud-platform"
7664	//   ]
7665	// }
7666
7667}
7668
7669// method id "toolresults.projects.histories.executions.steps.testCases.list":
7670
7671type ProjectsHistoriesExecutionsStepsTestCasesListCall struct {
7672	s            *Service
7673	projectId    string
7674	historyId    string
7675	executionId  string
7676	stepId       string
7677	urlParams_   gensupport.URLParams
7678	ifNoneMatch_ string
7679	ctx_         context.Context
7680	header_      http.Header
7681}
7682
7683// List: Lists Test Cases attached to a Step. Experimental test cases
7684// API. Still in active development.
7685//
7686// May return any of the following canonical error codes:
7687//
7688// - PERMISSION_DENIED - if the user is not authorized to write to
7689// project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND
7690// - if the containing Step does not exist
7691func (r *ProjectsHistoriesExecutionsStepsTestCasesService) List(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
7692	c := &ProjectsHistoriesExecutionsStepsTestCasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7693	c.projectId = projectId
7694	c.historyId = historyId
7695	c.executionId = executionId
7696	c.stepId = stepId
7697	return c
7698}
7699
7700// PageSize sets the optional parameter "pageSize": The maximum number
7701// of TestCases to fetch.
7702//
7703// Default value: 100. The server will use this default if the field is
7704// not set or has a value of 0.
7705func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
7706	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
7707	return c
7708}
7709
7710// PageToken sets the optional parameter "pageToken": A continuation
7711// token to resume the query at the next item.
7712func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
7713	c.urlParams_.Set("pageToken", pageToken)
7714	return c
7715}
7716
7717// Fields allows partial responses to be retrieved. See
7718// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7719// for more information.
7720func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
7721	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7722	return c
7723}
7724
7725// IfNoneMatch sets the optional parameter which makes the operation
7726// fail if the object's ETag matches the given value. This is useful for
7727// getting updates only after the object has changed since the last
7728// request. Use googleapi.IsNotModified to check whether the response
7729// error from Do is the result of In-None-Match.
7730func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
7731	c.ifNoneMatch_ = entityTag
7732	return c
7733}
7734
7735// Context sets the context to be used in this call's Do method. Any
7736// pending HTTP request will be aborted if the provided context is
7737// canceled.
7738func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsTestCasesListCall {
7739	c.ctx_ = ctx
7740	return c
7741}
7742
7743// Header returns an http.Header that can be modified by the caller to
7744// add HTTP headers to the request.
7745func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Header() http.Header {
7746	if c.header_ == nil {
7747		c.header_ = make(http.Header)
7748	}
7749	return c.header_
7750}
7751
7752func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) doRequest(alt string) (*http.Response, error) {
7753	reqHeaders := make(http.Header)
7754	for k, v := range c.header_ {
7755		reqHeaders[k] = v
7756	}
7757	reqHeaders.Set("User-Agent", c.s.userAgent())
7758	if c.ifNoneMatch_ != "" {
7759		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7760	}
7761	var body io.Reader = nil
7762	c.urlParams_.Set("alt", alt)
7763	c.urlParams_.Set("prettyPrint", "false")
7764	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases")
7765	urls += "?" + c.urlParams_.Encode()
7766	req, err := http.NewRequest("GET", urls, body)
7767	if err != nil {
7768		return nil, err
7769	}
7770	req.Header = reqHeaders
7771	googleapi.Expand(req.URL, map[string]string{
7772		"projectId":   c.projectId,
7773		"historyId":   c.historyId,
7774		"executionId": c.executionId,
7775		"stepId":      c.stepId,
7776	})
7777	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7778}
7779
7780// Do executes the "toolresults.projects.histories.executions.steps.testCases.list" call.
7781// Exactly one of *ListTestCasesResponse or error will be non-nil. Any
7782// non-2xx status code is an error. Response headers are in either
7783// *ListTestCasesResponse.ServerResponse.Header or (if a response was
7784// returned at all) in error.(*googleapi.Error).Header. Use
7785// googleapi.IsNotModified to check whether the returned error was
7786// because http.StatusNotModified was returned.
7787func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Do(opts ...googleapi.CallOption) (*ListTestCasesResponse, error) {
7788	gensupport.SetOptions(c.urlParams_, opts...)
7789	res, err := c.doRequest("json")
7790	if res != nil && res.StatusCode == http.StatusNotModified {
7791		if res.Body != nil {
7792			res.Body.Close()
7793		}
7794		return nil, &googleapi.Error{
7795			Code:   res.StatusCode,
7796			Header: res.Header,
7797		}
7798	}
7799	if err != nil {
7800		return nil, err
7801	}
7802	defer googleapi.CloseBody(res)
7803	if err := googleapi.CheckResponse(res); err != nil {
7804		return nil, err
7805	}
7806	ret := &ListTestCasesResponse{
7807		ServerResponse: googleapi.ServerResponse{
7808			Header:         res.Header,
7809			HTTPStatusCode: res.StatusCode,
7810		},
7811	}
7812	target := &ret
7813	if err := gensupport.DecodeResponse(target, res); err != nil {
7814		return nil, err
7815	}
7816	return ret, nil
7817	// {
7818	//   "description": "Lists Test Cases attached to a Step. Experimental test cases API. Still in active development.\n\nMay return any of the following canonical error codes:\n\n- PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing Step does not exist",
7819	//   "httpMethod": "GET",
7820	//   "id": "toolresults.projects.histories.executions.steps.testCases.list",
7821	//   "parameterOrder": [
7822	//     "projectId",
7823	//     "historyId",
7824	//     "executionId",
7825	//     "stepId"
7826	//   ],
7827	//   "parameters": {
7828	//     "executionId": {
7829	//       "description": "A Execution id\n\nRequired.",
7830	//       "location": "path",
7831	//       "required": true,
7832	//       "type": "string"
7833	//     },
7834	//     "historyId": {
7835	//       "description": "A History id.\n\nRequired.",
7836	//       "location": "path",
7837	//       "required": true,
7838	//       "type": "string"
7839	//     },
7840	//     "pageSize": {
7841	//       "description": "The maximum number of TestCases to fetch.\n\nDefault value: 100. The server will use this default if the field is not set or has a value of 0.\n\nOptional.",
7842	//       "format": "int32",
7843	//       "location": "query",
7844	//       "type": "integer"
7845	//     },
7846	//     "pageToken": {
7847	//       "description": "A continuation token to resume the query at the next item.\n\nOptional.",
7848	//       "location": "query",
7849	//       "type": "string"
7850	//     },
7851	//     "projectId": {
7852	//       "description": "A Project id.\n\nRequired.",
7853	//       "location": "path",
7854	//       "required": true,
7855	//       "type": "string"
7856	//     },
7857	//     "stepId": {
7858	//       "description": "A Step id. Note: This step must include a TestExecutionStep.\n\nRequired.",
7859	//       "location": "path",
7860	//       "required": true,
7861	//       "type": "string"
7862	//     }
7863	//   },
7864	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/testCases",
7865	//   "response": {
7866	//     "$ref": "ListTestCasesResponse"
7867	//   },
7868	//   "scopes": [
7869	//     "https://www.googleapis.com/auth/cloud-platform"
7870	//   ]
7871	// }
7872
7873}
7874
7875// Pages invokes f for each page of results.
7876// A non-nil error returned from f will halt the iteration.
7877// The provided context supersedes any context provided to the Context method.
7878func (c *ProjectsHistoriesExecutionsStepsTestCasesListCall) Pages(ctx context.Context, f func(*ListTestCasesResponse) error) error {
7879	c.ctx_ = ctx
7880	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7881	for {
7882		x, err := c.Do()
7883		if err != nil {
7884			return err
7885		}
7886		if err := f(x); err != nil {
7887			return err
7888		}
7889		if x.NextPageToken == "" {
7890			return nil
7891		}
7892		c.PageToken(x.NextPageToken)
7893	}
7894}
7895
7896// method id "toolresults.projects.histories.executions.steps.thumbnails.list":
7897
7898type ProjectsHistoriesExecutionsStepsThumbnailsListCall struct {
7899	s            *Service
7900	projectId    string
7901	historyId    string
7902	executionId  string
7903	stepId       string
7904	urlParams_   gensupport.URLParams
7905	ifNoneMatch_ string
7906	ctx_         context.Context
7907	header_      http.Header
7908}
7909
7910// List: Lists thumbnails of images attached to a step.
7911//
7912// May return any of the following canonical error codes: -
7913// PERMISSION_DENIED - if the user is not authorized to read from the
7914// project, or from any of the images - INVALID_ARGUMENT - if the
7915// request is malformed - NOT_FOUND - if the step does not exist, or if
7916// any of the images do not exist
7917func (r *ProjectsHistoriesExecutionsStepsThumbnailsService) List(projectId string, historyId string, executionId string, stepId string) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
7918	c := &ProjectsHistoriesExecutionsStepsThumbnailsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7919	c.projectId = projectId
7920	c.historyId = historyId
7921	c.executionId = executionId
7922	c.stepId = stepId
7923	return c
7924}
7925
7926// PageSize sets the optional parameter "pageSize": The maximum number
7927// of thumbnails to fetch.
7928//
7929// Default value: 50. The server will use this default if the field is
7930// not set or has a value of 0.
7931func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) PageSize(pageSize int64) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
7932	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
7933	return c
7934}
7935
7936// PageToken sets the optional parameter "pageToken": A continuation
7937// token to resume the query at the next item.
7938func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) PageToken(pageToken string) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
7939	c.urlParams_.Set("pageToken", pageToken)
7940	return c
7941}
7942
7943// Fields allows partial responses to be retrieved. See
7944// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7945// for more information.
7946func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Fields(s ...googleapi.Field) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
7947	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7948	return c
7949}
7950
7951// IfNoneMatch sets the optional parameter which makes the operation
7952// fail if the object's ETag matches the given value. This is useful for
7953// getting updates only after the object has changed since the last
7954// request. Use googleapi.IsNotModified to check whether the response
7955// error from Do is the result of In-None-Match.
7956func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) IfNoneMatch(entityTag string) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
7957	c.ifNoneMatch_ = entityTag
7958	return c
7959}
7960
7961// Context sets the context to be used in this call's Do method. Any
7962// pending HTTP request will be aborted if the provided context is
7963// canceled.
7964func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Context(ctx context.Context) *ProjectsHistoriesExecutionsStepsThumbnailsListCall {
7965	c.ctx_ = ctx
7966	return c
7967}
7968
7969// Header returns an http.Header that can be modified by the caller to
7970// add HTTP headers to the request.
7971func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Header() http.Header {
7972	if c.header_ == nil {
7973		c.header_ = make(http.Header)
7974	}
7975	return c.header_
7976}
7977
7978func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) doRequest(alt string) (*http.Response, error) {
7979	reqHeaders := make(http.Header)
7980	for k, v := range c.header_ {
7981		reqHeaders[k] = v
7982	}
7983	reqHeaders.Set("User-Agent", c.s.userAgent())
7984	if c.ifNoneMatch_ != "" {
7985		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7986	}
7987	var body io.Reader = nil
7988	c.urlParams_.Set("alt", alt)
7989	c.urlParams_.Set("prettyPrint", "false")
7990	urls := googleapi.ResolveRelative(c.s.BasePath, "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails")
7991	urls += "?" + c.urlParams_.Encode()
7992	req, err := http.NewRequest("GET", urls, body)
7993	if err != nil {
7994		return nil, err
7995	}
7996	req.Header = reqHeaders
7997	googleapi.Expand(req.URL, map[string]string{
7998		"projectId":   c.projectId,
7999		"historyId":   c.historyId,
8000		"executionId": c.executionId,
8001		"stepId":      c.stepId,
8002	})
8003	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8004}
8005
8006// Do executes the "toolresults.projects.histories.executions.steps.thumbnails.list" call.
8007// Exactly one of *ListStepThumbnailsResponse or error will be non-nil.
8008// Any non-2xx status code is an error. Response headers are in either
8009// *ListStepThumbnailsResponse.ServerResponse.Header or (if a response
8010// was returned at all) in error.(*googleapi.Error).Header. Use
8011// googleapi.IsNotModified to check whether the returned error was
8012// because http.StatusNotModified was returned.
8013func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Do(opts ...googleapi.CallOption) (*ListStepThumbnailsResponse, error) {
8014	gensupport.SetOptions(c.urlParams_, opts...)
8015	res, err := c.doRequest("json")
8016	if res != nil && res.StatusCode == http.StatusNotModified {
8017		if res.Body != nil {
8018			res.Body.Close()
8019		}
8020		return nil, &googleapi.Error{
8021			Code:   res.StatusCode,
8022			Header: res.Header,
8023		}
8024	}
8025	if err != nil {
8026		return nil, err
8027	}
8028	defer googleapi.CloseBody(res)
8029	if err := googleapi.CheckResponse(res); err != nil {
8030		return nil, err
8031	}
8032	ret := &ListStepThumbnailsResponse{
8033		ServerResponse: googleapi.ServerResponse{
8034			Header:         res.Header,
8035			HTTPStatusCode: res.StatusCode,
8036		},
8037	}
8038	target := &ret
8039	if err := gensupport.DecodeResponse(target, res); err != nil {
8040		return nil, err
8041	}
8042	return ret, nil
8043	// {
8044	//   "description": "Lists thumbnails of images attached to a step.\n\nMay return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read from the project, or from any of the images - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the step does not exist, or if any of the images do not exist",
8045	//   "httpMethod": "GET",
8046	//   "id": "toolresults.projects.histories.executions.steps.thumbnails.list",
8047	//   "parameterOrder": [
8048	//     "projectId",
8049	//     "historyId",
8050	//     "executionId",
8051	//     "stepId"
8052	//   ],
8053	//   "parameters": {
8054	//     "executionId": {
8055	//       "description": "An Execution id.\n\nRequired.",
8056	//       "location": "path",
8057	//       "required": true,
8058	//       "type": "string"
8059	//     },
8060	//     "historyId": {
8061	//       "description": "A History id.\n\nRequired.",
8062	//       "location": "path",
8063	//       "required": true,
8064	//       "type": "string"
8065	//     },
8066	//     "pageSize": {
8067	//       "description": "The maximum number of thumbnails to fetch.\n\nDefault value: 50. The server will use this default if the field is not set or has a value of 0.\n\nOptional.",
8068	//       "format": "int32",
8069	//       "location": "query",
8070	//       "type": "integer"
8071	//     },
8072	//     "pageToken": {
8073	//       "description": "A continuation token to resume the query at the next item.\n\nOptional.",
8074	//       "location": "query",
8075	//       "type": "string"
8076	//     },
8077	//     "projectId": {
8078	//       "description": "A Project id.\n\nRequired.",
8079	//       "location": "path",
8080	//       "required": true,
8081	//       "type": "string"
8082	//     },
8083	//     "stepId": {
8084	//       "description": "A Step id.\n\nRequired.",
8085	//       "location": "path",
8086	//       "required": true,
8087	//       "type": "string"
8088	//     }
8089	//   },
8090	//   "path": "{projectId}/histories/{historyId}/executions/{executionId}/steps/{stepId}/thumbnails",
8091	//   "response": {
8092	//     "$ref": "ListStepThumbnailsResponse"
8093	//   },
8094	//   "scopes": [
8095	//     "https://www.googleapis.com/auth/cloud-platform"
8096	//   ]
8097	// }
8098
8099}
8100
8101// Pages invokes f for each page of results.
8102// A non-nil error returned from f will halt the iteration.
8103// The provided context supersedes any context provided to the Context method.
8104func (c *ProjectsHistoriesExecutionsStepsThumbnailsListCall) Pages(ctx context.Context, f func(*ListStepThumbnailsResponse) error) error {
8105	c.ctx_ = ctx
8106	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
8107	for {
8108		x, err := c.Do()
8109		if err != nil {
8110			return err
8111		}
8112		if err := f(x); err != nil {
8113			return err
8114		}
8115		if x.NextPageToken == "" {
8116			return nil
8117		}
8118		c.PageToken(x.NextPageToken)
8119	}
8120}
8121