1// Copyright 2021 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package dataflow provides access to the Dataflow API.
8//
9// For product documentation, see: https://cloud.google.com/dataflow
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/dataflow/v1b3"
16//   ...
17//   ctx := context.Background()
18//   dataflowService, err := dataflow.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// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   dataflowService, err := dataflow.NewService(ctx, option.WithScopes(dataflow.UserinfoEmailScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   dataflowService, err := dataflow.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   dataflowService, err := dataflow.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package dataflow // import "google.golang.org/api/dataflow/v1b3"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	internaloption "google.golang.org/api/option/internaloption"
60	htransport "google.golang.org/api/transport/http"
61)
62
63// Always reference these packages, just in case the auto-generated code
64// below doesn't.
65var _ = bytes.NewBuffer
66var _ = strconv.Itoa
67var _ = fmt.Sprintf
68var _ = json.NewDecoder
69var _ = io.Copy
70var _ = url.Parse
71var _ = gensupport.MarshalJSON
72var _ = googleapi.Version
73var _ = errors.New
74var _ = strings.Replace
75var _ = context.Canceled
76var _ = internaloption.WithDefaultEndpoint
77
78const apiId = "dataflow:v1b3"
79const apiName = "dataflow"
80const apiVersion = "v1b3"
81const basePath = "https://dataflow.googleapis.com/"
82const mtlsBasePath = "https://dataflow.mtls.googleapis.com/"
83
84// OAuth2 scopes used by this API.
85const (
86	// View and manage your data across Google Cloud Platform services
87	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
88
89	// View and manage your Google Compute Engine resources
90	ComputeScope = "https://www.googleapis.com/auth/compute"
91
92	// View your Google Compute Engine resources
93	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
94
95	// View your email address
96	UserinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email"
97)
98
99// NewService creates a new Service.
100func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
101	scopesOption := option.WithScopes(
102		"https://www.googleapis.com/auth/cloud-platform",
103		"https://www.googleapis.com/auth/compute",
104		"https://www.googleapis.com/auth/compute.readonly",
105		"https://www.googleapis.com/auth/userinfo.email",
106	)
107	// NOTE: prepend, so we don't override user-specified scopes.
108	opts = append([]option.ClientOption{scopesOption}, opts...)
109	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
110	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
111	client, endpoint, err := htransport.NewClient(ctx, opts...)
112	if err != nil {
113		return nil, err
114	}
115	s, err := New(client)
116	if err != nil {
117		return nil, err
118	}
119	if endpoint != "" {
120		s.BasePath = endpoint
121	}
122	return s, nil
123}
124
125// New creates a new Service. It uses the provided http.Client for requests.
126//
127// Deprecated: please use NewService instead.
128// To provide a custom HTTP client, use option.WithHTTPClient.
129// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
130func New(client *http.Client) (*Service, error) {
131	if client == nil {
132		return nil, errors.New("client is nil")
133	}
134	s := &Service{client: client, BasePath: basePath}
135	s.Projects = NewProjectsService(s)
136	return s, nil
137}
138
139type Service struct {
140	client    *http.Client
141	BasePath  string // API endpoint base URL
142	UserAgent string // optional additional User-Agent fragment
143
144	Projects *ProjectsService
145}
146
147func (s *Service) userAgent() string {
148	if s.UserAgent == "" {
149		return googleapi.UserAgent
150	}
151	return googleapi.UserAgent + " " + s.UserAgent
152}
153
154func NewProjectsService(s *Service) *ProjectsService {
155	rs := &ProjectsService{s: s}
156	rs.Jobs = NewProjectsJobsService(s)
157	rs.Locations = NewProjectsLocationsService(s)
158	rs.Snapshots = NewProjectsSnapshotsService(s)
159	rs.Templates = NewProjectsTemplatesService(s)
160	return rs
161}
162
163type ProjectsService struct {
164	s *Service
165
166	Jobs *ProjectsJobsService
167
168	Locations *ProjectsLocationsService
169
170	Snapshots *ProjectsSnapshotsService
171
172	Templates *ProjectsTemplatesService
173}
174
175func NewProjectsJobsService(s *Service) *ProjectsJobsService {
176	rs := &ProjectsJobsService{s: s}
177	rs.Debug = NewProjectsJobsDebugService(s)
178	rs.Messages = NewProjectsJobsMessagesService(s)
179	rs.WorkItems = NewProjectsJobsWorkItemsService(s)
180	return rs
181}
182
183type ProjectsJobsService struct {
184	s *Service
185
186	Debug *ProjectsJobsDebugService
187
188	Messages *ProjectsJobsMessagesService
189
190	WorkItems *ProjectsJobsWorkItemsService
191}
192
193func NewProjectsJobsDebugService(s *Service) *ProjectsJobsDebugService {
194	rs := &ProjectsJobsDebugService{s: s}
195	return rs
196}
197
198type ProjectsJobsDebugService struct {
199	s *Service
200}
201
202func NewProjectsJobsMessagesService(s *Service) *ProjectsJobsMessagesService {
203	rs := &ProjectsJobsMessagesService{s: s}
204	return rs
205}
206
207type ProjectsJobsMessagesService struct {
208	s *Service
209}
210
211func NewProjectsJobsWorkItemsService(s *Service) *ProjectsJobsWorkItemsService {
212	rs := &ProjectsJobsWorkItemsService{s: s}
213	return rs
214}
215
216type ProjectsJobsWorkItemsService struct {
217	s *Service
218}
219
220func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
221	rs := &ProjectsLocationsService{s: s}
222	rs.FlexTemplates = NewProjectsLocationsFlexTemplatesService(s)
223	rs.Jobs = NewProjectsLocationsJobsService(s)
224	rs.Snapshots = NewProjectsLocationsSnapshotsService(s)
225	rs.Sql = NewProjectsLocationsSqlService(s)
226	rs.Templates = NewProjectsLocationsTemplatesService(s)
227	return rs
228}
229
230type ProjectsLocationsService struct {
231	s *Service
232
233	FlexTemplates *ProjectsLocationsFlexTemplatesService
234
235	Jobs *ProjectsLocationsJobsService
236
237	Snapshots *ProjectsLocationsSnapshotsService
238
239	Sql *ProjectsLocationsSqlService
240
241	Templates *ProjectsLocationsTemplatesService
242}
243
244func NewProjectsLocationsFlexTemplatesService(s *Service) *ProjectsLocationsFlexTemplatesService {
245	rs := &ProjectsLocationsFlexTemplatesService{s: s}
246	return rs
247}
248
249type ProjectsLocationsFlexTemplatesService struct {
250	s *Service
251}
252
253func NewProjectsLocationsJobsService(s *Service) *ProjectsLocationsJobsService {
254	rs := &ProjectsLocationsJobsService{s: s}
255	rs.Debug = NewProjectsLocationsJobsDebugService(s)
256	rs.Messages = NewProjectsLocationsJobsMessagesService(s)
257	rs.Snapshots = NewProjectsLocationsJobsSnapshotsService(s)
258	rs.Stages = NewProjectsLocationsJobsStagesService(s)
259	rs.WorkItems = NewProjectsLocationsJobsWorkItemsService(s)
260	return rs
261}
262
263type ProjectsLocationsJobsService struct {
264	s *Service
265
266	Debug *ProjectsLocationsJobsDebugService
267
268	Messages *ProjectsLocationsJobsMessagesService
269
270	Snapshots *ProjectsLocationsJobsSnapshotsService
271
272	Stages *ProjectsLocationsJobsStagesService
273
274	WorkItems *ProjectsLocationsJobsWorkItemsService
275}
276
277func NewProjectsLocationsJobsDebugService(s *Service) *ProjectsLocationsJobsDebugService {
278	rs := &ProjectsLocationsJobsDebugService{s: s}
279	return rs
280}
281
282type ProjectsLocationsJobsDebugService struct {
283	s *Service
284}
285
286func NewProjectsLocationsJobsMessagesService(s *Service) *ProjectsLocationsJobsMessagesService {
287	rs := &ProjectsLocationsJobsMessagesService{s: s}
288	return rs
289}
290
291type ProjectsLocationsJobsMessagesService struct {
292	s *Service
293}
294
295func NewProjectsLocationsJobsSnapshotsService(s *Service) *ProjectsLocationsJobsSnapshotsService {
296	rs := &ProjectsLocationsJobsSnapshotsService{s: s}
297	return rs
298}
299
300type ProjectsLocationsJobsSnapshotsService struct {
301	s *Service
302}
303
304func NewProjectsLocationsJobsStagesService(s *Service) *ProjectsLocationsJobsStagesService {
305	rs := &ProjectsLocationsJobsStagesService{s: s}
306	return rs
307}
308
309type ProjectsLocationsJobsStagesService struct {
310	s *Service
311}
312
313func NewProjectsLocationsJobsWorkItemsService(s *Service) *ProjectsLocationsJobsWorkItemsService {
314	rs := &ProjectsLocationsJobsWorkItemsService{s: s}
315	return rs
316}
317
318type ProjectsLocationsJobsWorkItemsService struct {
319	s *Service
320}
321
322func NewProjectsLocationsSnapshotsService(s *Service) *ProjectsLocationsSnapshotsService {
323	rs := &ProjectsLocationsSnapshotsService{s: s}
324	return rs
325}
326
327type ProjectsLocationsSnapshotsService struct {
328	s *Service
329}
330
331func NewProjectsLocationsSqlService(s *Service) *ProjectsLocationsSqlService {
332	rs := &ProjectsLocationsSqlService{s: s}
333	return rs
334}
335
336type ProjectsLocationsSqlService struct {
337	s *Service
338}
339
340func NewProjectsLocationsTemplatesService(s *Service) *ProjectsLocationsTemplatesService {
341	rs := &ProjectsLocationsTemplatesService{s: s}
342	return rs
343}
344
345type ProjectsLocationsTemplatesService struct {
346	s *Service
347}
348
349func NewProjectsSnapshotsService(s *Service) *ProjectsSnapshotsService {
350	rs := &ProjectsSnapshotsService{s: s}
351	return rs
352}
353
354type ProjectsSnapshotsService struct {
355	s *Service
356}
357
358func NewProjectsTemplatesService(s *Service) *ProjectsTemplatesService {
359	rs := &ProjectsTemplatesService{s: s}
360	return rs
361}
362
363type ProjectsTemplatesService struct {
364	s *Service
365}
366
367// ApproximateProgress: Obsolete in favor of ApproximateReportedProgress
368// and ApproximateSplitRequest.
369type ApproximateProgress struct {
370	// PercentComplete: Obsolete.
371	PercentComplete float64 `json:"percentComplete,omitempty"`
372
373	// Position: Obsolete.
374	Position *Position `json:"position,omitempty"`
375
376	// RemainingTime: Obsolete.
377	RemainingTime string `json:"remainingTime,omitempty"`
378
379	// ForceSendFields is a list of field names (e.g. "PercentComplete") to
380	// unconditionally include in API requests. By default, fields with
381	// empty values are omitted from API requests. However, any non-pointer,
382	// non-interface field appearing in ForceSendFields will be sent to the
383	// server regardless of whether the field is empty or not. This may be
384	// used to include empty fields in Patch requests.
385	ForceSendFields []string `json:"-"`
386
387	// NullFields is a list of field names (e.g. "PercentComplete") to
388	// include in API requests with the JSON null value. By default, fields
389	// with empty values are omitted from API requests. However, any field
390	// with an empty value appearing in NullFields will be sent to the
391	// server as null. It is an error if a field in this list has a
392	// non-empty value. This may be used to include null fields in Patch
393	// requests.
394	NullFields []string `json:"-"`
395}
396
397func (s *ApproximateProgress) MarshalJSON() ([]byte, error) {
398	type NoMethod ApproximateProgress
399	raw := NoMethod(*s)
400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
401}
402
403func (s *ApproximateProgress) UnmarshalJSON(data []byte) error {
404	type NoMethod ApproximateProgress
405	var s1 struct {
406		PercentComplete gensupport.JSONFloat64 `json:"percentComplete"`
407		*NoMethod
408	}
409	s1.NoMethod = (*NoMethod)(s)
410	if err := json.Unmarshal(data, &s1); err != nil {
411		return err
412	}
413	s.PercentComplete = float64(s1.PercentComplete)
414	return nil
415}
416
417// ApproximateReportedProgress: A progress measurement of a WorkItem by
418// a worker.
419type ApproximateReportedProgress struct {
420	// ConsumedParallelism: Total amount of parallelism in the portion of
421	// input of this task that has already been consumed and is no longer
422	// active. In the first two examples above (see remaining_parallelism),
423	// the value should be 29 or 2 respectively. The sum of
424	// remaining_parallelism and consumed_parallelism should equal the total
425	// amount of parallelism in this work item. If specified, must be
426	// finite.
427	ConsumedParallelism *ReportedParallelism `json:"consumedParallelism,omitempty"`
428
429	// FractionConsumed: Completion as fraction of the input consumed, from
430	// 0.0 (beginning, nothing consumed), to 1.0 (end of the input, entire
431	// input consumed).
432	FractionConsumed float64 `json:"fractionConsumed,omitempty"`
433
434	// Position: A Position within the work to represent a progress.
435	Position *Position `json:"position,omitempty"`
436
437	// RemainingParallelism: Total amount of parallelism in the input of
438	// this task that remains, (i.e. can be delegated to this task and any
439	// new tasks via dynamic splitting). Always at least 1 for non-finished
440	// work items and 0 for finished. "Amount of parallelism" refers to how
441	// many non-empty parts of the input can be read in parallel. This does
442	// not necessarily equal number of records. An input that can be read in
443	// parallel down to the individual records is called "perfectly
444	// splittable". An example of non-perfectly parallelizable input is a
445	// block-compressed file format where a block of records has to be read
446	// as a whole, but different blocks can be read in parallel. Examples: *
447	// If we are processing record #30 (starting at 1) out of 50 in a
448	// perfectly splittable 50-record input, this value should be 21 (20
449	// remaining + 1 current). * If we are reading through block 3 in a
450	// block-compressed file consisting of 5 blocks, this value should be 3
451	// (since blocks 4 and 5 can be processed in parallel by new tasks via
452	// dynamic splitting and the current task remains processing block 3). *
453	// If we are reading through the last block in a block-compressed file,
454	// or reading or processing the last record in a perfectly splittable
455	// input, this value should be 1, because apart from the current task,
456	// no additional remainder can be split off.
457	RemainingParallelism *ReportedParallelism `json:"remainingParallelism,omitempty"`
458
459	// ForceSendFields is a list of field names (e.g. "ConsumedParallelism")
460	// to unconditionally include in API requests. By default, fields with
461	// empty values are omitted from API requests. However, any non-pointer,
462	// non-interface field appearing in ForceSendFields will be sent to the
463	// server regardless of whether the field is empty or not. This may be
464	// used to include empty fields in Patch requests.
465	ForceSendFields []string `json:"-"`
466
467	// NullFields is a list of field names (e.g. "ConsumedParallelism") to
468	// include in API requests with the JSON null value. By default, fields
469	// with empty values are omitted from API requests. However, any field
470	// with an empty value appearing in NullFields will be sent to the
471	// server as null. It is an error if a field in this list has a
472	// non-empty value. This may be used to include null fields in Patch
473	// requests.
474	NullFields []string `json:"-"`
475}
476
477func (s *ApproximateReportedProgress) MarshalJSON() ([]byte, error) {
478	type NoMethod ApproximateReportedProgress
479	raw := NoMethod(*s)
480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
481}
482
483func (s *ApproximateReportedProgress) UnmarshalJSON(data []byte) error {
484	type NoMethod ApproximateReportedProgress
485	var s1 struct {
486		FractionConsumed gensupport.JSONFloat64 `json:"fractionConsumed"`
487		*NoMethod
488	}
489	s1.NoMethod = (*NoMethod)(s)
490	if err := json.Unmarshal(data, &s1); err != nil {
491		return err
492	}
493	s.FractionConsumed = float64(s1.FractionConsumed)
494	return nil
495}
496
497// ApproximateSplitRequest: A suggestion by the service to the worker to
498// dynamically split the WorkItem.
499type ApproximateSplitRequest struct {
500	// FractionConsumed: A fraction at which to split the work item, from
501	// 0.0 (beginning of the input) to 1.0 (end of the input).
502	FractionConsumed float64 `json:"fractionConsumed,omitempty"`
503
504	// FractionOfRemainder: The fraction of the remainder of work to split
505	// the work item at, from 0.0 (split at the current position) to 1.0
506	// (end of the input).
507	FractionOfRemainder float64 `json:"fractionOfRemainder,omitempty"`
508
509	// Position: A Position at which to split the work item.
510	Position *Position `json:"position,omitempty"`
511
512	// ForceSendFields is a list of field names (e.g. "FractionConsumed") to
513	// unconditionally include in API requests. By default, fields with
514	// empty values are omitted from API requests. However, any non-pointer,
515	// non-interface field appearing in ForceSendFields will be sent to the
516	// server regardless of whether the field is empty or not. This may be
517	// used to include empty fields in Patch requests.
518	ForceSendFields []string `json:"-"`
519
520	// NullFields is a list of field names (e.g. "FractionConsumed") to
521	// include in API requests with the JSON null value. By default, fields
522	// with empty values are omitted from API requests. However, any field
523	// with an empty value appearing in NullFields will be sent to the
524	// server as null. It is an error if a field in this list has a
525	// non-empty value. This may be used to include null fields in Patch
526	// requests.
527	NullFields []string `json:"-"`
528}
529
530func (s *ApproximateSplitRequest) MarshalJSON() ([]byte, error) {
531	type NoMethod ApproximateSplitRequest
532	raw := NoMethod(*s)
533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
534}
535
536func (s *ApproximateSplitRequest) UnmarshalJSON(data []byte) error {
537	type NoMethod ApproximateSplitRequest
538	var s1 struct {
539		FractionConsumed    gensupport.JSONFloat64 `json:"fractionConsumed"`
540		FractionOfRemainder gensupport.JSONFloat64 `json:"fractionOfRemainder"`
541		*NoMethod
542	}
543	s1.NoMethod = (*NoMethod)(s)
544	if err := json.Unmarshal(data, &s1); err != nil {
545		return err
546	}
547	s.FractionConsumed = float64(s1.FractionConsumed)
548	s.FractionOfRemainder = float64(s1.FractionOfRemainder)
549	return nil
550}
551
552// AutoscalingEvent: A structured message reporting an autoscaling
553// decision made by the Dataflow service.
554type AutoscalingEvent struct {
555	// CurrentNumWorkers: The current number of workers the job has.
556	CurrentNumWorkers int64 `json:"currentNumWorkers,omitempty,string"`
557
558	// Description: A message describing why the system decided to adjust
559	// the current number of workers, why it failed, or why the system
560	// decided to not make any changes to the number of workers.
561	Description *StructuredMessage `json:"description,omitempty"`
562
563	// EventType: The type of autoscaling event to report.
564	//
565	// Possible values:
566	//   "TYPE_UNKNOWN" - Default type for the enum. Value should never be
567	// returned.
568	//   "TARGET_NUM_WORKERS_CHANGED" - The TARGET_NUM_WORKERS_CHANGED type
569	// should be used when the target worker pool size has changed at the
570	// start of an actuation. An event should always be specified as
571	// TARGET_NUM_WORKERS_CHANGED if it reflects a change in the
572	// target_num_workers.
573	//   "CURRENT_NUM_WORKERS_CHANGED" - The CURRENT_NUM_WORKERS_CHANGED
574	// type should be used when actual worker pool size has been changed,
575	// but the target_num_workers has not changed.
576	//   "ACTUATION_FAILURE" - The ACTUATION_FAILURE type should be used
577	// when we want to report an error to the user indicating why the
578	// current number of workers in the pool could not be changed. Displayed
579	// in the current status and history widgets.
580	//   "NO_CHANGE" - Used when we want to report to the user a reason why
581	// we are not currently adjusting the number of workers. Should specify
582	// both target_num_workers, current_num_workers and a decision_message.
583	EventType string `json:"eventType,omitempty"`
584
585	// TargetNumWorkers: The target number of workers the worker pool wants
586	// to resize to use.
587	TargetNumWorkers int64 `json:"targetNumWorkers,omitempty,string"`
588
589	// Time: The time this event was emitted to indicate a new target or
590	// current num_workers value.
591	Time string `json:"time,omitempty"`
592
593	// WorkerPool: A short and friendly name for the worker pool this event
594	// refers to, populated from the value of
595	// PoolStageRelation::user_pool_name.
596	WorkerPool string `json:"workerPool,omitempty"`
597
598	// ForceSendFields is a list of field names (e.g. "CurrentNumWorkers")
599	// to unconditionally include in API requests. By default, fields with
600	// empty values are omitted from API requests. However, any non-pointer,
601	// non-interface field appearing in ForceSendFields will be sent to the
602	// server regardless of whether the field is empty or not. This may be
603	// used to include empty fields in Patch requests.
604	ForceSendFields []string `json:"-"`
605
606	// NullFields is a list of field names (e.g. "CurrentNumWorkers") to
607	// include in API requests with the JSON null value. By default, fields
608	// with empty values are omitted from API requests. However, any field
609	// with an empty value appearing in NullFields will be sent to the
610	// server as null. It is an error if a field in this list has a
611	// non-empty value. This may be used to include null fields in Patch
612	// requests.
613	NullFields []string `json:"-"`
614}
615
616func (s *AutoscalingEvent) MarshalJSON() ([]byte, error) {
617	type NoMethod AutoscalingEvent
618	raw := NoMethod(*s)
619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
620}
621
622// AutoscalingSettings: Settings for WorkerPool autoscaling.
623type AutoscalingSettings struct {
624	// Algorithm: The algorithm to use for autoscaling.
625	//
626	// Possible values:
627	//   "AUTOSCALING_ALGORITHM_UNKNOWN" - The algorithm is unknown, or
628	// unspecified.
629	//   "AUTOSCALING_ALGORITHM_NONE" - Disable autoscaling.
630	//   "AUTOSCALING_ALGORITHM_BASIC" - Increase worker count over time to
631	// reduce job execution time.
632	Algorithm string `json:"algorithm,omitempty"`
633
634	// MaxNumWorkers: The maximum number of workers to cap scaling at.
635	MaxNumWorkers int64 `json:"maxNumWorkers,omitempty"`
636
637	// ForceSendFields is a list of field names (e.g. "Algorithm") to
638	// unconditionally include in API requests. By default, fields with
639	// empty values are omitted from API requests. However, any non-pointer,
640	// non-interface field appearing in ForceSendFields will be sent to the
641	// server regardless of whether the field is empty or not. This may be
642	// used to include empty fields in Patch requests.
643	ForceSendFields []string `json:"-"`
644
645	// NullFields is a list of field names (e.g. "Algorithm") to include in
646	// API requests with the JSON null value. By default, fields with empty
647	// values are omitted from API requests. However, any field with an
648	// empty value appearing in NullFields will be sent to the server as
649	// null. It is an error if a field in this list has a non-empty value.
650	// This may be used to include null fields in Patch requests.
651	NullFields []string `json:"-"`
652}
653
654func (s *AutoscalingSettings) MarshalJSON() ([]byte, error) {
655	type NoMethod AutoscalingSettings
656	raw := NoMethod(*s)
657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
658}
659
660// BigQueryIODetails: Metadata for a BigQuery connector used by the job.
661type BigQueryIODetails struct {
662	// Dataset: Dataset accessed in the connection.
663	Dataset string `json:"dataset,omitempty"`
664
665	// ProjectId: Project accessed in the connection.
666	ProjectId string `json:"projectId,omitempty"`
667
668	// Query: Query used to access data in the connection.
669	Query string `json:"query,omitempty"`
670
671	// Table: Table accessed in the connection.
672	Table string `json:"table,omitempty"`
673
674	// ForceSendFields is a list of field names (e.g. "Dataset") to
675	// unconditionally include in API requests. By default, fields with
676	// empty values are omitted from API requests. However, any non-pointer,
677	// non-interface field appearing in ForceSendFields will be sent to the
678	// server regardless of whether the field is empty or not. This may be
679	// used to include empty fields in Patch requests.
680	ForceSendFields []string `json:"-"`
681
682	// NullFields is a list of field names (e.g. "Dataset") to include in
683	// API requests with the JSON null value. By default, fields with empty
684	// values are omitted from API requests. However, any field with an
685	// empty value appearing in NullFields will be sent to the server as
686	// null. It is an error if a field in this list has a non-empty value.
687	// This may be used to include null fields in Patch requests.
688	NullFields []string `json:"-"`
689}
690
691func (s *BigQueryIODetails) MarshalJSON() ([]byte, error) {
692	type NoMethod BigQueryIODetails
693	raw := NoMethod(*s)
694	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
695}
696
697// BigTableIODetails: Metadata for a BigTable connector used by the job.
698type BigTableIODetails struct {
699	// InstanceId: InstanceId accessed in the connection.
700	InstanceId string `json:"instanceId,omitempty"`
701
702	// ProjectId: ProjectId accessed in the connection.
703	ProjectId string `json:"projectId,omitempty"`
704
705	// TableId: TableId accessed in the connection.
706	TableId string `json:"tableId,omitempty"`
707
708	// ForceSendFields is a list of field names (e.g. "InstanceId") to
709	// unconditionally include in API requests. By default, fields with
710	// empty values are omitted from API requests. However, any non-pointer,
711	// non-interface field appearing in ForceSendFields will be sent to the
712	// server regardless of whether the field is empty or not. This may be
713	// used to include empty fields in Patch requests.
714	ForceSendFields []string `json:"-"`
715
716	// NullFields is a list of field names (e.g. "InstanceId") to include in
717	// API requests with the JSON null value. By default, fields with empty
718	// values are omitted from API requests. However, any field with an
719	// empty value appearing in NullFields will be sent to the server as
720	// null. It is an error if a field in this list has a non-empty value.
721	// This may be used to include null fields in Patch requests.
722	NullFields []string `json:"-"`
723}
724
725func (s *BigTableIODetails) MarshalJSON() ([]byte, error) {
726	type NoMethod BigTableIODetails
727	raw := NoMethod(*s)
728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
729}
730
731// CPUTime: Modeled after information exposed by /proc/stat.
732type CPUTime struct {
733	// Rate: Average CPU utilization rate (% non-idle cpu / second) since
734	// previous sample.
735	Rate float64 `json:"rate,omitempty"`
736
737	// Timestamp: Timestamp of the measurement.
738	Timestamp string `json:"timestamp,omitempty"`
739
740	// TotalMs: Total active CPU time across all cores (ie., non-idle) in
741	// milliseconds since start-up.
742	TotalMs uint64 `json:"totalMs,omitempty,string"`
743
744	// ForceSendFields is a list of field names (e.g. "Rate") to
745	// unconditionally include in API requests. By default, fields with
746	// empty values are omitted from API requests. However, any non-pointer,
747	// non-interface field appearing in ForceSendFields will be sent to the
748	// server regardless of whether the field is empty or not. This may be
749	// used to include empty fields in Patch requests.
750	ForceSendFields []string `json:"-"`
751
752	// NullFields is a list of field names (e.g. "Rate") to include in API
753	// requests with the JSON null value. By default, fields with empty
754	// values are omitted from API requests. However, any field with an
755	// empty value appearing in NullFields will be sent to the server as
756	// null. It is an error if a field in this list has a non-empty value.
757	// This may be used to include null fields in Patch requests.
758	NullFields []string `json:"-"`
759}
760
761func (s *CPUTime) MarshalJSON() ([]byte, error) {
762	type NoMethod CPUTime
763	raw := NoMethod(*s)
764	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
765}
766
767func (s *CPUTime) UnmarshalJSON(data []byte) error {
768	type NoMethod CPUTime
769	var s1 struct {
770		Rate gensupport.JSONFloat64 `json:"rate"`
771		*NoMethod
772	}
773	s1.NoMethod = (*NoMethod)(s)
774	if err := json.Unmarshal(data, &s1); err != nil {
775		return err
776	}
777	s.Rate = float64(s1.Rate)
778	return nil
779}
780
781// ComponentSource: Description of an interstitial value between
782// transforms in an execution stage.
783type ComponentSource struct {
784	// Name: Dataflow service generated name for this source.
785	Name string `json:"name,omitempty"`
786
787	// OriginalTransformOrCollection: User name for the original user
788	// transform or collection with which this source is most closely
789	// associated.
790	OriginalTransformOrCollection string `json:"originalTransformOrCollection,omitempty"`
791
792	// UserName: Human-readable name for this transform; may be user or
793	// system generated.
794	UserName string `json:"userName,omitempty"`
795
796	// ForceSendFields is a list of field names (e.g. "Name") to
797	// unconditionally include in API requests. By default, fields with
798	// empty values are omitted from API requests. However, any non-pointer,
799	// non-interface field appearing in ForceSendFields will be sent to the
800	// server regardless of whether the field is empty or not. This may be
801	// used to include empty fields in Patch requests.
802	ForceSendFields []string `json:"-"`
803
804	// NullFields is a list of field names (e.g. "Name") to include in API
805	// requests with the JSON null value. By default, fields with empty
806	// values are omitted from API requests. However, any field with an
807	// empty value appearing in NullFields will be sent to the server as
808	// null. It is an error if a field in this list has a non-empty value.
809	// This may be used to include null fields in Patch requests.
810	NullFields []string `json:"-"`
811}
812
813func (s *ComponentSource) MarshalJSON() ([]byte, error) {
814	type NoMethod ComponentSource
815	raw := NoMethod(*s)
816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
817}
818
819// ComponentTransform: Description of a transform executed as part of an
820// execution stage.
821type ComponentTransform struct {
822	// Name: Dataflow service generated name for this source.
823	Name string `json:"name,omitempty"`
824
825	// OriginalTransform: User name for the original user transform with
826	// which this transform is most closely associated.
827	OriginalTransform string `json:"originalTransform,omitempty"`
828
829	// UserName: Human-readable name for this transform; may be user or
830	// system generated.
831	UserName string `json:"userName,omitempty"`
832
833	// ForceSendFields is a list of field names (e.g. "Name") to
834	// unconditionally include in API requests. By default, fields with
835	// empty values are omitted from API requests. However, any non-pointer,
836	// non-interface field appearing in ForceSendFields will be sent to the
837	// server regardless of whether the field is empty or not. This may be
838	// used to include empty fields in Patch requests.
839	ForceSendFields []string `json:"-"`
840
841	// NullFields is a list of field names (e.g. "Name") to include in API
842	// requests with the JSON null value. By default, fields with empty
843	// values are omitted from API requests. However, any field with an
844	// empty value appearing in NullFields will be sent to the server as
845	// null. It is an error if a field in this list has a non-empty value.
846	// This may be used to include null fields in Patch requests.
847	NullFields []string `json:"-"`
848}
849
850func (s *ComponentTransform) MarshalJSON() ([]byte, error) {
851	type NoMethod ComponentTransform
852	raw := NoMethod(*s)
853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
854}
855
856// ComputationTopology: All configuration data for a particular
857// Computation.
858type ComputationTopology struct {
859	// ComputationId: The ID of the computation.
860	ComputationId string `json:"computationId,omitempty"`
861
862	// Inputs: The inputs to the computation.
863	Inputs []*StreamLocation `json:"inputs,omitempty"`
864
865	// KeyRanges: The key ranges processed by the computation.
866	KeyRanges []*KeyRangeLocation `json:"keyRanges,omitempty"`
867
868	// Outputs: The outputs from the computation.
869	Outputs []*StreamLocation `json:"outputs,omitempty"`
870
871	// StateFamilies: The state family values.
872	StateFamilies []*StateFamilyConfig `json:"stateFamilies,omitempty"`
873
874	// SystemStageName: The system stage name.
875	SystemStageName string `json:"systemStageName,omitempty"`
876
877	// ForceSendFields is a list of field names (e.g. "ComputationId") to
878	// unconditionally include in API requests. By default, fields with
879	// empty values are omitted from API requests. However, any non-pointer,
880	// non-interface field appearing in ForceSendFields will be sent to the
881	// server regardless of whether the field is empty or not. This may be
882	// used to include empty fields in Patch requests.
883	ForceSendFields []string `json:"-"`
884
885	// NullFields is a list of field names (e.g. "ComputationId") to include
886	// in API requests with the JSON null value. By default, fields with
887	// empty values are omitted from API requests. However, any field with
888	// an empty value appearing in NullFields will be sent to the server as
889	// null. It is an error if a field in this list has a non-empty value.
890	// This may be used to include null fields in Patch requests.
891	NullFields []string `json:"-"`
892}
893
894func (s *ComputationTopology) MarshalJSON() ([]byte, error) {
895	type NoMethod ComputationTopology
896	raw := NoMethod(*s)
897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
898}
899
900// ConcatPosition: A position that encapsulates an inner position and an
901// index for the inner position. A ConcatPosition can be used by a
902// reader of a source that encapsulates a set of other sources.
903type ConcatPosition struct {
904	// Index: Index of the inner source.
905	Index int64 `json:"index,omitempty"`
906
907	// Position: Position within the inner source.
908	Position *Position `json:"position,omitempty"`
909
910	// ForceSendFields is a list of field names (e.g. "Index") to
911	// unconditionally include in API requests. By default, fields with
912	// empty values are omitted from API requests. However, any non-pointer,
913	// non-interface field appearing in ForceSendFields will be sent to the
914	// server regardless of whether the field is empty or not. This may be
915	// used to include empty fields in Patch requests.
916	ForceSendFields []string `json:"-"`
917
918	// NullFields is a list of field names (e.g. "Index") to include in API
919	// requests with the JSON null value. By default, fields with empty
920	// values are omitted from API requests. However, any field with an
921	// empty value appearing in NullFields will be sent to the server as
922	// null. It is an error if a field in this list has a non-empty value.
923	// This may be used to include null fields in Patch requests.
924	NullFields []string `json:"-"`
925}
926
927func (s *ConcatPosition) MarshalJSON() ([]byte, error) {
928	type NoMethod ConcatPosition
929	raw := NoMethod(*s)
930	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
931}
932
933// ContainerSpec: Container Spec.
934type ContainerSpec struct {
935	// DefaultEnvironment: Default runtime environment for the job.
936	DefaultEnvironment *FlexTemplateRuntimeEnvironment `json:"defaultEnvironment,omitempty"`
937
938	// Image: Name of the docker container image. E.g.,
939	// gcr.io/project/some-image
940	Image string `json:"image,omitempty"`
941
942	// Metadata: Metadata describing a template including description and
943	// validation rules.
944	Metadata *TemplateMetadata `json:"metadata,omitempty"`
945
946	// SdkInfo: Required. SDK info of the Flex Template.
947	SdkInfo *SDKInfo `json:"sdkInfo,omitempty"`
948
949	// ForceSendFields is a list of field names (e.g. "DefaultEnvironment")
950	// to unconditionally include in API requests. By default, fields with
951	// empty values are omitted from API requests. However, any non-pointer,
952	// non-interface field appearing in ForceSendFields will be sent to the
953	// server regardless of whether the field is empty or not. This may be
954	// used to include empty fields in Patch requests.
955	ForceSendFields []string `json:"-"`
956
957	// NullFields is a list of field names (e.g. "DefaultEnvironment") to
958	// include in API requests with the JSON null value. By default, fields
959	// with empty values are omitted from API requests. However, any field
960	// with an empty value appearing in NullFields will be sent to the
961	// server as null. It is an error if a field in this list has a
962	// non-empty value. This may be used to include null fields in Patch
963	// requests.
964	NullFields []string `json:"-"`
965}
966
967func (s *ContainerSpec) MarshalJSON() ([]byte, error) {
968	type NoMethod ContainerSpec
969	raw := NoMethod(*s)
970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
971}
972
973// CounterMetadata: CounterMetadata includes all static non-name
974// non-value counter attributes.
975type CounterMetadata struct {
976	// Description: Human-readable description of the counter semantics.
977	Description string `json:"description,omitempty"`
978
979	// Kind: Counter aggregation kind.
980	//
981	// Possible values:
982	//   "INVALID" - Counter aggregation kind was not set.
983	//   "SUM" - Aggregated value is the sum of all contributed values.
984	//   "MAX" - Aggregated value is the max of all contributed values.
985	//   "MIN" - Aggregated value is the min of all contributed values.
986	//   "MEAN" - Aggregated value is the mean of all contributed values.
987	//   "OR" - Aggregated value represents the logical 'or' of all
988	// contributed values.
989	//   "AND" - Aggregated value represents the logical 'and' of all
990	// contributed values.
991	//   "SET" - Aggregated value is a set of unique contributed values.
992	//   "DISTRIBUTION" - Aggregated value captures statistics about a
993	// distribution.
994	//   "LATEST_VALUE" - Aggregated value tracks the latest value of a
995	// variable.
996	Kind string `json:"kind,omitempty"`
997
998	// OtherUnits: A string referring to the unit type.
999	OtherUnits string `json:"otherUnits,omitempty"`
1000
1001	// StandardUnits: System defined Units, see above enum.
1002	//
1003	// Possible values:
1004	//   "BYTES" - Counter returns a value in bytes.
1005	//   "BYTES_PER_SEC" - Counter returns a value in bytes per second.
1006	//   "MILLISECONDS" - Counter returns a value in milliseconds.
1007	//   "MICROSECONDS" - Counter returns a value in microseconds.
1008	//   "NANOSECONDS" - Counter returns a value in nanoseconds.
1009	//   "TIMESTAMP_MSEC" - Counter returns a timestamp in milliseconds.
1010	//   "TIMESTAMP_USEC" - Counter returns a timestamp in microseconds.
1011	//   "TIMESTAMP_NSEC" - Counter returns a timestamp in nanoseconds.
1012	StandardUnits string `json:"standardUnits,omitempty"`
1013
1014	// ForceSendFields is a list of field names (e.g. "Description") to
1015	// unconditionally include in API requests. By default, fields with
1016	// empty values are omitted from API requests. However, any non-pointer,
1017	// non-interface field appearing in ForceSendFields will be sent to the
1018	// server regardless of whether the field is empty or not. This may be
1019	// used to include empty fields in Patch requests.
1020	ForceSendFields []string `json:"-"`
1021
1022	// NullFields is a list of field names (e.g. "Description") to include
1023	// in API requests with the JSON null value. By default, fields with
1024	// empty values are omitted from API requests. However, any field with
1025	// an empty value appearing in NullFields will be sent to the server as
1026	// null. It is an error if a field in this list has a non-empty value.
1027	// This may be used to include null fields in Patch requests.
1028	NullFields []string `json:"-"`
1029}
1030
1031func (s *CounterMetadata) MarshalJSON() ([]byte, error) {
1032	type NoMethod CounterMetadata
1033	raw := NoMethod(*s)
1034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1035}
1036
1037// CounterStructuredName: Identifies a counter within a per-job
1038// namespace. Counters whose structured names are the same get merged
1039// into a single value for the job.
1040type CounterStructuredName struct {
1041	// ComponentStepName: Name of the optimized step being executed by the
1042	// workers.
1043	ComponentStepName string `json:"componentStepName,omitempty"`
1044
1045	// ExecutionStepName: Name of the stage. An execution step contains
1046	// multiple component steps.
1047	ExecutionStepName string `json:"executionStepName,omitempty"`
1048
1049	// InputIndex: Index of an input collection that's being read
1050	// from/written to as a side input. The index identifies a step's side
1051	// inputs starting by 1 (e.g. the first side input has input_index 1,
1052	// the third has input_index 3). Side inputs are identified by a pair of
1053	// (original_step_name, input_index). This field helps uniquely identify
1054	// them.
1055	InputIndex int64 `json:"inputIndex,omitempty"`
1056
1057	// Name: Counter name. Not necessarily globally-unique, but unique
1058	// within the context of the other fields. Required.
1059	Name string `json:"name,omitempty"`
1060
1061	// Origin: One of the standard Origins defined above.
1062	//
1063	// Possible values:
1064	//   "SYSTEM" - Counter was created by the Dataflow system.
1065	//   "USER" - Counter was created by the user.
1066	Origin string `json:"origin,omitempty"`
1067
1068	// OriginNamespace: A string containing a more specific namespace of the
1069	// counter's origin.
1070	OriginNamespace string `json:"originNamespace,omitempty"`
1071
1072	// OriginalRequestingStepName: The step name requesting an operation,
1073	// such as GBK. I.e. the ParDo causing a read/write from shuffle to
1074	// occur, or a read from side inputs.
1075	OriginalRequestingStepName string `json:"originalRequestingStepName,omitempty"`
1076
1077	// OriginalStepName: System generated name of the original step in the
1078	// user's graph, before optimization.
1079	OriginalStepName string `json:"originalStepName,omitempty"`
1080
1081	// Portion: Portion of this counter, either key or value.
1082	//
1083	// Possible values:
1084	//   "ALL" - Counter portion has not been set.
1085	//   "KEY" - Counter reports a key.
1086	//   "VALUE" - Counter reports a value.
1087	Portion string `json:"portion,omitempty"`
1088
1089	// WorkerId: ID of a particular worker.
1090	WorkerId string `json:"workerId,omitempty"`
1091
1092	// ForceSendFields is a list of field names (e.g. "ComponentStepName")
1093	// to unconditionally include in API requests. By default, fields with
1094	// empty values are omitted from API requests. However, any non-pointer,
1095	// non-interface field appearing in ForceSendFields will be sent to the
1096	// server regardless of whether the field is empty or not. This may be
1097	// used to include empty fields in Patch requests.
1098	ForceSendFields []string `json:"-"`
1099
1100	// NullFields is a list of field names (e.g. "ComponentStepName") to
1101	// include in API requests with the JSON null value. By default, fields
1102	// with empty values are omitted from API requests. However, any field
1103	// with an empty value appearing in NullFields will be sent to the
1104	// server as null. It is an error if a field in this list has a
1105	// non-empty value. This may be used to include null fields in Patch
1106	// requests.
1107	NullFields []string `json:"-"`
1108}
1109
1110func (s *CounterStructuredName) MarshalJSON() ([]byte, error) {
1111	type NoMethod CounterStructuredName
1112	raw := NoMethod(*s)
1113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1114}
1115
1116// CounterStructuredNameAndMetadata: A single message which encapsulates
1117// structured name and metadata for a given counter.
1118type CounterStructuredNameAndMetadata struct {
1119	// Metadata: Metadata associated with a counter
1120	Metadata *CounterMetadata `json:"metadata,omitempty"`
1121
1122	// Name: Structured name of the counter.
1123	Name *CounterStructuredName `json:"name,omitempty"`
1124
1125	// ForceSendFields is a list of field names (e.g. "Metadata") to
1126	// unconditionally include in API requests. By default, fields with
1127	// empty values are omitted from API requests. However, any non-pointer,
1128	// non-interface field appearing in ForceSendFields will be sent to the
1129	// server regardless of whether the field is empty or not. This may be
1130	// used to include empty fields in Patch requests.
1131	ForceSendFields []string `json:"-"`
1132
1133	// NullFields is a list of field names (e.g. "Metadata") to include in
1134	// API requests with the JSON null value. By default, fields with empty
1135	// values are omitted from API requests. However, any field with an
1136	// empty value appearing in NullFields will be sent to the server as
1137	// null. It is an error if a field in this list has a non-empty value.
1138	// This may be used to include null fields in Patch requests.
1139	NullFields []string `json:"-"`
1140}
1141
1142func (s *CounterStructuredNameAndMetadata) MarshalJSON() ([]byte, error) {
1143	type NoMethod CounterStructuredNameAndMetadata
1144	raw := NoMethod(*s)
1145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1146}
1147
1148// CounterUpdate: An update to a Counter sent from a worker.
1149type CounterUpdate struct {
1150	// Boolean: Boolean value for And, Or.
1151	Boolean bool `json:"boolean,omitempty"`
1152
1153	// Cumulative: True if this counter is reported as the total cumulative
1154	// aggregate value accumulated since the worker started working on this
1155	// WorkItem. By default this is false, indicating that this counter is
1156	// reported as a delta.
1157	Cumulative bool `json:"cumulative,omitempty"`
1158
1159	// Distribution: Distribution data
1160	Distribution *DistributionUpdate `json:"distribution,omitempty"`
1161
1162	// FloatingPoint: Floating point value for Sum, Max, Min.
1163	FloatingPoint float64 `json:"floatingPoint,omitempty"`
1164
1165	// FloatingPointList: List of floating point numbers, for Set.
1166	FloatingPointList *FloatingPointList `json:"floatingPointList,omitempty"`
1167
1168	// FloatingPointMean: Floating point mean aggregation value for Mean.
1169	FloatingPointMean *FloatingPointMean `json:"floatingPointMean,omitempty"`
1170
1171	// Integer: Integer value for Sum, Max, Min.
1172	Integer *SplitInt64 `json:"integer,omitempty"`
1173
1174	// IntegerGauge: Gauge data
1175	IntegerGauge *IntegerGauge `json:"integerGauge,omitempty"`
1176
1177	// IntegerList: List of integers, for Set.
1178	IntegerList *IntegerList `json:"integerList,omitempty"`
1179
1180	// IntegerMean: Integer mean aggregation value for Mean.
1181	IntegerMean *IntegerMean `json:"integerMean,omitempty"`
1182
1183	// Internal: Value for internally-defined counters used by the Dataflow
1184	// service.
1185	Internal interface{} `json:"internal,omitempty"`
1186
1187	// NameAndKind: Counter name and aggregation type.
1188	NameAndKind *NameAndKind `json:"nameAndKind,omitempty"`
1189
1190	// ShortId: The service-generated short identifier for this counter. The
1191	// short_id -> (name, metadata) mapping is constant for the lifetime of
1192	// a job.
1193	ShortId int64 `json:"shortId,omitempty,string"`
1194
1195	// StringList: List of strings, for Set.
1196	StringList *StringList `json:"stringList,omitempty"`
1197
1198	// StructuredNameAndMetadata: Counter structured name and metadata.
1199	StructuredNameAndMetadata *CounterStructuredNameAndMetadata `json:"structuredNameAndMetadata,omitempty"`
1200
1201	// ForceSendFields is a list of field names (e.g. "Boolean") to
1202	// unconditionally include in API requests. By default, fields with
1203	// empty values are omitted from API requests. However, any non-pointer,
1204	// non-interface field appearing in ForceSendFields will be sent to the
1205	// server regardless of whether the field is empty or not. This may be
1206	// used to include empty fields in Patch requests.
1207	ForceSendFields []string `json:"-"`
1208
1209	// NullFields is a list of field names (e.g. "Boolean") to include in
1210	// API requests with the JSON null value. By default, fields with empty
1211	// values are omitted from API requests. However, any field with an
1212	// empty value appearing in NullFields will be sent to the server as
1213	// null. It is an error if a field in this list has a non-empty value.
1214	// This may be used to include null fields in Patch requests.
1215	NullFields []string `json:"-"`
1216}
1217
1218func (s *CounterUpdate) MarshalJSON() ([]byte, error) {
1219	type NoMethod CounterUpdate
1220	raw := NoMethod(*s)
1221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1222}
1223
1224func (s *CounterUpdate) UnmarshalJSON(data []byte) error {
1225	type NoMethod CounterUpdate
1226	var s1 struct {
1227		FloatingPoint gensupport.JSONFloat64 `json:"floatingPoint"`
1228		*NoMethod
1229	}
1230	s1.NoMethod = (*NoMethod)(s)
1231	if err := json.Unmarshal(data, &s1); err != nil {
1232		return err
1233	}
1234	s.FloatingPoint = float64(s1.FloatingPoint)
1235	return nil
1236}
1237
1238// CreateJobFromTemplateRequest: A request to create a Cloud Dataflow
1239// job from a template.
1240type CreateJobFromTemplateRequest struct {
1241	// Environment: The runtime environment for the job.
1242	Environment *RuntimeEnvironment `json:"environment,omitempty"`
1243
1244	// GcsPath: Required. A Cloud Storage path to the template from which to
1245	// create the job. Must be a valid Cloud Storage URL, beginning with
1246	// `gs://`.
1247	GcsPath string `json:"gcsPath,omitempty"`
1248
1249	// JobName: Required. The job name to use for the created job.
1250	JobName string `json:"jobName,omitempty"`
1251
1252	// Location: The [regional endpoint]
1253	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
1254	// to which to direct the request.
1255	Location string `json:"location,omitempty"`
1256
1257	// Parameters: The runtime parameters to pass to the job.
1258	Parameters map[string]string `json:"parameters,omitempty"`
1259
1260	// ForceSendFields is a list of field names (e.g. "Environment") to
1261	// unconditionally include in API requests. By default, fields with
1262	// empty values are omitted from API requests. However, any non-pointer,
1263	// non-interface field appearing in ForceSendFields will be sent to the
1264	// server regardless of whether the field is empty or not. This may be
1265	// used to include empty fields in Patch requests.
1266	ForceSendFields []string `json:"-"`
1267
1268	// NullFields is a list of field names (e.g. "Environment") to include
1269	// in API requests with the JSON null value. By default, fields with
1270	// empty values are omitted from API requests. However, any field with
1271	// an empty value appearing in NullFields will be sent to the server as
1272	// null. It is an error if a field in this list has a non-empty value.
1273	// This may be used to include null fields in Patch requests.
1274	NullFields []string `json:"-"`
1275}
1276
1277func (s *CreateJobFromTemplateRequest) MarshalJSON() ([]byte, error) {
1278	type NoMethod CreateJobFromTemplateRequest
1279	raw := NoMethod(*s)
1280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1281}
1282
1283// CustomSourceLocation: Identifies the location of a custom souce.
1284type CustomSourceLocation struct {
1285	// Stateful: Whether this source is stateful.
1286	Stateful bool `json:"stateful,omitempty"`
1287
1288	// ForceSendFields is a list of field names (e.g. "Stateful") to
1289	// unconditionally include in API requests. By default, fields with
1290	// empty values are omitted from API requests. However, any non-pointer,
1291	// non-interface field appearing in ForceSendFields will be sent to the
1292	// server regardless of whether the field is empty or not. This may be
1293	// used to include empty fields in Patch requests.
1294	ForceSendFields []string `json:"-"`
1295
1296	// NullFields is a list of field names (e.g. "Stateful") to include in
1297	// API requests with the JSON null value. By default, fields with empty
1298	// values are omitted from API requests. However, any field with an
1299	// empty value appearing in NullFields will be sent to the server as
1300	// null. It is an error if a field in this list has a non-empty value.
1301	// This may be used to include null fields in Patch requests.
1302	NullFields []string `json:"-"`
1303}
1304
1305func (s *CustomSourceLocation) MarshalJSON() ([]byte, error) {
1306	type NoMethod CustomSourceLocation
1307	raw := NoMethod(*s)
1308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1309}
1310
1311// DataDiskAssignment: Data disk assignment for a given VM instance.
1312type DataDiskAssignment struct {
1313	// DataDisks: Mounted data disks. The order is important a data disk's
1314	// 0-based index in this list defines which persistent directory the
1315	// disk is mounted to, for example the list of {
1316	// "myproject-1014-104817-4c2-harness-0-disk-0" }, {
1317	// "myproject-1014-104817-4c2-harness-0-disk-1" }.
1318	DataDisks []string `json:"dataDisks,omitempty"`
1319
1320	// VmInstance: VM instance name the data disks mounted to, for example
1321	// "myproject-1014-104817-4c2-harness-0".
1322	VmInstance string `json:"vmInstance,omitempty"`
1323
1324	// ForceSendFields is a list of field names (e.g. "DataDisks") to
1325	// unconditionally include in API requests. By default, fields with
1326	// empty values are omitted from API requests. However, any non-pointer,
1327	// non-interface field appearing in ForceSendFields will be sent to the
1328	// server regardless of whether the field is empty or not. This may be
1329	// used to include empty fields in Patch requests.
1330	ForceSendFields []string `json:"-"`
1331
1332	// NullFields is a list of field names (e.g. "DataDisks") to include in
1333	// API requests with the JSON null value. By default, fields with empty
1334	// values are omitted from API requests. However, any field with an
1335	// empty value appearing in NullFields will be sent to the server as
1336	// null. It is an error if a field in this list has a non-empty value.
1337	// This may be used to include null fields in Patch requests.
1338	NullFields []string `json:"-"`
1339}
1340
1341func (s *DataDiskAssignment) MarshalJSON() ([]byte, error) {
1342	type NoMethod DataDiskAssignment
1343	raw := NoMethod(*s)
1344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1345}
1346
1347// DatastoreIODetails: Metadata for a Datastore connector used by the
1348// job.
1349type DatastoreIODetails struct {
1350	// Namespace: Namespace used in the connection.
1351	Namespace string `json:"namespace,omitempty"`
1352
1353	// ProjectId: ProjectId accessed in the connection.
1354	ProjectId string `json:"projectId,omitempty"`
1355
1356	// ForceSendFields is a list of field names (e.g. "Namespace") to
1357	// unconditionally include in API requests. By default, fields with
1358	// empty values are omitted from API requests. However, any non-pointer,
1359	// non-interface field appearing in ForceSendFields will be sent to the
1360	// server regardless of whether the field is empty or not. This may be
1361	// used to include empty fields in Patch requests.
1362	ForceSendFields []string `json:"-"`
1363
1364	// NullFields is a list of field names (e.g. "Namespace") to include in
1365	// API requests with the JSON null value. By default, fields with empty
1366	// values are omitted from API requests. However, any field with an
1367	// empty value appearing in NullFields will be sent to the server as
1368	// null. It is an error if a field in this list has a non-empty value.
1369	// This may be used to include null fields in Patch requests.
1370	NullFields []string `json:"-"`
1371}
1372
1373func (s *DatastoreIODetails) MarshalJSON() ([]byte, error) {
1374	type NoMethod DatastoreIODetails
1375	raw := NoMethod(*s)
1376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1377}
1378
1379// DebugOptions: Describes any options that have an effect on the
1380// debugging of pipelines.
1381type DebugOptions struct {
1382	// EnableHotKeyLogging: When true, enables the logging of the literal
1383	// hot key to the user's Cloud Logging.
1384	EnableHotKeyLogging bool `json:"enableHotKeyLogging,omitempty"`
1385
1386	// ForceSendFields is a list of field names (e.g. "EnableHotKeyLogging")
1387	// to unconditionally include in API requests. By default, fields with
1388	// empty values are omitted from API requests. However, any non-pointer,
1389	// non-interface field appearing in ForceSendFields will be sent to the
1390	// server regardless of whether the field is empty or not. This may be
1391	// used to include empty fields in Patch requests.
1392	ForceSendFields []string `json:"-"`
1393
1394	// NullFields is a list of field names (e.g. "EnableHotKeyLogging") to
1395	// include in API requests with the JSON null value. By default, fields
1396	// with empty values are omitted from API requests. However, any field
1397	// with an empty value appearing in NullFields will be sent to the
1398	// server as null. It is an error if a field in this list has a
1399	// non-empty value. This may be used to include null fields in Patch
1400	// requests.
1401	NullFields []string `json:"-"`
1402}
1403
1404func (s *DebugOptions) MarshalJSON() ([]byte, error) {
1405	type NoMethod DebugOptions
1406	raw := NoMethod(*s)
1407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1408}
1409
1410// DeleteSnapshotResponse: Response from deleting a snapshot.
1411type DeleteSnapshotResponse struct {
1412	// ServerResponse contains the HTTP response code and headers from the
1413	// server.
1414	googleapi.ServerResponse `json:"-"`
1415}
1416
1417// DerivedSource: Specification of one of the bundles produced as a
1418// result of splitting a Source (e.g. when executing a
1419// SourceSplitRequest, or when splitting an active task using
1420// WorkItemStatus.dynamic_source_split), relative to the source being
1421// split.
1422type DerivedSource struct {
1423	// DerivationMode: What source to base the produced source on (if any).
1424	//
1425	// Possible values:
1426	//   "SOURCE_DERIVATION_MODE_UNKNOWN" - The source derivation is
1427	// unknown, or unspecified.
1428	//   "SOURCE_DERIVATION_MODE_INDEPENDENT" - Produce a completely
1429	// independent Source with no base.
1430	//   "SOURCE_DERIVATION_MODE_CHILD_OF_CURRENT" - Produce a Source based
1431	// on the Source being split.
1432	//   "SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" - Produce a Source
1433	// based on the base of the Source being split.
1434	DerivationMode string `json:"derivationMode,omitempty"`
1435
1436	// Source: Specification of the source.
1437	Source *Source `json:"source,omitempty"`
1438
1439	// ForceSendFields is a list of field names (e.g. "DerivationMode") to
1440	// unconditionally include in API requests. By default, fields with
1441	// empty values are omitted from API requests. However, any non-pointer,
1442	// non-interface field appearing in ForceSendFields will be sent to the
1443	// server regardless of whether the field is empty or not. This may be
1444	// used to include empty fields in Patch requests.
1445	ForceSendFields []string `json:"-"`
1446
1447	// NullFields is a list of field names (e.g. "DerivationMode") to
1448	// include in API requests with the JSON null value. By default, fields
1449	// with empty values are omitted from API requests. However, any field
1450	// with an empty value appearing in NullFields will be sent to the
1451	// server as null. It is an error if a field in this list has a
1452	// non-empty value. This may be used to include null fields in Patch
1453	// requests.
1454	NullFields []string `json:"-"`
1455}
1456
1457func (s *DerivedSource) MarshalJSON() ([]byte, error) {
1458	type NoMethod DerivedSource
1459	raw := NoMethod(*s)
1460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1461}
1462
1463// Disk: Describes the data disk used by a workflow job.
1464type Disk struct {
1465	// DiskType: Disk storage type, as defined by Google Compute Engine.
1466	// This must be a disk type appropriate to the project and zone in which
1467	// the workers will run. If unknown or unspecified, the service will
1468	// attempt to choose a reasonable default. For example, the standard
1469	// persistent disk type is a resource name typically ending in
1470	// "pd-standard". If SSD persistent disks are available, the resource
1471	// name typically ends with "pd-ssd". The actual valid values are
1472	// defined the Google Compute Engine API, not by the Cloud Dataflow API;
1473	// consult the Google Compute Engine documentation for more information
1474	// about determining the set of available disk types for a particular
1475	// project and zone. Google Compute Engine Disk types are local to a
1476	// particular project in a particular zone, and so the resource name
1477	// will typically look something like this:
1478	// compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-sta
1479	// ndard
1480	DiskType string `json:"diskType,omitempty"`
1481
1482	// MountPoint: Directory in a VM where disk is mounted.
1483	MountPoint string `json:"mountPoint,omitempty"`
1484
1485	// SizeGb: Size of disk in GB. If zero or unspecified, the service will
1486	// attempt to choose a reasonable default.
1487	SizeGb int64 `json:"sizeGb,omitempty"`
1488
1489	// ForceSendFields is a list of field names (e.g. "DiskType") to
1490	// unconditionally include in API requests. By default, fields with
1491	// empty values are omitted from API requests. However, any non-pointer,
1492	// non-interface field appearing in ForceSendFields will be sent to the
1493	// server regardless of whether the field is empty or not. This may be
1494	// used to include empty fields in Patch requests.
1495	ForceSendFields []string `json:"-"`
1496
1497	// NullFields is a list of field names (e.g. "DiskType") to include in
1498	// API requests with the JSON null value. By default, fields with empty
1499	// values are omitted from API requests. However, any field with an
1500	// empty value appearing in NullFields will be sent to the server as
1501	// null. It is an error if a field in this list has a non-empty value.
1502	// This may be used to include null fields in Patch requests.
1503	NullFields []string `json:"-"`
1504}
1505
1506func (s *Disk) MarshalJSON() ([]byte, error) {
1507	type NoMethod Disk
1508	raw := NoMethod(*s)
1509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1510}
1511
1512// DisplayData: Data provided with a pipeline or transform to provide
1513// descriptive info.
1514type DisplayData struct {
1515	// BoolValue: Contains value if the data is of a boolean type.
1516	BoolValue bool `json:"boolValue,omitempty"`
1517
1518	// DurationValue: Contains value if the data is of duration type.
1519	DurationValue string `json:"durationValue,omitempty"`
1520
1521	// FloatValue: Contains value if the data is of float type.
1522	FloatValue float64 `json:"floatValue,omitempty"`
1523
1524	// Int64Value: Contains value if the data is of int64 type.
1525	Int64Value int64 `json:"int64Value,omitempty,string"`
1526
1527	// JavaClassValue: Contains value if the data is of java class type.
1528	JavaClassValue string `json:"javaClassValue,omitempty"`
1529
1530	// Key: The key identifying the display data. This is intended to be
1531	// used as a label for the display data when viewed in a dax monitoring
1532	// system.
1533	Key string `json:"key,omitempty"`
1534
1535	// Label: An optional label to display in a dax UI for the element.
1536	Label string `json:"label,omitempty"`
1537
1538	// Namespace: The namespace for the key. This is usually a class name or
1539	// programming language namespace (i.e. python module) which defines the
1540	// display data. This allows a dax monitoring system to specially handle
1541	// the data and perform custom rendering.
1542	Namespace string `json:"namespace,omitempty"`
1543
1544	// ShortStrValue: A possible additional shorter value to display. For
1545	// example a java_class_name_value of com.mypackage.MyDoFn will be
1546	// stored with MyDoFn as the short_str_value and com.mypackage.MyDoFn as
1547	// the java_class_name value. short_str_value can be displayed and
1548	// java_class_name_value will be displayed as a tooltip.
1549	ShortStrValue string `json:"shortStrValue,omitempty"`
1550
1551	// StrValue: Contains value if the data is of string type.
1552	StrValue string `json:"strValue,omitempty"`
1553
1554	// TimestampValue: Contains value if the data is of timestamp type.
1555	TimestampValue string `json:"timestampValue,omitempty"`
1556
1557	// Url: An optional full URL.
1558	Url string `json:"url,omitempty"`
1559
1560	// ForceSendFields is a list of field names (e.g. "BoolValue") to
1561	// unconditionally include in API requests. By default, fields with
1562	// empty values are omitted from API requests. However, any non-pointer,
1563	// non-interface field appearing in ForceSendFields will be sent to the
1564	// server regardless of whether the field is empty or not. This may be
1565	// used to include empty fields in Patch requests.
1566	ForceSendFields []string `json:"-"`
1567
1568	// NullFields is a list of field names (e.g. "BoolValue") to include in
1569	// API requests with the JSON null value. By default, fields with empty
1570	// values are omitted from API requests. However, any field with an
1571	// empty value appearing in NullFields will be sent to the server as
1572	// null. It is an error if a field in this list has a non-empty value.
1573	// This may be used to include null fields in Patch requests.
1574	NullFields []string `json:"-"`
1575}
1576
1577func (s *DisplayData) MarshalJSON() ([]byte, error) {
1578	type NoMethod DisplayData
1579	raw := NoMethod(*s)
1580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1581}
1582
1583func (s *DisplayData) UnmarshalJSON(data []byte) error {
1584	type NoMethod DisplayData
1585	var s1 struct {
1586		FloatValue gensupport.JSONFloat64 `json:"floatValue"`
1587		*NoMethod
1588	}
1589	s1.NoMethod = (*NoMethod)(s)
1590	if err := json.Unmarshal(data, &s1); err != nil {
1591		return err
1592	}
1593	s.FloatValue = float64(s1.FloatValue)
1594	return nil
1595}
1596
1597// DistributionUpdate: A metric value representing a distribution.
1598type DistributionUpdate struct {
1599	// Count: The count of the number of elements present in the
1600	// distribution.
1601	Count *SplitInt64 `json:"count,omitempty"`
1602
1603	// Histogram: (Optional) Histogram of value counts for the distribution.
1604	Histogram *Histogram `json:"histogram,omitempty"`
1605
1606	// Max: The maximum value present in the distribution.
1607	Max *SplitInt64 `json:"max,omitempty"`
1608
1609	// Min: The minimum value present in the distribution.
1610	Min *SplitInt64 `json:"min,omitempty"`
1611
1612	// Sum: Use an int64 since we'd prefer the added precision. If overflow
1613	// is a common problem we can detect it and use an additional int64 or a
1614	// double.
1615	Sum *SplitInt64 `json:"sum,omitempty"`
1616
1617	// SumOfSquares: Use a double since the sum of squares is likely to
1618	// overflow int64.
1619	SumOfSquares float64 `json:"sumOfSquares,omitempty"`
1620
1621	// ForceSendFields is a list of field names (e.g. "Count") to
1622	// unconditionally include in API requests. By default, fields with
1623	// empty values are omitted from API requests. However, any non-pointer,
1624	// non-interface field appearing in ForceSendFields will be sent to the
1625	// server regardless of whether the field is empty or not. This may be
1626	// used to include empty fields in Patch requests.
1627	ForceSendFields []string `json:"-"`
1628
1629	// NullFields is a list of field names (e.g. "Count") to include in API
1630	// requests with the JSON null value. By default, fields with empty
1631	// values are omitted from API requests. However, any field with an
1632	// empty value appearing in NullFields will be sent to the server as
1633	// null. It is an error if a field in this list has a non-empty value.
1634	// This may be used to include null fields in Patch requests.
1635	NullFields []string `json:"-"`
1636}
1637
1638func (s *DistributionUpdate) MarshalJSON() ([]byte, error) {
1639	type NoMethod DistributionUpdate
1640	raw := NoMethod(*s)
1641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1642}
1643
1644func (s *DistributionUpdate) UnmarshalJSON(data []byte) error {
1645	type NoMethod DistributionUpdate
1646	var s1 struct {
1647		SumOfSquares gensupport.JSONFloat64 `json:"sumOfSquares"`
1648		*NoMethod
1649	}
1650	s1.NoMethod = (*NoMethod)(s)
1651	if err := json.Unmarshal(data, &s1); err != nil {
1652		return err
1653	}
1654	s.SumOfSquares = float64(s1.SumOfSquares)
1655	return nil
1656}
1657
1658// DynamicSourceSplit: When a task splits using
1659// WorkItemStatus.dynamic_source_split, this message describes the two
1660// parts of the split relative to the description of the current task's
1661// input.
1662type DynamicSourceSplit struct {
1663	// Primary: Primary part (continued to be processed by worker).
1664	// Specified relative to the previously-current source. Becomes current.
1665	Primary *DerivedSource `json:"primary,omitempty"`
1666
1667	// Residual: Residual part (returned to the pool of work). Specified
1668	// relative to the previously-current source.
1669	Residual *DerivedSource `json:"residual,omitempty"`
1670
1671	// ForceSendFields is a list of field names (e.g. "Primary") to
1672	// unconditionally include in API requests. By default, fields with
1673	// empty values are omitted from API requests. However, any non-pointer,
1674	// non-interface field appearing in ForceSendFields will be sent to the
1675	// server regardless of whether the field is empty or not. This may be
1676	// used to include empty fields in Patch requests.
1677	ForceSendFields []string `json:"-"`
1678
1679	// NullFields is a list of field names (e.g. "Primary") to include in
1680	// API requests with the JSON null value. By default, fields with empty
1681	// values are omitted from API requests. However, any field with an
1682	// empty value appearing in NullFields will be sent to the server as
1683	// null. It is an error if a field in this list has a non-empty value.
1684	// This may be used to include null fields in Patch requests.
1685	NullFields []string `json:"-"`
1686}
1687
1688func (s *DynamicSourceSplit) MarshalJSON() ([]byte, error) {
1689	type NoMethod DynamicSourceSplit
1690	raw := NoMethod(*s)
1691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1692}
1693
1694// Environment: Describes the environment in which a Dataflow Job runs.
1695type Environment struct {
1696	// ClusterManagerApiService: The type of cluster manager API to use. If
1697	// unknown or unspecified, the service will attempt to choose a
1698	// reasonable default. This should be in the form of the API service
1699	// name, e.g. "compute.googleapis.com".
1700	ClusterManagerApiService string `json:"clusterManagerApiService,omitempty"`
1701
1702	// Dataset: The dataset for the current project where various workflow
1703	// related tables are stored. The supported resource type is: Google
1704	// BigQuery: bigquery.googleapis.com/{dataset}
1705	Dataset string `json:"dataset,omitempty"`
1706
1707	// DebugOptions: Any debugging options to be supplied to the job.
1708	DebugOptions *DebugOptions `json:"debugOptions,omitempty"`
1709
1710	// Experiments: The list of experiments to enable. This field should be
1711	// used for SDK related experiments and not for service related
1712	// experiments. The proper field for service related experiments is
1713	// service_options. For more details see the rationale at
1714	// go/user-specified-service-options.
1715	Experiments []string `json:"experiments,omitempty"`
1716
1717	// FlexResourceSchedulingGoal: Which Flexible Resource Scheduling mode
1718	// to run in.
1719	//
1720	// Possible values:
1721	//   "FLEXRS_UNSPECIFIED" - Run in the default mode.
1722	//   "FLEXRS_SPEED_OPTIMIZED" - Optimize for lower execution time.
1723	//   "FLEXRS_COST_OPTIMIZED" - Optimize for lower cost.
1724	FlexResourceSchedulingGoal string `json:"flexResourceSchedulingGoal,omitempty"`
1725
1726	// InternalExperiments: Experimental settings.
1727	InternalExperiments googleapi.RawMessage `json:"internalExperiments,omitempty"`
1728
1729	// SdkPipelineOptions: The Cloud Dataflow SDK pipeline options specified
1730	// by the user. These options are passed through the service and are
1731	// used to recreate the SDK pipeline options on the worker in a language
1732	// agnostic and platform independent way.
1733	SdkPipelineOptions googleapi.RawMessage `json:"sdkPipelineOptions,omitempty"`
1734
1735	// ServiceAccountEmail: Identity to run virtual machines as. Defaults to
1736	// the default account.
1737	ServiceAccountEmail string `json:"serviceAccountEmail,omitempty"`
1738
1739	// ServiceKmsKeyName: If set, contains the Cloud KMS key identifier used
1740	// to encrypt data at rest, AKA a Customer Managed Encryption Key
1741	// (CMEK). Format:
1742	// projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KE
1743	// Y
1744	ServiceKmsKeyName string `json:"serviceKmsKeyName,omitempty"`
1745
1746	// ServiceOptions: The list of service options to enable. This field
1747	// should be used for service related experiments only. These
1748	// experiments, when graduating to GA, should be replaced by dedicated
1749	// fields or become default (i.e. always on). For more details see the
1750	// rationale at go/user-specified-service-options.
1751	ServiceOptions []string `json:"serviceOptions,omitempty"`
1752
1753	// ShuffleMode: Output only. The shuffle mode used for the job.
1754	//
1755	// Possible values:
1756	//   "SHUFFLE_MODE_UNSPECIFIED" - Shuffle mode information is not
1757	// available.
1758	//   "VM_BASED" - Shuffle is done on the worker VMs.
1759	//   "SERVICE_BASED" - Shuffle is done on the service side.
1760	ShuffleMode string `json:"shuffleMode,omitempty"`
1761
1762	// TempStoragePrefix: The prefix of the resources the system should use
1763	// for temporary storage. The system will append the suffix
1764	// "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the
1765	// value of the job_name field. The resulting bucket and object prefix
1766	// is used as the prefix of the resources used to store temporary data
1767	// needed during the job execution. NOTE: This will override the value
1768	// in taskrunner_settings. The supported resource type is: Google Cloud
1769	// Storage: storage.googleapis.com/{bucket}/{object}
1770	// bucket.storage.googleapis.com/{object}
1771	TempStoragePrefix string `json:"tempStoragePrefix,omitempty"`
1772
1773	// UserAgent: A description of the process that generated the request.
1774	UserAgent googleapi.RawMessage `json:"userAgent,omitempty"`
1775
1776	// Version: A structure describing which components and their versions
1777	// of the service are required in order to run the job.
1778	Version googleapi.RawMessage `json:"version,omitempty"`
1779
1780	// WorkerPools: The worker pools. At least one "harness" worker pool
1781	// must be specified in order for the job to have workers.
1782	WorkerPools []*WorkerPool `json:"workerPools,omitempty"`
1783
1784	// WorkerRegion: The Compute Engine region
1785	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
1786	// in which worker processing should occur, e.g. "us-west1". Mutually
1787	// exclusive with worker_zone. If neither worker_region nor worker_zone
1788	// is specified, default to the control plane's region.
1789	WorkerRegion string `json:"workerRegion,omitempty"`
1790
1791	// WorkerZone: The Compute Engine zone
1792	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
1793	// in which worker processing should occur, e.g. "us-west1-a". Mutually
1794	// exclusive with worker_region. If neither worker_region nor
1795	// worker_zone is specified, a zone in the control plane's region is
1796	// chosen based on available capacity.
1797	WorkerZone string `json:"workerZone,omitempty"`
1798
1799	// ForceSendFields is a list of field names (e.g.
1800	// "ClusterManagerApiService") to unconditionally include in API
1801	// requests. By default, fields with empty values are omitted from API
1802	// requests. However, any non-pointer, non-interface field appearing in
1803	// ForceSendFields will be sent to the server regardless of whether the
1804	// field is empty or not. This may be used to include empty fields in
1805	// Patch requests.
1806	ForceSendFields []string `json:"-"`
1807
1808	// NullFields is a list of field names (e.g. "ClusterManagerApiService")
1809	// to include in API requests with the JSON null value. By default,
1810	// fields with empty values are omitted from API requests. However, any
1811	// field with an empty value appearing in NullFields will be sent to the
1812	// server as null. It is an error if a field in this list has a
1813	// non-empty value. This may be used to include null fields in Patch
1814	// requests.
1815	NullFields []string `json:"-"`
1816}
1817
1818func (s *Environment) MarshalJSON() ([]byte, error) {
1819	type NoMethod Environment
1820	raw := NoMethod(*s)
1821	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1822}
1823
1824// ExecutionStageState: A message describing the state of a particular
1825// execution stage.
1826type ExecutionStageState struct {
1827	// CurrentStateTime: The time at which the stage transitioned to this
1828	// state.
1829	CurrentStateTime string `json:"currentStateTime,omitempty"`
1830
1831	// ExecutionStageName: The name of the execution stage.
1832	ExecutionStageName string `json:"executionStageName,omitempty"`
1833
1834	// ExecutionStageState: Executions stage states allow the same set of
1835	// values as JobState.
1836	//
1837	// Possible values:
1838	//   "JOB_STATE_UNKNOWN" - The job's run state isn't specified.
1839	//   "JOB_STATE_STOPPED" - `JOB_STATE_STOPPED` indicates that the job
1840	// has not yet started to run.
1841	//   "JOB_STATE_RUNNING" - `JOB_STATE_RUNNING` indicates that the job is
1842	// currently running.
1843	//   "JOB_STATE_DONE" - `JOB_STATE_DONE` indicates that the job has
1844	// successfully completed. This is a terminal job state. This state may
1845	// be set by the Cloud Dataflow service, as a transition from
1846	// `JOB_STATE_RUNNING`. It may also be set via a Cloud Dataflow
1847	// `UpdateJob` call, if the job has not yet reached a terminal state.
1848	//   "JOB_STATE_FAILED" - `JOB_STATE_FAILED` indicates that the job has
1849	// failed. This is a terminal job state. This state may only be set by
1850	// the Cloud Dataflow service, and only as a transition from
1851	// `JOB_STATE_RUNNING`.
1852	//   "JOB_STATE_CANCELLED" - `JOB_STATE_CANCELLED` indicates that the
1853	// job has been explicitly cancelled. This is a terminal job state. This
1854	// state may only be set via a Cloud Dataflow `UpdateJob` call, and only
1855	// if the job has not yet reached another terminal state.
1856	//   "JOB_STATE_UPDATED" - `JOB_STATE_UPDATED` indicates that the job
1857	// was successfully updated, meaning that this job was stopped and
1858	// another job was started, inheriting state from this one. This is a
1859	// terminal job state. This state may only be set by the Cloud Dataflow
1860	// service, and only as a transition from `JOB_STATE_RUNNING`.
1861	//   "JOB_STATE_DRAINING" - `JOB_STATE_DRAINING` indicates that the job
1862	// is in the process of draining. A draining job has stopped pulling
1863	// from its input sources and is processing any data that remains
1864	// in-flight. This state may be set via a Cloud Dataflow `UpdateJob`
1865	// call, but only as a transition from `JOB_STATE_RUNNING`. Jobs that
1866	// are draining may only transition to `JOB_STATE_DRAINED`,
1867	// `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.
1868	//   "JOB_STATE_DRAINED" - `JOB_STATE_DRAINED` indicates that the job
1869	// has been drained. A drained job terminated by stopping pulling from
1870	// its input sources and processing any data that remained in-flight
1871	// when draining was requested. This state is a terminal state, may only
1872	// be set by the Cloud Dataflow service, and only as a transition from
1873	// `JOB_STATE_DRAINING`.
1874	//   "JOB_STATE_PENDING" - `JOB_STATE_PENDING` indicates that the job
1875	// has been created but is not yet running. Jobs that are pending may
1876	// only transition to `JOB_STATE_RUNNING`, or `JOB_STATE_FAILED`.
1877	//   "JOB_STATE_CANCELLING" - `JOB_STATE_CANCELLING` indicates that the
1878	// job has been explicitly cancelled and is in the process of stopping.
1879	// Jobs that are cancelling may only transition to `JOB_STATE_CANCELLED`
1880	// or `JOB_STATE_FAILED`.
1881	//   "JOB_STATE_QUEUED" - `JOB_STATE_QUEUED` indicates that the job has
1882	// been created but is being delayed until launch. Jobs that are queued
1883	// may only transition to `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.
1884	//   "JOB_STATE_RESOURCE_CLEANING_UP" - `JOB_STATE_RESOURCE_CLEANING_UP`
1885	// indicates that the batch job's associated resources are currently
1886	// being cleaned up after a successful run. Currently, this is an opt-in
1887	// feature, please reach out to Cloud support team if you are intersted.
1888	ExecutionStageState string `json:"executionStageState,omitempty"`
1889
1890	// ForceSendFields is a list of field names (e.g. "CurrentStateTime") to
1891	// unconditionally include in API requests. By default, fields with
1892	// empty values are omitted from API requests. However, any non-pointer,
1893	// non-interface field appearing in ForceSendFields will be sent to the
1894	// server regardless of whether the field is empty or not. This may be
1895	// used to include empty fields in Patch requests.
1896	ForceSendFields []string `json:"-"`
1897
1898	// NullFields is a list of field names (e.g. "CurrentStateTime") to
1899	// include in API requests with the JSON null value. By default, fields
1900	// with empty values are omitted from API requests. However, any field
1901	// with an empty value appearing in NullFields will be sent to the
1902	// server as null. It is an error if a field in this list has a
1903	// non-empty value. This may be used to include null fields in Patch
1904	// requests.
1905	NullFields []string `json:"-"`
1906}
1907
1908func (s *ExecutionStageState) MarshalJSON() ([]byte, error) {
1909	type NoMethod ExecutionStageState
1910	raw := NoMethod(*s)
1911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1912}
1913
1914// ExecutionStageSummary: Description of the composing transforms,
1915// names/ids, and input/outputs of a stage of execution. Some composing
1916// transforms and sources may have been generated by the Dataflow
1917// service during execution planning.
1918type ExecutionStageSummary struct {
1919	// ComponentSource: Collections produced and consumed by component
1920	// transforms of this stage.
1921	ComponentSource []*ComponentSource `json:"componentSource,omitempty"`
1922
1923	// ComponentTransform: Transforms that comprise this execution stage.
1924	ComponentTransform []*ComponentTransform `json:"componentTransform,omitempty"`
1925
1926	// Id: Dataflow service generated id for this stage.
1927	Id string `json:"id,omitempty"`
1928
1929	// InputSource: Input sources for this stage.
1930	InputSource []*StageSource `json:"inputSource,omitempty"`
1931
1932	// Kind: Type of tranform this stage is executing.
1933	//
1934	// Possible values:
1935	//   "UNKNOWN_KIND" - Unrecognized transform type.
1936	//   "PAR_DO_KIND" - ParDo transform.
1937	//   "GROUP_BY_KEY_KIND" - Group By Key transform.
1938	//   "FLATTEN_KIND" - Flatten transform.
1939	//   "READ_KIND" - Read transform.
1940	//   "WRITE_KIND" - Write transform.
1941	//   "CONSTANT_KIND" - Constructs from a constant value, such as with
1942	// Create.of.
1943	//   "SINGLETON_KIND" - Creates a Singleton view of a collection.
1944	//   "SHUFFLE_KIND" - Opening or closing a shuffle session, often as
1945	// part of a GroupByKey.
1946	Kind string `json:"kind,omitempty"`
1947
1948	// Name: Dataflow service generated name for this stage.
1949	Name string `json:"name,omitempty"`
1950
1951	// OutputSource: Output sources for this stage.
1952	OutputSource []*StageSource `json:"outputSource,omitempty"`
1953
1954	// PrerequisiteStage: Other stages that must complete before this stage
1955	// can run.
1956	PrerequisiteStage []string `json:"prerequisiteStage,omitempty"`
1957
1958	// ForceSendFields is a list of field names (e.g. "ComponentSource") to
1959	// unconditionally include in API requests. By default, fields with
1960	// empty values are omitted from API requests. However, any non-pointer,
1961	// non-interface field appearing in ForceSendFields will be sent to the
1962	// server regardless of whether the field is empty or not. This may be
1963	// used to include empty fields in Patch requests.
1964	ForceSendFields []string `json:"-"`
1965
1966	// NullFields is a list of field names (e.g. "ComponentSource") to
1967	// include in API requests with the JSON null value. By default, fields
1968	// with empty values are omitted from API requests. However, any field
1969	// with an empty value appearing in NullFields will be sent to the
1970	// server as null. It is an error if a field in this list has a
1971	// non-empty value. This may be used to include null fields in Patch
1972	// requests.
1973	NullFields []string `json:"-"`
1974}
1975
1976func (s *ExecutionStageSummary) MarshalJSON() ([]byte, error) {
1977	type NoMethod ExecutionStageSummary
1978	raw := NoMethod(*s)
1979	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1980}
1981
1982// FailedLocation: Indicates which [regional endpoint]
1983// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
1984// failed to respond to a request for data.
1985type FailedLocation struct {
1986	// Name: The name of the [regional endpoint]
1987	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
1988	// that failed to respond.
1989	Name string `json:"name,omitempty"`
1990
1991	// ForceSendFields is a list of field names (e.g. "Name") to
1992	// unconditionally include in API requests. By default, fields with
1993	// empty values are omitted from API requests. However, any non-pointer,
1994	// non-interface field appearing in ForceSendFields will be sent to the
1995	// server regardless of whether the field is empty or not. This may be
1996	// used to include empty fields in Patch requests.
1997	ForceSendFields []string `json:"-"`
1998
1999	// NullFields is a list of field names (e.g. "Name") to include in API
2000	// requests with the JSON null value. By default, fields with empty
2001	// values are omitted from API requests. However, any field with an
2002	// empty value appearing in NullFields will be sent to the server as
2003	// null. It is an error if a field in this list has a non-empty value.
2004	// This may be used to include null fields in Patch requests.
2005	NullFields []string `json:"-"`
2006}
2007
2008func (s *FailedLocation) MarshalJSON() ([]byte, error) {
2009	type NoMethod FailedLocation
2010	raw := NoMethod(*s)
2011	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2012}
2013
2014// FileIODetails: Metadata for a File connector used by the job.
2015type FileIODetails struct {
2016	// FilePattern: File Pattern used to access files by the connector.
2017	FilePattern string `json:"filePattern,omitempty"`
2018
2019	// ForceSendFields is a list of field names (e.g. "FilePattern") to
2020	// unconditionally include in API requests. By default, fields with
2021	// empty values are omitted from API requests. However, any non-pointer,
2022	// non-interface field appearing in ForceSendFields will be sent to the
2023	// server regardless of whether the field is empty or not. This may be
2024	// used to include empty fields in Patch requests.
2025	ForceSendFields []string `json:"-"`
2026
2027	// NullFields is a list of field names (e.g. "FilePattern") to include
2028	// in API requests with the JSON null value. By default, fields with
2029	// empty values are omitted from API requests. However, any field with
2030	// an empty value appearing in NullFields will be sent to the server as
2031	// null. It is an error if a field in this list has a non-empty value.
2032	// This may be used to include null fields in Patch requests.
2033	NullFields []string `json:"-"`
2034}
2035
2036func (s *FileIODetails) MarshalJSON() ([]byte, error) {
2037	type NoMethod FileIODetails
2038	raw := NoMethod(*s)
2039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2040}
2041
2042// FlattenInstruction: An instruction that copies its inputs (zero or
2043// more) to its (single) output.
2044type FlattenInstruction struct {
2045	// Inputs: Describes the inputs to the flatten instruction.
2046	Inputs []*InstructionInput `json:"inputs,omitempty"`
2047
2048	// ForceSendFields is a list of field names (e.g. "Inputs") to
2049	// unconditionally include in API requests. By default, fields with
2050	// empty values are omitted from API requests. However, any non-pointer,
2051	// non-interface field appearing in ForceSendFields will be sent to the
2052	// server regardless of whether the field is empty or not. This may be
2053	// used to include empty fields in Patch requests.
2054	ForceSendFields []string `json:"-"`
2055
2056	// NullFields is a list of field names (e.g. "Inputs") to include in API
2057	// requests with the JSON null value. By default, fields with empty
2058	// values are omitted from API requests. However, any field with an
2059	// empty value appearing in NullFields will be sent to the server as
2060	// null. It is an error if a field in this list has a non-empty value.
2061	// This may be used to include null fields in Patch requests.
2062	NullFields []string `json:"-"`
2063}
2064
2065func (s *FlattenInstruction) MarshalJSON() ([]byte, error) {
2066	type NoMethod FlattenInstruction
2067	raw := NoMethod(*s)
2068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2069}
2070
2071// FlexTemplateRuntimeEnvironment: The environment values to be set at
2072// runtime for flex template.
2073type FlexTemplateRuntimeEnvironment struct {
2074	// AdditionalExperiments: Additional experiment flags for the job.
2075	AdditionalExperiments []string `json:"additionalExperiments,omitempty"`
2076
2077	// AdditionalUserLabels: Additional user labels to be specified for the
2078	// job. Keys and values must follow the restrictions specified in the
2079	// labeling restrictions
2080	// (https://cloud.google.com/compute/docs/labeling-resources#restrictions)
2081	// page. An object containing a list of "key": value pairs. Example: {
2082	// "name": "wrench", "mass": "1kg", "count": "3" }.
2083	AdditionalUserLabels map[string]string `json:"additionalUserLabels,omitempty"`
2084
2085	// EnableStreamingEngine: Whether to enable Streaming Engine for the
2086	// job.
2087	EnableStreamingEngine bool `json:"enableStreamingEngine,omitempty"`
2088
2089	// FlexrsGoal: Set FlexRS goal for the job.
2090	// https://cloud.google.com/dataflow/docs/guides/flexrs
2091	//
2092	// Possible values:
2093	//   "FLEXRS_UNSPECIFIED" - Run in the default mode.
2094	//   "FLEXRS_SPEED_OPTIMIZED" - Optimize for lower execution time.
2095	//   "FLEXRS_COST_OPTIMIZED" - Optimize for lower cost.
2096	FlexrsGoal string `json:"flexrsGoal,omitempty"`
2097
2098	// IpConfiguration: Configuration for VM IPs.
2099	//
2100	// Possible values:
2101	//   "WORKER_IP_UNSPECIFIED" - The configuration is unknown, or
2102	// unspecified.
2103	//   "WORKER_IP_PUBLIC" - Workers should have public IP addresses.
2104	//   "WORKER_IP_PRIVATE" - Workers should have private IP addresses.
2105	IpConfiguration string `json:"ipConfiguration,omitempty"`
2106
2107	// KmsKeyName: Name for the Cloud KMS key for the job. Key format is:
2108	// projects//locations//keyRings//cryptoKeys/
2109	KmsKeyName string `json:"kmsKeyName,omitempty"`
2110
2111	// MachineType: The machine type to use for the job. Defaults to the
2112	// value from the template if not specified.
2113	MachineType string `json:"machineType,omitempty"`
2114
2115	// MaxWorkers: The maximum number of Google Compute Engine instances to
2116	// be made available to your pipeline during execution, from 1 to 1000.
2117	MaxWorkers int64 `json:"maxWorkers,omitempty"`
2118
2119	// Network: Network to which VMs will be assigned. If empty or
2120	// unspecified, the service will use the network "default".
2121	Network string `json:"network,omitempty"`
2122
2123	// NumWorkers: The initial number of Google Compute Engine instances for
2124	// the job.
2125	NumWorkers int64 `json:"numWorkers,omitempty"`
2126
2127	// ServiceAccountEmail: The email address of the service account to run
2128	// the job as.
2129	ServiceAccountEmail string `json:"serviceAccountEmail,omitempty"`
2130
2131	// Subnetwork: Subnetwork to which VMs will be assigned, if desired. You
2132	// can specify a subnetwork using either a complete URL or an
2133	// abbreviated path. Expected to be of the form
2134	// "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/region
2135	// s/REGION/subnetworks/SUBNETWORK" or
2136	// "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located
2137	// in a Shared VPC network, you must use the complete URL.
2138	Subnetwork string `json:"subnetwork,omitempty"`
2139
2140	// TempLocation: The Cloud Storage path to use for temporary files. Must
2141	// be a valid Cloud Storage URL, beginning with `gs://`.
2142	TempLocation string `json:"tempLocation,omitempty"`
2143
2144	// WorkerRegion: The Compute Engine region
2145	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
2146	// in which worker processing should occur, e.g. "us-west1". Mutually
2147	// exclusive with worker_zone. If neither worker_region nor worker_zone
2148	// is specified, default to the control plane's region.
2149	WorkerRegion string `json:"workerRegion,omitempty"`
2150
2151	// WorkerZone: The Compute Engine zone
2152	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
2153	// in which worker processing should occur, e.g. "us-west1-a". Mutually
2154	// exclusive with worker_region. If neither worker_region nor
2155	// worker_zone is specified, a zone in the control plane's region is
2156	// chosen based on available capacity. If both `worker_zone` and `zone`
2157	// are set, `worker_zone` takes precedence.
2158	WorkerZone string `json:"workerZone,omitempty"`
2159
2160	// Zone: The Compute Engine availability zone
2161	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
2162	// for launching worker instances to run your pipeline. In the future,
2163	// worker_zone will take precedence.
2164	Zone string `json:"zone,omitempty"`
2165
2166	// ForceSendFields is a list of field names (e.g.
2167	// "AdditionalExperiments") to unconditionally include in API requests.
2168	// By default, fields with empty values are omitted from API requests.
2169	// However, any non-pointer, non-interface field appearing in
2170	// ForceSendFields will be sent to the server regardless of whether the
2171	// field is empty or not. This may be used to include empty fields in
2172	// Patch requests.
2173	ForceSendFields []string `json:"-"`
2174
2175	// NullFields is a list of field names (e.g. "AdditionalExperiments") to
2176	// include in API requests with the JSON null value. By default, fields
2177	// with empty values are omitted from API requests. However, any field
2178	// with an empty value appearing in NullFields will be sent to the
2179	// server as null. It is an error if a field in this list has a
2180	// non-empty value. This may be used to include null fields in Patch
2181	// requests.
2182	NullFields []string `json:"-"`
2183}
2184
2185func (s *FlexTemplateRuntimeEnvironment) MarshalJSON() ([]byte, error) {
2186	type NoMethod FlexTemplateRuntimeEnvironment
2187	raw := NoMethod(*s)
2188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2189}
2190
2191// FloatingPointList: A metric value representing a list of floating
2192// point numbers.
2193type FloatingPointList struct {
2194	// Elements: Elements of the list.
2195	Elements []float64 `json:"elements,omitempty"`
2196
2197	// ForceSendFields is a list of field names (e.g. "Elements") to
2198	// unconditionally include in API requests. By default, fields with
2199	// empty values are omitted from API requests. However, any non-pointer,
2200	// non-interface field appearing in ForceSendFields will be sent to the
2201	// server regardless of whether the field is empty or not. This may be
2202	// used to include empty fields in Patch requests.
2203	ForceSendFields []string `json:"-"`
2204
2205	// NullFields is a list of field names (e.g. "Elements") to include in
2206	// API requests with the JSON null value. By default, fields with empty
2207	// values are omitted from API requests. However, any field with an
2208	// empty value appearing in NullFields will be sent to the server as
2209	// null. It is an error if a field in this list has a non-empty value.
2210	// This may be used to include null fields in Patch requests.
2211	NullFields []string `json:"-"`
2212}
2213
2214func (s *FloatingPointList) MarshalJSON() ([]byte, error) {
2215	type NoMethod FloatingPointList
2216	raw := NoMethod(*s)
2217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2218}
2219
2220// FloatingPointMean: A representation of a floating point mean metric
2221// contribution.
2222type FloatingPointMean struct {
2223	// Count: The number of values being aggregated.
2224	Count *SplitInt64 `json:"count,omitempty"`
2225
2226	// Sum: The sum of all values being aggregated.
2227	Sum float64 `json:"sum,omitempty"`
2228
2229	// ForceSendFields is a list of field names (e.g. "Count") to
2230	// unconditionally include in API requests. By default, fields with
2231	// empty values are omitted from API requests. However, any non-pointer,
2232	// non-interface field appearing in ForceSendFields will be sent to the
2233	// server regardless of whether the field is empty or not. This may be
2234	// used to include empty fields in Patch requests.
2235	ForceSendFields []string `json:"-"`
2236
2237	// NullFields is a list of field names (e.g. "Count") to include in API
2238	// requests with the JSON null value. By default, fields with empty
2239	// values are omitted from API requests. However, any field with an
2240	// empty value appearing in NullFields will be sent to the server as
2241	// null. It is an error if a field in this list has a non-empty value.
2242	// This may be used to include null fields in Patch requests.
2243	NullFields []string `json:"-"`
2244}
2245
2246func (s *FloatingPointMean) MarshalJSON() ([]byte, error) {
2247	type NoMethod FloatingPointMean
2248	raw := NoMethod(*s)
2249	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2250}
2251
2252func (s *FloatingPointMean) UnmarshalJSON(data []byte) error {
2253	type NoMethod FloatingPointMean
2254	var s1 struct {
2255		Sum gensupport.JSONFloat64 `json:"sum"`
2256		*NoMethod
2257	}
2258	s1.NoMethod = (*NoMethod)(s)
2259	if err := json.Unmarshal(data, &s1); err != nil {
2260		return err
2261	}
2262	s.Sum = float64(s1.Sum)
2263	return nil
2264}
2265
2266// GetDebugConfigRequest: Request to get updated debug configuration for
2267// component.
2268type GetDebugConfigRequest struct {
2269	// ComponentId: The internal component id for which debug configuration
2270	// is requested.
2271	ComponentId string `json:"componentId,omitempty"`
2272
2273	// Location: The [regional endpoint]
2274	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
2275	// that contains the job specified by job_id.
2276	Location string `json:"location,omitempty"`
2277
2278	// WorkerId: The worker id, i.e., VM hostname.
2279	WorkerId string `json:"workerId,omitempty"`
2280
2281	// ForceSendFields is a list of field names (e.g. "ComponentId") to
2282	// unconditionally include in API requests. By default, fields with
2283	// empty values are omitted from API requests. However, any non-pointer,
2284	// non-interface field appearing in ForceSendFields will be sent to the
2285	// server regardless of whether the field is empty or not. This may be
2286	// used to include empty fields in Patch requests.
2287	ForceSendFields []string `json:"-"`
2288
2289	// NullFields is a list of field names (e.g. "ComponentId") to include
2290	// in API requests with the JSON null value. By default, fields with
2291	// empty values are omitted from API requests. However, any field with
2292	// an empty value appearing in NullFields will be sent to the server as
2293	// null. It is an error if a field in this list has a non-empty value.
2294	// This may be used to include null fields in Patch requests.
2295	NullFields []string `json:"-"`
2296}
2297
2298func (s *GetDebugConfigRequest) MarshalJSON() ([]byte, error) {
2299	type NoMethod GetDebugConfigRequest
2300	raw := NoMethod(*s)
2301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2302}
2303
2304// GetDebugConfigResponse: Response to a get debug configuration
2305// request.
2306type GetDebugConfigResponse struct {
2307	// Config: The encoded debug configuration for the requested component.
2308	Config string `json:"config,omitempty"`
2309
2310	// ServerResponse contains the HTTP response code and headers from the
2311	// server.
2312	googleapi.ServerResponse `json:"-"`
2313
2314	// ForceSendFields is a list of field names (e.g. "Config") to
2315	// unconditionally include in API requests. By default, fields with
2316	// empty values are omitted from API requests. However, any non-pointer,
2317	// non-interface field appearing in ForceSendFields will be sent to the
2318	// server regardless of whether the field is empty or not. This may be
2319	// used to include empty fields in Patch requests.
2320	ForceSendFields []string `json:"-"`
2321
2322	// NullFields is a list of field names (e.g. "Config") to include in API
2323	// requests with the JSON null value. By default, fields with empty
2324	// values are omitted from API requests. However, any field with an
2325	// empty value appearing in NullFields will be sent to the server as
2326	// null. It is an error if a field in this list has a non-empty value.
2327	// This may be used to include null fields in Patch requests.
2328	NullFields []string `json:"-"`
2329}
2330
2331func (s *GetDebugConfigResponse) MarshalJSON() ([]byte, error) {
2332	type NoMethod GetDebugConfigResponse
2333	raw := NoMethod(*s)
2334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2335}
2336
2337// GetTemplateResponse: The response to a GetTemplate request.
2338type GetTemplateResponse struct {
2339	// Metadata: The template metadata describing the template name,
2340	// available parameters, etc.
2341	Metadata *TemplateMetadata `json:"metadata,omitempty"`
2342
2343	// RuntimeMetadata: Describes the runtime metadata with SDKInfo and
2344	// available parameters.
2345	RuntimeMetadata *RuntimeMetadata `json:"runtimeMetadata,omitempty"`
2346
2347	// Status: The status of the get template request. Any problems with the
2348	// request will be indicated in the error_details.
2349	Status *Status `json:"status,omitempty"`
2350
2351	// TemplateType: Template Type.
2352	//
2353	// Possible values:
2354	//   "UNKNOWN" - Unknown Template Type.
2355	//   "LEGACY" - Legacy Template.
2356	//   "FLEX" - Flex Template.
2357	TemplateType string `json:"templateType,omitempty"`
2358
2359	// ServerResponse contains the HTTP response code and headers from the
2360	// server.
2361	googleapi.ServerResponse `json:"-"`
2362
2363	// ForceSendFields is a list of field names (e.g. "Metadata") to
2364	// unconditionally include in API requests. By default, fields with
2365	// empty values are omitted from API requests. However, any non-pointer,
2366	// non-interface field appearing in ForceSendFields will be sent to the
2367	// server regardless of whether the field is empty or not. This may be
2368	// used to include empty fields in Patch requests.
2369	ForceSendFields []string `json:"-"`
2370
2371	// NullFields is a list of field names (e.g. "Metadata") to include in
2372	// API requests with the JSON null value. By default, fields with empty
2373	// values are omitted from API requests. However, any field with an
2374	// empty value appearing in NullFields will be sent to the server as
2375	// null. It is an error if a field in this list has a non-empty value.
2376	// This may be used to include null fields in Patch requests.
2377	NullFields []string `json:"-"`
2378}
2379
2380func (s *GetTemplateResponse) MarshalJSON() ([]byte, error) {
2381	type NoMethod GetTemplateResponse
2382	raw := NoMethod(*s)
2383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2384}
2385
2386// Histogram: Histogram of value counts for a distribution. Buckets have
2387// an inclusive lower bound and exclusive upper bound and use "1,2,5
2388// bucketing": The first bucket range is from [0,1) and all subsequent
2389// bucket boundaries are powers of ten multiplied by 1, 2, or 5. Thus,
2390// bucket boundaries are 0, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000,
2391// ... Negative values are not supported.
2392type Histogram struct {
2393	// BucketCounts: Counts of values in each bucket. For efficiency, prefix
2394	// and trailing buckets with count = 0 are elided. Buckets can store the
2395	// full range of values of an unsigned long, with ULLONG_MAX falling
2396	// into the 59th bucket with range [1e19, 2e19).
2397	BucketCounts googleapi.Int64s `json:"bucketCounts,omitempty"`
2398
2399	// FirstBucketOffset: Starting index of first stored bucket. The
2400	// non-inclusive upper-bound of the ith bucket is given by:
2401	// pow(10,(i-first_bucket_offset)/3) *
2402	// (1,2,5)[(i-first_bucket_offset)%3]
2403	FirstBucketOffset int64 `json:"firstBucketOffset,omitempty"`
2404
2405	// ForceSendFields is a list of field names (e.g. "BucketCounts") to
2406	// unconditionally include in API requests. By default, fields with
2407	// empty values are omitted from API requests. However, any non-pointer,
2408	// non-interface field appearing in ForceSendFields will be sent to the
2409	// server regardless of whether the field is empty or not. This may be
2410	// used to include empty fields in Patch requests.
2411	ForceSendFields []string `json:"-"`
2412
2413	// NullFields is a list of field names (e.g. "BucketCounts") to include
2414	// in API requests with the JSON null value. By default, fields with
2415	// empty values are omitted from API requests. However, any field with
2416	// an empty value appearing in NullFields will be sent to the server as
2417	// null. It is an error if a field in this list has a non-empty value.
2418	// This may be used to include null fields in Patch requests.
2419	NullFields []string `json:"-"`
2420}
2421
2422func (s *Histogram) MarshalJSON() ([]byte, error) {
2423	type NoMethod Histogram
2424	raw := NoMethod(*s)
2425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2426}
2427
2428// HotKeyDetection: Proto describing a hot key detected on a given
2429// WorkItem.
2430type HotKeyDetection struct {
2431	// HotKeyAge: The age of the hot key measured from when it was first
2432	// detected.
2433	HotKeyAge string `json:"hotKeyAge,omitempty"`
2434
2435	// SystemName: System-defined name of the step containing this hot key.
2436	// Unique across the workflow.
2437	SystemName string `json:"systemName,omitempty"`
2438
2439	// UserStepName: User-provided name of the step that contains this hot
2440	// key.
2441	UserStepName string `json:"userStepName,omitempty"`
2442
2443	// ForceSendFields is a list of field names (e.g. "HotKeyAge") to
2444	// unconditionally include in API requests. By default, fields with
2445	// empty values are omitted from API requests. However, any non-pointer,
2446	// non-interface field appearing in ForceSendFields will be sent to the
2447	// server regardless of whether the field is empty or not. This may be
2448	// used to include empty fields in Patch requests.
2449	ForceSendFields []string `json:"-"`
2450
2451	// NullFields is a list of field names (e.g. "HotKeyAge") to include in
2452	// API requests with the JSON null value. By default, fields with empty
2453	// values are omitted from API requests. However, any field with an
2454	// empty value appearing in NullFields will be sent to the server as
2455	// null. It is an error if a field in this list has a non-empty value.
2456	// This may be used to include null fields in Patch requests.
2457	NullFields []string `json:"-"`
2458}
2459
2460func (s *HotKeyDetection) MarshalJSON() ([]byte, error) {
2461	type NoMethod HotKeyDetection
2462	raw := NoMethod(*s)
2463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2464}
2465
2466// InstructionInput: An input of an instruction, as a reference to an
2467// output of a producer instruction.
2468type InstructionInput struct {
2469	// OutputNum: The output index (origin zero) within the producer.
2470	OutputNum int64 `json:"outputNum,omitempty"`
2471
2472	// ProducerInstructionIndex: The index (origin zero) of the parallel
2473	// instruction that produces the output to be consumed by this input.
2474	// This index is relative to the list of instructions in this input's
2475	// instruction's containing MapTask.
2476	ProducerInstructionIndex int64 `json:"producerInstructionIndex,omitempty"`
2477
2478	// ForceSendFields is a list of field names (e.g. "OutputNum") to
2479	// unconditionally include in API requests. By default, fields with
2480	// empty values are omitted from API requests. However, any non-pointer,
2481	// non-interface field appearing in ForceSendFields will be sent to the
2482	// server regardless of whether the field is empty or not. This may be
2483	// used to include empty fields in Patch requests.
2484	ForceSendFields []string `json:"-"`
2485
2486	// NullFields is a list of field names (e.g. "OutputNum") to include in
2487	// API requests with the JSON null value. By default, fields with empty
2488	// values are omitted from API requests. However, any field with an
2489	// empty value appearing in NullFields will be sent to the server as
2490	// null. It is an error if a field in this list has a non-empty value.
2491	// This may be used to include null fields in Patch requests.
2492	NullFields []string `json:"-"`
2493}
2494
2495func (s *InstructionInput) MarshalJSON() ([]byte, error) {
2496	type NoMethod InstructionInput
2497	raw := NoMethod(*s)
2498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2499}
2500
2501// InstructionOutput: An output of an instruction.
2502type InstructionOutput struct {
2503	// Codec: The codec to use to encode data being written via this output.
2504	Codec googleapi.RawMessage `json:"codec,omitempty"`
2505
2506	// Name: The user-provided name of this output.
2507	Name string `json:"name,omitempty"`
2508
2509	// OnlyCountKeyBytes: For system-generated byte and mean byte metrics,
2510	// certain instructions should only report the key size.
2511	OnlyCountKeyBytes bool `json:"onlyCountKeyBytes,omitempty"`
2512
2513	// OnlyCountValueBytes: For system-generated byte and mean byte metrics,
2514	// certain instructions should only report the value size.
2515	OnlyCountValueBytes bool `json:"onlyCountValueBytes,omitempty"`
2516
2517	// OriginalName: System-defined name for this output in the original
2518	// workflow graph. Outputs that do not contribute to an original
2519	// instruction do not set this.
2520	OriginalName string `json:"originalName,omitempty"`
2521
2522	// SystemName: System-defined name of this output. Unique across the
2523	// workflow.
2524	SystemName string `json:"systemName,omitempty"`
2525
2526	// ForceSendFields is a list of field names (e.g. "Codec") to
2527	// unconditionally include in API requests. By default, fields with
2528	// empty values are omitted from API requests. However, any non-pointer,
2529	// non-interface field appearing in ForceSendFields will be sent to the
2530	// server regardless of whether the field is empty or not. This may be
2531	// used to include empty fields in Patch requests.
2532	ForceSendFields []string `json:"-"`
2533
2534	// NullFields is a list of field names (e.g. "Codec") to include in API
2535	// requests with the JSON null value. By default, fields with empty
2536	// values are omitted from API requests. However, any field with an
2537	// empty value appearing in NullFields will be sent to the server as
2538	// null. It is an error if a field in this list has a non-empty value.
2539	// This may be used to include null fields in Patch requests.
2540	NullFields []string `json:"-"`
2541}
2542
2543func (s *InstructionOutput) MarshalJSON() ([]byte, error) {
2544	type NoMethod InstructionOutput
2545	raw := NoMethod(*s)
2546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2547}
2548
2549// IntegerGauge: A metric value representing temporal values of a
2550// variable.
2551type IntegerGauge struct {
2552	// Timestamp: The time at which this value was measured. Measured as
2553	// msecs from epoch.
2554	Timestamp string `json:"timestamp,omitempty"`
2555
2556	// Value: The value of the variable represented by this gauge.
2557	Value *SplitInt64 `json:"value,omitempty"`
2558
2559	// ForceSendFields is a list of field names (e.g. "Timestamp") to
2560	// unconditionally include in API requests. By default, fields with
2561	// empty values are omitted from API requests. However, any non-pointer,
2562	// non-interface field appearing in ForceSendFields will be sent to the
2563	// server regardless of whether the field is empty or not. This may be
2564	// used to include empty fields in Patch requests.
2565	ForceSendFields []string `json:"-"`
2566
2567	// NullFields is a list of field names (e.g. "Timestamp") to include in
2568	// API requests with the JSON null value. By default, fields with empty
2569	// values are omitted from API requests. However, any field with an
2570	// empty value appearing in NullFields will be sent to the server as
2571	// null. It is an error if a field in this list has a non-empty value.
2572	// This may be used to include null fields in Patch requests.
2573	NullFields []string `json:"-"`
2574}
2575
2576func (s *IntegerGauge) MarshalJSON() ([]byte, error) {
2577	type NoMethod IntegerGauge
2578	raw := NoMethod(*s)
2579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2580}
2581
2582// IntegerList: A metric value representing a list of integers.
2583type IntegerList struct {
2584	// Elements: Elements of the list.
2585	Elements []*SplitInt64 `json:"elements,omitempty"`
2586
2587	// ForceSendFields is a list of field names (e.g. "Elements") to
2588	// unconditionally include in API requests. By default, fields with
2589	// empty values are omitted from API requests. However, any non-pointer,
2590	// non-interface field appearing in ForceSendFields will be sent to the
2591	// server regardless of whether the field is empty or not. This may be
2592	// used to include empty fields in Patch requests.
2593	ForceSendFields []string `json:"-"`
2594
2595	// NullFields is a list of field names (e.g. "Elements") to include in
2596	// API requests with the JSON null value. By default, fields with empty
2597	// values are omitted from API requests. However, any field with an
2598	// empty value appearing in NullFields will be sent to the server as
2599	// null. It is an error if a field in this list has a non-empty value.
2600	// This may be used to include null fields in Patch requests.
2601	NullFields []string `json:"-"`
2602}
2603
2604func (s *IntegerList) MarshalJSON() ([]byte, error) {
2605	type NoMethod IntegerList
2606	raw := NoMethod(*s)
2607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2608}
2609
2610// IntegerMean: A representation of an integer mean metric contribution.
2611type IntegerMean struct {
2612	// Count: The number of values being aggregated.
2613	Count *SplitInt64 `json:"count,omitempty"`
2614
2615	// Sum: The sum of all values being aggregated.
2616	Sum *SplitInt64 `json:"sum,omitempty"`
2617
2618	// ForceSendFields is a list of field names (e.g. "Count") to
2619	// unconditionally include in API requests. By default, fields with
2620	// empty values are omitted from API requests. However, any non-pointer,
2621	// non-interface field appearing in ForceSendFields will be sent to the
2622	// server regardless of whether the field is empty or not. This may be
2623	// used to include empty fields in Patch requests.
2624	ForceSendFields []string `json:"-"`
2625
2626	// NullFields is a list of field names (e.g. "Count") to include in API
2627	// requests with the JSON null value. By default, fields with empty
2628	// values are omitted from API requests. However, any field with an
2629	// empty value appearing in NullFields will be sent to the server as
2630	// null. It is an error if a field in this list has a non-empty value.
2631	// This may be used to include null fields in Patch requests.
2632	NullFields []string `json:"-"`
2633}
2634
2635func (s *IntegerMean) MarshalJSON() ([]byte, error) {
2636	type NoMethod IntegerMean
2637	raw := NoMethod(*s)
2638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2639}
2640
2641// Job: Defines a job to be run by the Cloud Dataflow service. nextID:
2642// 26
2643type Job struct {
2644	// ClientRequestId: The client's unique identifier of the job, re-used
2645	// across retried attempts. If this field is set, the service will
2646	// ensure its uniqueness. The request to create a job will fail if the
2647	// service has knowledge of a previously submitted job with the same
2648	// client's ID and job name. The caller may use this field to ensure
2649	// idempotence of job creation across retried attempts to create a job.
2650	// By default, the field is empty and, in that case, the service ignores
2651	// it.
2652	ClientRequestId string `json:"clientRequestId,omitempty"`
2653
2654	// CreateTime: The timestamp when the job was initially created.
2655	// Immutable and set by the Cloud Dataflow service.
2656	CreateTime string `json:"createTime,omitempty"`
2657
2658	// CreatedFromSnapshotId: If this is specified, the job's initial state
2659	// is populated from the given snapshot.
2660	CreatedFromSnapshotId string `json:"createdFromSnapshotId,omitempty"`
2661
2662	// CurrentState: The current state of the job. Jobs are created in the
2663	// `JOB_STATE_STOPPED` state unless otherwise specified. A job in the
2664	// `JOB_STATE_RUNNING` state may asynchronously enter a terminal state.
2665	// After a job has reached a terminal state, no further state updates
2666	// may be made. This field may be mutated by the Cloud Dataflow service;
2667	// callers cannot mutate it.
2668	//
2669	// Possible values:
2670	//   "JOB_STATE_UNKNOWN" - The job's run state isn't specified.
2671	//   "JOB_STATE_STOPPED" - `JOB_STATE_STOPPED` indicates that the job
2672	// has not yet started to run.
2673	//   "JOB_STATE_RUNNING" - `JOB_STATE_RUNNING` indicates that the job is
2674	// currently running.
2675	//   "JOB_STATE_DONE" - `JOB_STATE_DONE` indicates that the job has
2676	// successfully completed. This is a terminal job state. This state may
2677	// be set by the Cloud Dataflow service, as a transition from
2678	// `JOB_STATE_RUNNING`. It may also be set via a Cloud Dataflow
2679	// `UpdateJob` call, if the job has not yet reached a terminal state.
2680	//   "JOB_STATE_FAILED" - `JOB_STATE_FAILED` indicates that the job has
2681	// failed. This is a terminal job state. This state may only be set by
2682	// the Cloud Dataflow service, and only as a transition from
2683	// `JOB_STATE_RUNNING`.
2684	//   "JOB_STATE_CANCELLED" - `JOB_STATE_CANCELLED` indicates that the
2685	// job has been explicitly cancelled. This is a terminal job state. This
2686	// state may only be set via a Cloud Dataflow `UpdateJob` call, and only
2687	// if the job has not yet reached another terminal state.
2688	//   "JOB_STATE_UPDATED" - `JOB_STATE_UPDATED` indicates that the job
2689	// was successfully updated, meaning that this job was stopped and
2690	// another job was started, inheriting state from this one. This is a
2691	// terminal job state. This state may only be set by the Cloud Dataflow
2692	// service, and only as a transition from `JOB_STATE_RUNNING`.
2693	//   "JOB_STATE_DRAINING" - `JOB_STATE_DRAINING` indicates that the job
2694	// is in the process of draining. A draining job has stopped pulling
2695	// from its input sources and is processing any data that remains
2696	// in-flight. This state may be set via a Cloud Dataflow `UpdateJob`
2697	// call, but only as a transition from `JOB_STATE_RUNNING`. Jobs that
2698	// are draining may only transition to `JOB_STATE_DRAINED`,
2699	// `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.
2700	//   "JOB_STATE_DRAINED" - `JOB_STATE_DRAINED` indicates that the job
2701	// has been drained. A drained job terminated by stopping pulling from
2702	// its input sources and processing any data that remained in-flight
2703	// when draining was requested. This state is a terminal state, may only
2704	// be set by the Cloud Dataflow service, and only as a transition from
2705	// `JOB_STATE_DRAINING`.
2706	//   "JOB_STATE_PENDING" - `JOB_STATE_PENDING` indicates that the job
2707	// has been created but is not yet running. Jobs that are pending may
2708	// only transition to `JOB_STATE_RUNNING`, or `JOB_STATE_FAILED`.
2709	//   "JOB_STATE_CANCELLING" - `JOB_STATE_CANCELLING` indicates that the
2710	// job has been explicitly cancelled and is in the process of stopping.
2711	// Jobs that are cancelling may only transition to `JOB_STATE_CANCELLED`
2712	// or `JOB_STATE_FAILED`.
2713	//   "JOB_STATE_QUEUED" - `JOB_STATE_QUEUED` indicates that the job has
2714	// been created but is being delayed until launch. Jobs that are queued
2715	// may only transition to `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.
2716	//   "JOB_STATE_RESOURCE_CLEANING_UP" - `JOB_STATE_RESOURCE_CLEANING_UP`
2717	// indicates that the batch job's associated resources are currently
2718	// being cleaned up after a successful run. Currently, this is an opt-in
2719	// feature, please reach out to Cloud support team if you are intersted.
2720	CurrentState string `json:"currentState,omitempty"`
2721
2722	// CurrentStateTime: The timestamp associated with the current state.
2723	CurrentStateTime string `json:"currentStateTime,omitempty"`
2724
2725	// Environment: The environment for the job.
2726	Environment *Environment `json:"environment,omitempty"`
2727
2728	// ExecutionInfo: Deprecated.
2729	ExecutionInfo *JobExecutionInfo `json:"executionInfo,omitempty"`
2730
2731	// Id: The unique ID of this job. This field is set by the Cloud
2732	// Dataflow service when the Job is created, and is immutable for the
2733	// life of the job.
2734	Id string `json:"id,omitempty"`
2735
2736	// JobMetadata: This field is populated by the Dataflow service to
2737	// support filtering jobs by the metadata values provided here.
2738	// Populated for ListJobs and all GetJob views SUMMARY and higher.
2739	JobMetadata *JobMetadata `json:"jobMetadata,omitempty"`
2740
2741	// Labels: User-defined labels for this job. The labels map can contain
2742	// no more than 64 entries. Entries of the labels map are UTF8 strings
2743	// that comply with the following restrictions: * Keys must conform to
2744	// regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp:
2745	// [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally
2746	// constrained to be <= 128 bytes in size.
2747	Labels map[string]string `json:"labels,omitempty"`
2748
2749	// Location: The [regional endpoint]
2750	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
2751	// that contains this job.
2752	Location string `json:"location,omitempty"`
2753
2754	// Name: The user-specified Cloud Dataflow job name. Only one Job with a
2755	// given name may exist in a project at any given time. If a caller
2756	// attempts to create a Job with the same name as an already-existing
2757	// Job, the attempt returns the existing Job. The name must match the
2758	// regular expression `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
2759	Name string `json:"name,omitempty"`
2760
2761	// PipelineDescription: Preliminary field: The format of this data may
2762	// change at any time. A description of the user pipeline and stages
2763	// through which it is executed. Created by Cloud Dataflow service. Only
2764	// retrieved with JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
2765	PipelineDescription *PipelineDescription `json:"pipelineDescription,omitempty"`
2766
2767	// ProjectId: The ID of the Cloud Platform project that the job belongs
2768	// to.
2769	ProjectId string `json:"projectId,omitempty"`
2770
2771	// ReplaceJobId: If this job is an update of an existing job, this field
2772	// is the job ID of the job it replaced. When sending a
2773	// `CreateJobRequest`, you can update a job by specifying it here. The
2774	// job named here is stopped, and its intermediate state is transferred
2775	// to this job.
2776	ReplaceJobId string `json:"replaceJobId,omitempty"`
2777
2778	// ReplacedByJobId: If another job is an update of this job (and thus,
2779	// this job is in `JOB_STATE_UPDATED`), this field contains the ID of
2780	// that job.
2781	ReplacedByJobId string `json:"replacedByJobId,omitempty"`
2782
2783	// RequestedState: The job's requested state. `UpdateJob` may be used to
2784	// switch between the `JOB_STATE_STOPPED` and `JOB_STATE_RUNNING`
2785	// states, by setting requested_state. `UpdateJob` may also be used to
2786	// directly set a job's requested state to `JOB_STATE_CANCELLED` or
2787	// `JOB_STATE_DONE`, irrevocably terminating the job if it has not
2788	// already reached a terminal state.
2789	//
2790	// Possible values:
2791	//   "JOB_STATE_UNKNOWN" - The job's run state isn't specified.
2792	//   "JOB_STATE_STOPPED" - `JOB_STATE_STOPPED` indicates that the job
2793	// has not yet started to run.
2794	//   "JOB_STATE_RUNNING" - `JOB_STATE_RUNNING` indicates that the job is
2795	// currently running.
2796	//   "JOB_STATE_DONE" - `JOB_STATE_DONE` indicates that the job has
2797	// successfully completed. This is a terminal job state. This state may
2798	// be set by the Cloud Dataflow service, as a transition from
2799	// `JOB_STATE_RUNNING`. It may also be set via a Cloud Dataflow
2800	// `UpdateJob` call, if the job has not yet reached a terminal state.
2801	//   "JOB_STATE_FAILED" - `JOB_STATE_FAILED` indicates that the job has
2802	// failed. This is a terminal job state. This state may only be set by
2803	// the Cloud Dataflow service, and only as a transition from
2804	// `JOB_STATE_RUNNING`.
2805	//   "JOB_STATE_CANCELLED" - `JOB_STATE_CANCELLED` indicates that the
2806	// job has been explicitly cancelled. This is a terminal job state. This
2807	// state may only be set via a Cloud Dataflow `UpdateJob` call, and only
2808	// if the job has not yet reached another terminal state.
2809	//   "JOB_STATE_UPDATED" - `JOB_STATE_UPDATED` indicates that the job
2810	// was successfully updated, meaning that this job was stopped and
2811	// another job was started, inheriting state from this one. This is a
2812	// terminal job state. This state may only be set by the Cloud Dataflow
2813	// service, and only as a transition from `JOB_STATE_RUNNING`.
2814	//   "JOB_STATE_DRAINING" - `JOB_STATE_DRAINING` indicates that the job
2815	// is in the process of draining. A draining job has stopped pulling
2816	// from its input sources and is processing any data that remains
2817	// in-flight. This state may be set via a Cloud Dataflow `UpdateJob`
2818	// call, but only as a transition from `JOB_STATE_RUNNING`. Jobs that
2819	// are draining may only transition to `JOB_STATE_DRAINED`,
2820	// `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.
2821	//   "JOB_STATE_DRAINED" - `JOB_STATE_DRAINED` indicates that the job
2822	// has been drained. A drained job terminated by stopping pulling from
2823	// its input sources and processing any data that remained in-flight
2824	// when draining was requested. This state is a terminal state, may only
2825	// be set by the Cloud Dataflow service, and only as a transition from
2826	// `JOB_STATE_DRAINING`.
2827	//   "JOB_STATE_PENDING" - `JOB_STATE_PENDING` indicates that the job
2828	// has been created but is not yet running. Jobs that are pending may
2829	// only transition to `JOB_STATE_RUNNING`, or `JOB_STATE_FAILED`.
2830	//   "JOB_STATE_CANCELLING" - `JOB_STATE_CANCELLING` indicates that the
2831	// job has been explicitly cancelled and is in the process of stopping.
2832	// Jobs that are cancelling may only transition to `JOB_STATE_CANCELLED`
2833	// or `JOB_STATE_FAILED`.
2834	//   "JOB_STATE_QUEUED" - `JOB_STATE_QUEUED` indicates that the job has
2835	// been created but is being delayed until launch. Jobs that are queued
2836	// may only transition to `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.
2837	//   "JOB_STATE_RESOURCE_CLEANING_UP" - `JOB_STATE_RESOURCE_CLEANING_UP`
2838	// indicates that the batch job's associated resources are currently
2839	// being cleaned up after a successful run. Currently, this is an opt-in
2840	// feature, please reach out to Cloud support team if you are intersted.
2841	RequestedState string `json:"requestedState,omitempty"`
2842
2843	// SatisfiesPzs: Reserved for future use. This field is set only in
2844	// responses from the server; it is ignored if it is set in any
2845	// requests.
2846	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
2847
2848	// StageStates: This field may be mutated by the Cloud Dataflow service;
2849	// callers cannot mutate it.
2850	StageStates []*ExecutionStageState `json:"stageStates,omitempty"`
2851
2852	// StartTime: The timestamp when the job was started (transitioned to
2853	// JOB_STATE_PENDING). Flexible resource scheduling jobs are started
2854	// with some delay after job creation, so start_time is unset before
2855	// start and is updated when the job is started by the Cloud Dataflow
2856	// service. For other jobs, start_time always equals to create_time and
2857	// is immutable and set by the Cloud Dataflow service.
2858	StartTime string `json:"startTime,omitempty"`
2859
2860	// Steps: Exactly one of step or steps_location should be specified. The
2861	// top-level steps that constitute the entire job. Only retrieved with
2862	// JOB_VIEW_ALL.
2863	Steps []*Step `json:"steps,omitempty"`
2864
2865	// StepsLocation: The GCS location where the steps are stored.
2866	StepsLocation string `json:"stepsLocation,omitempty"`
2867
2868	// TempFiles: A set of files the system should be aware of that are used
2869	// for temporary storage. These temporary files will be removed on job
2870	// completion. No duplicates are allowed. No file patterns are
2871	// supported. The supported files are: Google Cloud Storage:
2872	// storage.googleapis.com/{bucket}/{object}
2873	// bucket.storage.googleapis.com/{object}
2874	TempFiles []string `json:"tempFiles,omitempty"`
2875
2876	// TransformNameMapping: The map of transform name prefixes of the job
2877	// to be replaced to the corresponding name prefixes of the new job.
2878	TransformNameMapping map[string]string `json:"transformNameMapping,omitempty"`
2879
2880	// Type: The type of Cloud Dataflow job.
2881	//
2882	// Possible values:
2883	//   "JOB_TYPE_UNKNOWN" - The type of the job is unspecified, or
2884	// unknown.
2885	//   "JOB_TYPE_BATCH" - A batch job with a well-defined end point: data
2886	// is read, data is processed, data is written, and the job is done.
2887	//   "JOB_TYPE_STREAMING" - A continuously streaming job with no end:
2888	// data is read, processed, and written continuously.
2889	Type string `json:"type,omitempty"`
2890
2891	// ServerResponse contains the HTTP response code and headers from the
2892	// server.
2893	googleapi.ServerResponse `json:"-"`
2894
2895	// ForceSendFields is a list of field names (e.g. "ClientRequestId") to
2896	// unconditionally include in API requests. By default, fields with
2897	// empty values are omitted from API requests. However, any non-pointer,
2898	// non-interface field appearing in ForceSendFields will be sent to the
2899	// server regardless of whether the field is empty or not. This may be
2900	// used to include empty fields in Patch requests.
2901	ForceSendFields []string `json:"-"`
2902
2903	// NullFields is a list of field names (e.g. "ClientRequestId") to
2904	// include in API requests with the JSON null value. By default, fields
2905	// with empty values are omitted from API requests. However, any field
2906	// with an empty value appearing in NullFields will be sent to the
2907	// server as null. It is an error if a field in this list has a
2908	// non-empty value. This may be used to include null fields in Patch
2909	// requests.
2910	NullFields []string `json:"-"`
2911}
2912
2913func (s *Job) MarshalJSON() ([]byte, error) {
2914	type NoMethod Job
2915	raw := NoMethod(*s)
2916	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2917}
2918
2919// JobExecutionDetails: Information about the execution of a job.
2920type JobExecutionDetails struct {
2921	// NextPageToken: If present, this response does not contain all
2922	// requested tasks. To obtain the next page of results, repeat the
2923	// request with page_token set to this value.
2924	NextPageToken string `json:"nextPageToken,omitempty"`
2925
2926	// Stages: The stages of the job execution.
2927	Stages []*StageSummary `json:"stages,omitempty"`
2928
2929	// ServerResponse contains the HTTP response code and headers from the
2930	// server.
2931	googleapi.ServerResponse `json:"-"`
2932
2933	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2934	// unconditionally include in API requests. By default, fields with
2935	// empty values are omitted from API requests. However, any non-pointer,
2936	// non-interface field appearing in ForceSendFields will be sent to the
2937	// server regardless of whether the field is empty or not. This may be
2938	// used to include empty fields in Patch requests.
2939	ForceSendFields []string `json:"-"`
2940
2941	// NullFields is a list of field names (e.g. "NextPageToken") to include
2942	// in API requests with the JSON null value. By default, fields with
2943	// empty values are omitted from API requests. However, any field with
2944	// an empty value appearing in NullFields will be sent to the server as
2945	// null. It is an error if a field in this list has a non-empty value.
2946	// This may be used to include null fields in Patch requests.
2947	NullFields []string `json:"-"`
2948}
2949
2950func (s *JobExecutionDetails) MarshalJSON() ([]byte, error) {
2951	type NoMethod JobExecutionDetails
2952	raw := NoMethod(*s)
2953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2954}
2955
2956// JobExecutionInfo: Additional information about how a Cloud Dataflow
2957// job will be executed that isn't contained in the submitted job.
2958type JobExecutionInfo struct {
2959	// Stages: A mapping from each stage to the information about that
2960	// stage.
2961	Stages map[string]JobExecutionStageInfo `json:"stages,omitempty"`
2962
2963	// ForceSendFields is a list of field names (e.g. "Stages") to
2964	// unconditionally include in API requests. By default, fields with
2965	// empty values are omitted from API requests. However, any non-pointer,
2966	// non-interface field appearing in ForceSendFields will be sent to the
2967	// server regardless of whether the field is empty or not. This may be
2968	// used to include empty fields in Patch requests.
2969	ForceSendFields []string `json:"-"`
2970
2971	// NullFields is a list of field names (e.g. "Stages") to include in API
2972	// requests with the JSON null value. By default, fields with empty
2973	// values are omitted from API requests. However, any field with an
2974	// empty value appearing in NullFields will be sent to the server as
2975	// null. It is an error if a field in this list has a non-empty value.
2976	// This may be used to include null fields in Patch requests.
2977	NullFields []string `json:"-"`
2978}
2979
2980func (s *JobExecutionInfo) MarshalJSON() ([]byte, error) {
2981	type NoMethod JobExecutionInfo
2982	raw := NoMethod(*s)
2983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2984}
2985
2986// JobExecutionStageInfo: Contains information about how a particular
2987// google.dataflow.v1beta3.Step will be executed.
2988type JobExecutionStageInfo struct {
2989	// StepName: The steps associated with the execution stage. Note that
2990	// stages may have several steps, and that a given step might be run by
2991	// more than one stage.
2992	StepName []string `json:"stepName,omitempty"`
2993
2994	// ForceSendFields is a list of field names (e.g. "StepName") to
2995	// unconditionally include in API requests. By default, fields with
2996	// empty values are omitted from API requests. However, any non-pointer,
2997	// non-interface field appearing in ForceSendFields will be sent to the
2998	// server regardless of whether the field is empty or not. This may be
2999	// used to include empty fields in Patch requests.
3000	ForceSendFields []string `json:"-"`
3001
3002	// NullFields is a list of field names (e.g. "StepName") to include in
3003	// API requests with the JSON null value. By default, fields with empty
3004	// values are omitted from API requests. However, any field with an
3005	// empty value appearing in NullFields will be sent to the server as
3006	// null. It is an error if a field in this list has a non-empty value.
3007	// This may be used to include null fields in Patch requests.
3008	NullFields []string `json:"-"`
3009}
3010
3011func (s *JobExecutionStageInfo) MarshalJSON() ([]byte, error) {
3012	type NoMethod JobExecutionStageInfo
3013	raw := NoMethod(*s)
3014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3015}
3016
3017// JobMessage: A particular message pertaining to a Dataflow job.
3018type JobMessage struct {
3019	// Id: Deprecated.
3020	Id string `json:"id,omitempty"`
3021
3022	// MessageImportance: Importance level of the message.
3023	//
3024	// Possible values:
3025	//   "JOB_MESSAGE_IMPORTANCE_UNKNOWN" - The message importance isn't
3026	// specified, or is unknown.
3027	//   "JOB_MESSAGE_DEBUG" - The message is at the 'debug' level:
3028	// typically only useful for software engineers working on the code the
3029	// job is running. Typically, Dataflow pipeline runners do not display
3030	// log messages at this level by default.
3031	//   "JOB_MESSAGE_DETAILED" - The message is at the 'detailed' level:
3032	// somewhat verbose, but potentially useful to users. Typically,
3033	// Dataflow pipeline runners do not display log messages at this level
3034	// by default. These messages are displayed by default in the Dataflow
3035	// monitoring UI.
3036	//   "JOB_MESSAGE_BASIC" - The message is at the 'basic' level: useful
3037	// for keeping track of the execution of a Dataflow pipeline. Typically,
3038	// Dataflow pipeline runners display log messages at this level by
3039	// default, and these messages are displayed by default in the Dataflow
3040	// monitoring UI.
3041	//   "JOB_MESSAGE_WARNING" - The message is at the 'warning' level:
3042	// indicating a condition pertaining to a job which may require human
3043	// intervention. Typically, Dataflow pipeline runners display log
3044	// messages at this level by default, and these messages are displayed
3045	// by default in the Dataflow monitoring UI.
3046	//   "JOB_MESSAGE_ERROR" - The message is at the 'error' level:
3047	// indicating a condition preventing a job from succeeding. Typically,
3048	// Dataflow pipeline runners display log messages at this level by
3049	// default, and these messages are displayed by default in the Dataflow
3050	// monitoring UI.
3051	MessageImportance string `json:"messageImportance,omitempty"`
3052
3053	// MessageText: The text of the message.
3054	MessageText string `json:"messageText,omitempty"`
3055
3056	// Time: The timestamp of the message.
3057	Time string `json:"time,omitempty"`
3058
3059	// ForceSendFields is a list of field names (e.g. "Id") to
3060	// unconditionally include in API requests. By default, fields with
3061	// empty values are omitted from API requests. However, any non-pointer,
3062	// non-interface field appearing in ForceSendFields will be sent to the
3063	// server regardless of whether the field is empty or not. This may be
3064	// used to include empty fields in Patch requests.
3065	ForceSendFields []string `json:"-"`
3066
3067	// NullFields is a list of field names (e.g. "Id") to include in API
3068	// requests with the JSON null value. By default, fields with empty
3069	// values are omitted from API requests. However, any field with an
3070	// empty value appearing in NullFields will be sent to the server as
3071	// null. It is an error if a field in this list has a non-empty value.
3072	// This may be used to include null fields in Patch requests.
3073	NullFields []string `json:"-"`
3074}
3075
3076func (s *JobMessage) MarshalJSON() ([]byte, error) {
3077	type NoMethod JobMessage
3078	raw := NoMethod(*s)
3079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3080}
3081
3082// JobMetadata: Metadata available primarily for filtering jobs. Will be
3083// included in the ListJob response and Job SUMMARY view.
3084type JobMetadata struct {
3085	// BigTableDetails: Identification of a BigTable source used in the
3086	// Dataflow job.
3087	BigTableDetails []*BigTableIODetails `json:"bigTableDetails,omitempty"`
3088
3089	// BigqueryDetails: Identification of a BigQuery source used in the
3090	// Dataflow job.
3091	BigqueryDetails []*BigQueryIODetails `json:"bigqueryDetails,omitempty"`
3092
3093	// DatastoreDetails: Identification of a Datastore source used in the
3094	// Dataflow job.
3095	DatastoreDetails []*DatastoreIODetails `json:"datastoreDetails,omitempty"`
3096
3097	// FileDetails: Identification of a File source used in the Dataflow
3098	// job.
3099	FileDetails []*FileIODetails `json:"fileDetails,omitempty"`
3100
3101	// PubsubDetails: Identification of a PubSub source used in the Dataflow
3102	// job.
3103	PubsubDetails []*PubSubIODetails `json:"pubsubDetails,omitempty"`
3104
3105	// SdkVersion: The SDK version used to run the job.
3106	SdkVersion *SdkVersion `json:"sdkVersion,omitempty"`
3107
3108	// SpannerDetails: Identification of a Spanner source used in the
3109	// Dataflow job.
3110	SpannerDetails []*SpannerIODetails `json:"spannerDetails,omitempty"`
3111
3112	// ForceSendFields is a list of field names (e.g. "BigTableDetails") to
3113	// unconditionally include in API requests. By default, fields with
3114	// empty values are omitted from API requests. However, any non-pointer,
3115	// non-interface field appearing in ForceSendFields will be sent to the
3116	// server regardless of whether the field is empty or not. This may be
3117	// used to include empty fields in Patch requests.
3118	ForceSendFields []string `json:"-"`
3119
3120	// NullFields is a list of field names (e.g. "BigTableDetails") to
3121	// include in API requests with the JSON null value. By default, fields
3122	// with empty values are omitted from API requests. However, any field
3123	// with an empty value appearing in NullFields will be sent to the
3124	// server as null. It is an error if a field in this list has a
3125	// non-empty value. This may be used to include null fields in Patch
3126	// requests.
3127	NullFields []string `json:"-"`
3128}
3129
3130func (s *JobMetadata) MarshalJSON() ([]byte, error) {
3131	type NoMethod JobMetadata
3132	raw := NoMethod(*s)
3133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3134}
3135
3136// JobMetrics: JobMetrics contains a collection of metrics describing
3137// the detailed progress of a Dataflow job. Metrics correspond to
3138// user-defined and system-defined metrics in the job. This resource
3139// captures only the most recent values of each metric; time-series data
3140// can be queried for them (under the same metric names) from Cloud
3141// Monitoring.
3142type JobMetrics struct {
3143	// MetricTime: Timestamp as of which metric values are current.
3144	MetricTime string `json:"metricTime,omitempty"`
3145
3146	// Metrics: All metrics for this job.
3147	Metrics []*MetricUpdate `json:"metrics,omitempty"`
3148
3149	// ServerResponse contains the HTTP response code and headers from the
3150	// server.
3151	googleapi.ServerResponse `json:"-"`
3152
3153	// ForceSendFields is a list of field names (e.g. "MetricTime") to
3154	// unconditionally include in API requests. By default, fields with
3155	// empty values are omitted from API requests. However, any non-pointer,
3156	// non-interface field appearing in ForceSendFields will be sent to the
3157	// server regardless of whether the field is empty or not. This may be
3158	// used to include empty fields in Patch requests.
3159	ForceSendFields []string `json:"-"`
3160
3161	// NullFields is a list of field names (e.g. "MetricTime") to include in
3162	// API requests with the JSON null value. By default, fields with empty
3163	// values are omitted from API requests. However, any field with an
3164	// empty value appearing in NullFields will be sent to the server as
3165	// null. It is an error if a field in this list has a non-empty value.
3166	// This may be used to include null fields in Patch requests.
3167	NullFields []string `json:"-"`
3168}
3169
3170func (s *JobMetrics) MarshalJSON() ([]byte, error) {
3171	type NoMethod JobMetrics
3172	raw := NoMethod(*s)
3173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3174}
3175
3176// KeyRangeDataDiskAssignment: Data disk assignment information for a
3177// specific key-range of a sharded computation. Currently we only
3178// support UTF-8 character splits to simplify encoding into JSON.
3179type KeyRangeDataDiskAssignment struct {
3180	// DataDisk: The name of the data disk where data for this range is
3181	// stored. This name is local to the Google Cloud Platform project and
3182	// uniquely identifies the disk within that project, for example
3183	// "myproject-1014-104817-4c2-harness-0-disk-1".
3184	DataDisk string `json:"dataDisk,omitempty"`
3185
3186	// End: The end (exclusive) of the key range.
3187	End string `json:"end,omitempty"`
3188
3189	// Start: The start (inclusive) of the key range.
3190	Start string `json:"start,omitempty"`
3191
3192	// ForceSendFields is a list of field names (e.g. "DataDisk") to
3193	// unconditionally include in API requests. By default, fields with
3194	// empty values are omitted from API requests. However, any non-pointer,
3195	// non-interface field appearing in ForceSendFields will be sent to the
3196	// server regardless of whether the field is empty or not. This may be
3197	// used to include empty fields in Patch requests.
3198	ForceSendFields []string `json:"-"`
3199
3200	// NullFields is a list of field names (e.g. "DataDisk") to include in
3201	// API requests with the JSON null value. By default, fields with empty
3202	// values are omitted from API requests. However, any field with an
3203	// empty value appearing in NullFields will be sent to the server as
3204	// null. It is an error if a field in this list has a non-empty value.
3205	// This may be used to include null fields in Patch requests.
3206	NullFields []string `json:"-"`
3207}
3208
3209func (s *KeyRangeDataDiskAssignment) MarshalJSON() ([]byte, error) {
3210	type NoMethod KeyRangeDataDiskAssignment
3211	raw := NoMethod(*s)
3212	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3213}
3214
3215// KeyRangeLocation: Location information for a specific key-range of a
3216// sharded computation. Currently we only support UTF-8 character splits
3217// to simplify encoding into JSON.
3218type KeyRangeLocation struct {
3219	// DataDisk: The name of the data disk where data for this range is
3220	// stored. This name is local to the Google Cloud Platform project and
3221	// uniquely identifies the disk within that project, for example
3222	// "myproject-1014-104817-4c2-harness-0-disk-1".
3223	DataDisk string `json:"dataDisk,omitempty"`
3224
3225	// DeliveryEndpoint: The physical location of this range assignment to
3226	// be used for streaming computation cross-worker message delivery.
3227	DeliveryEndpoint string `json:"deliveryEndpoint,omitempty"`
3228
3229	// DeprecatedPersistentDirectory: DEPRECATED. The location of the
3230	// persistent state for this range, as a persistent directory in the
3231	// worker local filesystem.
3232	DeprecatedPersistentDirectory string `json:"deprecatedPersistentDirectory,omitempty"`
3233
3234	// End: The end (exclusive) of the key range.
3235	End string `json:"end,omitempty"`
3236
3237	// Start: The start (inclusive) of the key range.
3238	Start string `json:"start,omitempty"`
3239
3240	// ForceSendFields is a list of field names (e.g. "DataDisk") to
3241	// unconditionally include in API requests. By default, fields with
3242	// empty values are omitted from API requests. However, any non-pointer,
3243	// non-interface field appearing in ForceSendFields will be sent to the
3244	// server regardless of whether the field is empty or not. This may be
3245	// used to include empty fields in Patch requests.
3246	ForceSendFields []string `json:"-"`
3247
3248	// NullFields is a list of field names (e.g. "DataDisk") to include in
3249	// API requests with the JSON null value. By default, fields with empty
3250	// values are omitted from API requests. However, any field with an
3251	// empty value appearing in NullFields will be sent to the server as
3252	// null. It is an error if a field in this list has a non-empty value.
3253	// This may be used to include null fields in Patch requests.
3254	NullFields []string `json:"-"`
3255}
3256
3257func (s *KeyRangeLocation) MarshalJSON() ([]byte, error) {
3258	type NoMethod KeyRangeLocation
3259	raw := NoMethod(*s)
3260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3261}
3262
3263// LaunchFlexTemplateParameter: Launch FlexTemplate Parameter.
3264type LaunchFlexTemplateParameter struct {
3265	// ContainerSpec: Spec about the container image to launch.
3266	ContainerSpec *ContainerSpec `json:"containerSpec,omitempty"`
3267
3268	// ContainerSpecGcsPath: Gcs path to a file with json serialized
3269	// ContainerSpec as content.
3270	ContainerSpecGcsPath string `json:"containerSpecGcsPath,omitempty"`
3271
3272	// Environment: The runtime environment for the FlexTemplate job
3273	Environment *FlexTemplateRuntimeEnvironment `json:"environment,omitempty"`
3274
3275	// JobName: Required. The job name to use for the created job. For
3276	// update job request, job name should be same as the existing running
3277	// job.
3278	JobName string `json:"jobName,omitempty"`
3279
3280	// LaunchOptions: Launch options for this flex template job. This is a
3281	// common set of options across languages and templates. This should not
3282	// be used to pass job parameters.
3283	LaunchOptions map[string]string `json:"launchOptions,omitempty"`
3284
3285	// Parameters: The parameters for FlexTemplate. Ex. {"num_workers":"5"}
3286	Parameters map[string]string `json:"parameters,omitempty"`
3287
3288	// TransformNameMappings: Use this to pass transform_name_mappings for
3289	// streaming update jobs.
3290	// Ex:{"oldTransformName":"newTransformName",...}'
3291	TransformNameMappings map[string]string `json:"transformNameMappings,omitempty"`
3292
3293	// Update: Set this to true if you are sending a request to update a
3294	// running streaming job. When set, the job name should be the same as
3295	// the running job.
3296	Update bool `json:"update,omitempty"`
3297
3298	// ForceSendFields is a list of field names (e.g. "ContainerSpec") to
3299	// unconditionally include in API requests. By default, fields with
3300	// empty values are omitted from API requests. However, any non-pointer,
3301	// non-interface field appearing in ForceSendFields will be sent to the
3302	// server regardless of whether the field is empty or not. This may be
3303	// used to include empty fields in Patch requests.
3304	ForceSendFields []string `json:"-"`
3305
3306	// NullFields is a list of field names (e.g. "ContainerSpec") to include
3307	// in API requests with the JSON null value. By default, fields with
3308	// empty values are omitted from API requests. However, any field with
3309	// an empty value appearing in NullFields will be sent to the server as
3310	// null. It is an error if a field in this list has a non-empty value.
3311	// This may be used to include null fields in Patch requests.
3312	NullFields []string `json:"-"`
3313}
3314
3315func (s *LaunchFlexTemplateParameter) MarshalJSON() ([]byte, error) {
3316	type NoMethod LaunchFlexTemplateParameter
3317	raw := NoMethod(*s)
3318	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3319}
3320
3321// LaunchFlexTemplateRequest: A request to launch a Cloud Dataflow job
3322// from a FlexTemplate.
3323type LaunchFlexTemplateRequest struct {
3324	// LaunchParameter: Required. Parameter to launch a job form Flex
3325	// Template.
3326	LaunchParameter *LaunchFlexTemplateParameter `json:"launchParameter,omitempty"`
3327
3328	// ValidateOnly: If true, the request is validated but not actually
3329	// executed. Defaults to false.
3330	ValidateOnly bool `json:"validateOnly,omitempty"`
3331
3332	// ForceSendFields is a list of field names (e.g. "LaunchParameter") to
3333	// unconditionally include in API requests. By default, fields with
3334	// empty values are omitted from API requests. However, any non-pointer,
3335	// non-interface field appearing in ForceSendFields will be sent to the
3336	// server regardless of whether the field is empty or not. This may be
3337	// used to include empty fields in Patch requests.
3338	ForceSendFields []string `json:"-"`
3339
3340	// NullFields is a list of field names (e.g. "LaunchParameter") to
3341	// include in API requests with the JSON null value. By default, fields
3342	// with empty values are omitted from API requests. However, any field
3343	// with an empty value appearing in NullFields will be sent to the
3344	// server as null. It is an error if a field in this list has a
3345	// non-empty value. This may be used to include null fields in Patch
3346	// requests.
3347	NullFields []string `json:"-"`
3348}
3349
3350func (s *LaunchFlexTemplateRequest) MarshalJSON() ([]byte, error) {
3351	type NoMethod LaunchFlexTemplateRequest
3352	raw := NoMethod(*s)
3353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3354}
3355
3356// LaunchFlexTemplateResponse: Response to the request to launch a job
3357// from Flex Template.
3358type LaunchFlexTemplateResponse struct {
3359	// Job: The job that was launched, if the request was not a dry run and
3360	// the job was successfully launched.
3361	Job *Job `json:"job,omitempty"`
3362
3363	// ServerResponse contains the HTTP response code and headers from the
3364	// server.
3365	googleapi.ServerResponse `json:"-"`
3366
3367	// ForceSendFields is a list of field names (e.g. "Job") to
3368	// unconditionally include in API requests. By default, fields with
3369	// empty values are omitted from API requests. However, any non-pointer,
3370	// non-interface field appearing in ForceSendFields will be sent to the
3371	// server regardless of whether the field is empty or not. This may be
3372	// used to include empty fields in Patch requests.
3373	ForceSendFields []string `json:"-"`
3374
3375	// NullFields is a list of field names (e.g. "Job") to include in API
3376	// requests with the JSON null value. By default, fields with empty
3377	// values are omitted from API requests. However, any field with an
3378	// empty value appearing in NullFields will be sent to the server as
3379	// null. It is an error if a field in this list has a non-empty value.
3380	// This may be used to include null fields in Patch requests.
3381	NullFields []string `json:"-"`
3382}
3383
3384func (s *LaunchFlexTemplateResponse) MarshalJSON() ([]byte, error) {
3385	type NoMethod LaunchFlexTemplateResponse
3386	raw := NoMethod(*s)
3387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3388}
3389
3390// LaunchTemplateParameters: Parameters to provide to the template being
3391// launched.
3392type LaunchTemplateParameters struct {
3393	// Environment: The runtime environment for the job.
3394	Environment *RuntimeEnvironment `json:"environment,omitempty"`
3395
3396	// JobName: Required. The job name to use for the created job.
3397	JobName string `json:"jobName,omitempty"`
3398
3399	// Parameters: The runtime parameters to pass to the job.
3400	Parameters map[string]string `json:"parameters,omitempty"`
3401
3402	// TransformNameMapping: Only applicable when updating a pipeline. Map
3403	// of transform name prefixes of the job to be replaced to the
3404	// corresponding name prefixes of the new job.
3405	TransformNameMapping map[string]string `json:"transformNameMapping,omitempty"`
3406
3407	// Update: If set, replace the existing pipeline with the name specified
3408	// by jobName with this pipeline, preserving state.
3409	Update bool `json:"update,omitempty"`
3410
3411	// ForceSendFields is a list of field names (e.g. "Environment") to
3412	// unconditionally include in API requests. By default, fields with
3413	// empty values are omitted from API requests. However, any non-pointer,
3414	// non-interface field appearing in ForceSendFields will be sent to the
3415	// server regardless of whether the field is empty or not. This may be
3416	// used to include empty fields in Patch requests.
3417	ForceSendFields []string `json:"-"`
3418
3419	// NullFields is a list of field names (e.g. "Environment") to include
3420	// in API requests with the JSON null value. By default, fields with
3421	// empty values are omitted from API requests. However, any field with
3422	// an empty value appearing in NullFields will be sent to the server as
3423	// null. It is an error if a field in this list has a non-empty value.
3424	// This may be used to include null fields in Patch requests.
3425	NullFields []string `json:"-"`
3426}
3427
3428func (s *LaunchTemplateParameters) MarshalJSON() ([]byte, error) {
3429	type NoMethod LaunchTemplateParameters
3430	raw := NoMethod(*s)
3431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3432}
3433
3434// LaunchTemplateResponse: Response to the request to launch a template.
3435type LaunchTemplateResponse struct {
3436	// Job: The job that was launched, if the request was not a dry run and
3437	// the job was successfully launched.
3438	Job *Job `json:"job,omitempty"`
3439
3440	// ServerResponse contains the HTTP response code and headers from the
3441	// server.
3442	googleapi.ServerResponse `json:"-"`
3443
3444	// ForceSendFields is a list of field names (e.g. "Job") to
3445	// unconditionally include in API requests. By default, fields with
3446	// empty values are omitted from API requests. However, any non-pointer,
3447	// non-interface field appearing in ForceSendFields will be sent to the
3448	// server regardless of whether the field is empty or not. This may be
3449	// used to include empty fields in Patch requests.
3450	ForceSendFields []string `json:"-"`
3451
3452	// NullFields is a list of field names (e.g. "Job") to include in API
3453	// requests with the JSON null value. By default, fields with empty
3454	// values are omitted from API requests. However, any field with an
3455	// empty value appearing in NullFields will be sent to the server as
3456	// null. It is an error if a field in this list has a non-empty value.
3457	// This may be used to include null fields in Patch requests.
3458	NullFields []string `json:"-"`
3459}
3460
3461func (s *LaunchTemplateResponse) MarshalJSON() ([]byte, error) {
3462	type NoMethod LaunchTemplateResponse
3463	raw := NoMethod(*s)
3464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3465}
3466
3467// LeaseWorkItemRequest: Request to lease WorkItems.
3468type LeaseWorkItemRequest struct {
3469	// CurrentWorkerTime: The current timestamp at the worker.
3470	CurrentWorkerTime string `json:"currentWorkerTime,omitempty"`
3471
3472	// Location: The [regional endpoint]
3473	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
3474	// that contains the WorkItem's job.
3475	Location string `json:"location,omitempty"`
3476
3477	// RequestedLeaseDuration: The initial lease period.
3478	RequestedLeaseDuration string `json:"requestedLeaseDuration,omitempty"`
3479
3480	// UnifiedWorkerRequest: Untranslated bag-of-bytes WorkRequest from
3481	// UnifiedWorker.
3482	UnifiedWorkerRequest googleapi.RawMessage `json:"unifiedWorkerRequest,omitempty"`
3483
3484	// WorkItemTypes: Filter for WorkItem type.
3485	WorkItemTypes []string `json:"workItemTypes,omitempty"`
3486
3487	// WorkerCapabilities: Worker capabilities. WorkItems might be limited
3488	// to workers with specific capabilities.
3489	WorkerCapabilities []string `json:"workerCapabilities,omitempty"`
3490
3491	// WorkerId: Identifies the worker leasing work -- typically the ID of
3492	// the virtual machine running the worker.
3493	WorkerId string `json:"workerId,omitempty"`
3494
3495	// ForceSendFields is a list of field names (e.g. "CurrentWorkerTime")
3496	// to unconditionally include in API requests. By default, fields with
3497	// empty values are omitted from API requests. However, any non-pointer,
3498	// non-interface field appearing in ForceSendFields will be sent to the
3499	// server regardless of whether the field is empty or not. This may be
3500	// used to include empty fields in Patch requests.
3501	ForceSendFields []string `json:"-"`
3502
3503	// NullFields is a list of field names (e.g. "CurrentWorkerTime") to
3504	// include in API requests with the JSON null value. By default, fields
3505	// with empty values are omitted from API requests. However, any field
3506	// with an empty value appearing in NullFields will be sent to the
3507	// server as null. It is an error if a field in this list has a
3508	// non-empty value. This may be used to include null fields in Patch
3509	// requests.
3510	NullFields []string `json:"-"`
3511}
3512
3513func (s *LeaseWorkItemRequest) MarshalJSON() ([]byte, error) {
3514	type NoMethod LeaseWorkItemRequest
3515	raw := NoMethod(*s)
3516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3517}
3518
3519// LeaseWorkItemResponse: Response to a request to lease WorkItems.
3520type LeaseWorkItemResponse struct {
3521	// UnifiedWorkerResponse: Untranslated bag-of-bytes WorkResponse for
3522	// UnifiedWorker.
3523	UnifiedWorkerResponse googleapi.RawMessage `json:"unifiedWorkerResponse,omitempty"`
3524
3525	// WorkItems: A list of the leased WorkItems.
3526	WorkItems []*WorkItem `json:"workItems,omitempty"`
3527
3528	// ServerResponse contains the HTTP response code and headers from the
3529	// server.
3530	googleapi.ServerResponse `json:"-"`
3531
3532	// ForceSendFields is a list of field names (e.g.
3533	// "UnifiedWorkerResponse") to unconditionally include in API requests.
3534	// By default, fields with empty values are omitted from API requests.
3535	// However, any non-pointer, non-interface field appearing in
3536	// ForceSendFields will be sent to the server regardless of whether the
3537	// field is empty or not. This may be used to include empty fields in
3538	// Patch requests.
3539	ForceSendFields []string `json:"-"`
3540
3541	// NullFields is a list of field names (e.g. "UnifiedWorkerResponse") to
3542	// include in API requests with the JSON null value. By default, fields
3543	// with empty values are omitted from API requests. However, any field
3544	// with an empty value appearing in NullFields will be sent to the
3545	// server as null. It is an error if a field in this list has a
3546	// non-empty value. This may be used to include null fields in Patch
3547	// requests.
3548	NullFields []string `json:"-"`
3549}
3550
3551func (s *LeaseWorkItemResponse) MarshalJSON() ([]byte, error) {
3552	type NoMethod LeaseWorkItemResponse
3553	raw := NoMethod(*s)
3554	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3555}
3556
3557// ListJobMessagesResponse: Response to a request to list job messages.
3558type ListJobMessagesResponse struct {
3559	// AutoscalingEvents: Autoscaling events in ascending timestamp order.
3560	AutoscalingEvents []*AutoscalingEvent `json:"autoscalingEvents,omitempty"`
3561
3562	// JobMessages: Messages in ascending timestamp order.
3563	JobMessages []*JobMessage `json:"jobMessages,omitempty"`
3564
3565	// NextPageToken: The token to obtain the next page of results if there
3566	// are more.
3567	NextPageToken string `json:"nextPageToken,omitempty"`
3568
3569	// ServerResponse contains the HTTP response code and headers from the
3570	// server.
3571	googleapi.ServerResponse `json:"-"`
3572
3573	// ForceSendFields is a list of field names (e.g. "AutoscalingEvents")
3574	// to unconditionally include in API requests. By default, fields with
3575	// empty values are omitted from API requests. However, any non-pointer,
3576	// non-interface field appearing in ForceSendFields will be sent to the
3577	// server regardless of whether the field is empty or not. This may be
3578	// used to include empty fields in Patch requests.
3579	ForceSendFields []string `json:"-"`
3580
3581	// NullFields is a list of field names (e.g. "AutoscalingEvents") to
3582	// include in API requests with the JSON null value. By default, fields
3583	// with empty values are omitted from API requests. However, any field
3584	// with an empty value appearing in NullFields will be sent to the
3585	// server as null. It is an error if a field in this list has a
3586	// non-empty value. This may be used to include null fields in Patch
3587	// requests.
3588	NullFields []string `json:"-"`
3589}
3590
3591func (s *ListJobMessagesResponse) MarshalJSON() ([]byte, error) {
3592	type NoMethod ListJobMessagesResponse
3593	raw := NoMethod(*s)
3594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3595}
3596
3597// ListJobsResponse: Response to a request to list Cloud Dataflow jobs
3598// in a project. This might be a partial response, depending on the page
3599// size in the ListJobsRequest. However, if the project does not have
3600// any jobs, an instance of ListJobsResponse is not returned and the
3601// requests's response body is empty {}.
3602type ListJobsResponse struct {
3603	// FailedLocation: Zero or more messages describing the [regional
3604	// endpoints]
3605	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
3606	// that failed to respond.
3607	FailedLocation []*FailedLocation `json:"failedLocation,omitempty"`
3608
3609	// Jobs: A subset of the requested job information.
3610	Jobs []*Job `json:"jobs,omitempty"`
3611
3612	// NextPageToken: Set if there may be more results than fit in this
3613	// response.
3614	NextPageToken string `json:"nextPageToken,omitempty"`
3615
3616	// ServerResponse contains the HTTP response code and headers from the
3617	// server.
3618	googleapi.ServerResponse `json:"-"`
3619
3620	// ForceSendFields is a list of field names (e.g. "FailedLocation") to
3621	// unconditionally include in API requests. By default, fields with
3622	// empty values are omitted from API requests. However, any non-pointer,
3623	// non-interface field appearing in ForceSendFields will be sent to the
3624	// server regardless of whether the field is empty or not. This may be
3625	// used to include empty fields in Patch requests.
3626	ForceSendFields []string `json:"-"`
3627
3628	// NullFields is a list of field names (e.g. "FailedLocation") to
3629	// include in API requests with the JSON null value. By default, fields
3630	// with empty values are omitted from API requests. However, any field
3631	// with an empty value appearing in NullFields will be sent to the
3632	// server as null. It is an error if a field in this list has a
3633	// non-empty value. This may be used to include null fields in Patch
3634	// requests.
3635	NullFields []string `json:"-"`
3636}
3637
3638func (s *ListJobsResponse) MarshalJSON() ([]byte, error) {
3639	type NoMethod ListJobsResponse
3640	raw := NoMethod(*s)
3641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3642}
3643
3644// ListSnapshotsResponse: List of snapshots.
3645type ListSnapshotsResponse struct {
3646	// Snapshots: Returned snapshots.
3647	Snapshots []*Snapshot `json:"snapshots,omitempty"`
3648
3649	// ServerResponse contains the HTTP response code and headers from the
3650	// server.
3651	googleapi.ServerResponse `json:"-"`
3652
3653	// ForceSendFields is a list of field names (e.g. "Snapshots") to
3654	// unconditionally include in API requests. By default, fields with
3655	// empty values are omitted from API requests. However, any non-pointer,
3656	// non-interface field appearing in ForceSendFields will be sent to the
3657	// server regardless of whether the field is empty or not. This may be
3658	// used to include empty fields in Patch requests.
3659	ForceSendFields []string `json:"-"`
3660
3661	// NullFields is a list of field names (e.g. "Snapshots") to include in
3662	// API requests with the JSON null value. By default, fields with empty
3663	// values are omitted from API requests. However, any field with an
3664	// empty value appearing in NullFields will be sent to the server as
3665	// null. It is an error if a field in this list has a non-empty value.
3666	// This may be used to include null fields in Patch requests.
3667	NullFields []string `json:"-"`
3668}
3669
3670func (s *ListSnapshotsResponse) MarshalJSON() ([]byte, error) {
3671	type NoMethod ListSnapshotsResponse
3672	raw := NoMethod(*s)
3673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3674}
3675
3676// MapTask: MapTask consists of an ordered set of instructions, each of
3677// which describes one particular low-level operation for the worker to
3678// perform in order to accomplish the MapTask's WorkItem. Each
3679// instruction must appear in the list before any instructions which
3680// depends on its output.
3681type MapTask struct {
3682	// CounterPrefix: Counter prefix that can be used to prefix counters.
3683	// Not currently used in Dataflow.
3684	CounterPrefix string `json:"counterPrefix,omitempty"`
3685
3686	// Instructions: The instructions in the MapTask.
3687	Instructions []*ParallelInstruction `json:"instructions,omitempty"`
3688
3689	// StageName: System-defined name of the stage containing this MapTask.
3690	// Unique across the workflow.
3691	StageName string `json:"stageName,omitempty"`
3692
3693	// SystemName: System-defined name of this MapTask. Unique across the
3694	// workflow.
3695	SystemName string `json:"systemName,omitempty"`
3696
3697	// ForceSendFields is a list of field names (e.g. "CounterPrefix") to
3698	// unconditionally include in API requests. By default, fields with
3699	// empty values are omitted from API requests. However, any non-pointer,
3700	// non-interface field appearing in ForceSendFields will be sent to the
3701	// server regardless of whether the field is empty or not. This may be
3702	// used to include empty fields in Patch requests.
3703	ForceSendFields []string `json:"-"`
3704
3705	// NullFields is a list of field names (e.g. "CounterPrefix") to include
3706	// in API requests with the JSON null value. By default, fields with
3707	// empty values are omitted from API requests. However, any field with
3708	// an empty value appearing in NullFields will be sent to the server as
3709	// null. It is an error if a field in this list has a non-empty value.
3710	// This may be used to include null fields in Patch requests.
3711	NullFields []string `json:"-"`
3712}
3713
3714func (s *MapTask) MarshalJSON() ([]byte, error) {
3715	type NoMethod MapTask
3716	raw := NoMethod(*s)
3717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3718}
3719
3720// MemInfo: Information about the memory usage of a worker or a
3721// container within a worker.
3722type MemInfo struct {
3723	// CurrentLimitBytes: Instantenous memory limit in bytes.
3724	CurrentLimitBytes uint64 `json:"currentLimitBytes,omitempty,string"`
3725
3726	// CurrentRssBytes: Instantenous memory (RSS) size in bytes.
3727	CurrentRssBytes uint64 `json:"currentRssBytes,omitempty,string"`
3728
3729	// Timestamp: Timestamp of the measurement.
3730	Timestamp string `json:"timestamp,omitempty"`
3731
3732	// TotalGbMs: Total memory (RSS) usage since start up in GB * ms.
3733	TotalGbMs uint64 `json:"totalGbMs,omitempty,string"`
3734
3735	// ForceSendFields is a list of field names (e.g. "CurrentLimitBytes")
3736	// to unconditionally include in API requests. By default, fields with
3737	// empty values are omitted from API requests. However, any non-pointer,
3738	// non-interface field appearing in ForceSendFields will be sent to the
3739	// server regardless of whether the field is empty or not. This may be
3740	// used to include empty fields in Patch requests.
3741	ForceSendFields []string `json:"-"`
3742
3743	// NullFields is a list of field names (e.g. "CurrentLimitBytes") to
3744	// include in API requests with the JSON null value. By default, fields
3745	// with empty values are omitted from API requests. However, any field
3746	// with an empty value appearing in NullFields will be sent to the
3747	// server as null. It is an error if a field in this list has a
3748	// non-empty value. This may be used to include null fields in Patch
3749	// requests.
3750	NullFields []string `json:"-"`
3751}
3752
3753func (s *MemInfo) MarshalJSON() ([]byte, error) {
3754	type NoMethod MemInfo
3755	raw := NoMethod(*s)
3756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3757}
3758
3759// MetricShortId: The metric short id is returned to the user alongside
3760// an offset into ReportWorkItemStatusRequest
3761type MetricShortId struct {
3762	// MetricIndex: The index of the corresponding metric in the
3763	// ReportWorkItemStatusRequest. Required.
3764	MetricIndex int64 `json:"metricIndex,omitempty"`
3765
3766	// ShortId: The service-generated short identifier for the metric.
3767	ShortId int64 `json:"shortId,omitempty,string"`
3768
3769	// ForceSendFields is a list of field names (e.g. "MetricIndex") to
3770	// unconditionally include in API requests. By default, fields with
3771	// empty values are omitted from API requests. However, any non-pointer,
3772	// non-interface field appearing in ForceSendFields will be sent to the
3773	// server regardless of whether the field is empty or not. This may be
3774	// used to include empty fields in Patch requests.
3775	ForceSendFields []string `json:"-"`
3776
3777	// NullFields is a list of field names (e.g. "MetricIndex") to include
3778	// in API requests with the JSON null value. By default, fields with
3779	// empty values are omitted from API requests. However, any field with
3780	// an empty value appearing in NullFields will be sent to the server as
3781	// null. It is an error if a field in this list has a non-empty value.
3782	// This may be used to include null fields in Patch requests.
3783	NullFields []string `json:"-"`
3784}
3785
3786func (s *MetricShortId) MarshalJSON() ([]byte, error) {
3787	type NoMethod MetricShortId
3788	raw := NoMethod(*s)
3789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3790}
3791
3792// MetricStructuredName: Identifies a metric, by describing the source
3793// which generated the metric.
3794type MetricStructuredName struct {
3795	// Context: Zero or more labeled fields which identify the part of the
3796	// job this metric is associated with, such as the name of a step or
3797	// collection. For example, built-in counters associated with steps will
3798	// have context['step'] = . Counters associated with PCollections in the
3799	// SDK will have context['pcollection'] = .
3800	Context map[string]string `json:"context,omitempty"`
3801
3802	// Name: Worker-defined metric name.
3803	Name string `json:"name,omitempty"`
3804
3805	// Origin: Origin (namespace) of metric name. May be blank for
3806	// user-define metrics; will be "dataflow" for metrics defined by the
3807	// Dataflow service or SDK.
3808	Origin string `json:"origin,omitempty"`
3809
3810	// ForceSendFields is a list of field names (e.g. "Context") to
3811	// unconditionally include in API requests. By default, fields with
3812	// empty values are omitted from API requests. However, any non-pointer,
3813	// non-interface field appearing in ForceSendFields will be sent to the
3814	// server regardless of whether the field is empty or not. This may be
3815	// used to include empty fields in Patch requests.
3816	ForceSendFields []string `json:"-"`
3817
3818	// NullFields is a list of field names (e.g. "Context") to include in
3819	// API requests with the JSON null value. By default, fields with empty
3820	// values are omitted from API requests. However, any field with an
3821	// empty value appearing in NullFields will be sent to the server as
3822	// null. It is an error if a field in this list has a non-empty value.
3823	// This may be used to include null fields in Patch requests.
3824	NullFields []string `json:"-"`
3825}
3826
3827func (s *MetricStructuredName) MarshalJSON() ([]byte, error) {
3828	type NoMethod MetricStructuredName
3829	raw := NoMethod(*s)
3830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3831}
3832
3833// MetricUpdate: Describes the state of a metric.
3834type MetricUpdate struct {
3835	// Cumulative: True if this metric is reported as the total cumulative
3836	// aggregate value accumulated since the worker started working on this
3837	// WorkItem. By default this is false, indicating that this metric is
3838	// reported as a delta that is not associated with any WorkItem.
3839	Cumulative bool `json:"cumulative,omitempty"`
3840
3841	// Distribution: A struct value describing properties of a distribution
3842	// of numeric values.
3843	Distribution interface{} `json:"distribution,omitempty"`
3844
3845	// Gauge: A struct value describing properties of a Gauge. Metrics of
3846	// gauge type show the value of a metric across time, and is aggregated
3847	// based on the newest value.
3848	Gauge interface{} `json:"gauge,omitempty"`
3849
3850	// Internal: Worker-computed aggregate value for internal use by the
3851	// Dataflow service.
3852	Internal interface{} `json:"internal,omitempty"`
3853
3854	// Kind: Metric aggregation kind. The possible metric aggregation kinds
3855	// are "Sum", "Max", "Min", "Mean", "Set", "And", "Or", and
3856	// "Distribution". The specified aggregation kind is case-insensitive.
3857	// If omitted, this is not an aggregated value but instead a single
3858	// metric sample value.
3859	Kind string `json:"kind,omitempty"`
3860
3861	// MeanCount: Worker-computed aggregate value for the "Mean" aggregation
3862	// kind. This holds the count of the aggregated values and is used in
3863	// combination with mean_sum above to obtain the actual mean aggregate
3864	// value. The only possible value type is Long.
3865	MeanCount interface{} `json:"meanCount,omitempty"`
3866
3867	// MeanSum: Worker-computed aggregate value for the "Mean" aggregation
3868	// kind. This holds the sum of the aggregated values and is used in
3869	// combination with mean_count below to obtain the actual mean aggregate
3870	// value. The only possible value types are Long and Double.
3871	MeanSum interface{} `json:"meanSum,omitempty"`
3872
3873	// Name: Name of the metric.
3874	Name *MetricStructuredName `json:"name,omitempty"`
3875
3876	// Scalar: Worker-computed aggregate value for aggregation kinds "Sum",
3877	// "Max", "Min", "And", and "Or". The possible value types are Long,
3878	// Double, and Boolean.
3879	Scalar interface{} `json:"scalar,omitempty"`
3880
3881	// Set: Worker-computed aggregate value for the "Set" aggregation kind.
3882	// The only possible value type is a list of Values whose type can be
3883	// Long, Double, or String, according to the metric's type. All Values
3884	// in the list must be of the same type.
3885	Set interface{} `json:"set,omitempty"`
3886
3887	// UpdateTime: Timestamp associated with the metric value. Optional when
3888	// workers are reporting work progress; it will be filled in responses
3889	// from the metrics API.
3890	UpdateTime string `json:"updateTime,omitempty"`
3891
3892	// ForceSendFields is a list of field names (e.g. "Cumulative") to
3893	// unconditionally include in API requests. By default, fields with
3894	// empty values are omitted from API requests. However, any non-pointer,
3895	// non-interface field appearing in ForceSendFields will be sent to the
3896	// server regardless of whether the field is empty or not. This may be
3897	// used to include empty fields in Patch requests.
3898	ForceSendFields []string `json:"-"`
3899
3900	// NullFields is a list of field names (e.g. "Cumulative") to include in
3901	// API requests with the JSON null value. By default, fields with empty
3902	// values are omitted from API requests. However, any field with an
3903	// empty value appearing in NullFields will be sent to the server as
3904	// null. It is an error if a field in this list has a non-empty value.
3905	// This may be used to include null fields in Patch requests.
3906	NullFields []string `json:"-"`
3907}
3908
3909func (s *MetricUpdate) MarshalJSON() ([]byte, error) {
3910	type NoMethod MetricUpdate
3911	raw := NoMethod(*s)
3912	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3913}
3914
3915// MountedDataDisk: Describes mounted data disk.
3916type MountedDataDisk struct {
3917	// DataDisk: The name of the data disk. This name is local to the Google
3918	// Cloud Platform project and uniquely identifies the disk within that
3919	// project, for example "myproject-1014-104817-4c2-harness-0-disk-1".
3920	DataDisk string `json:"dataDisk,omitempty"`
3921
3922	// ForceSendFields is a list of field names (e.g. "DataDisk") to
3923	// unconditionally include in API requests. By default, fields with
3924	// empty values are omitted from API requests. However, any non-pointer,
3925	// non-interface field appearing in ForceSendFields will be sent to the
3926	// server regardless of whether the field is empty or not. This may be
3927	// used to include empty fields in Patch requests.
3928	ForceSendFields []string `json:"-"`
3929
3930	// NullFields is a list of field names (e.g. "DataDisk") to include in
3931	// API requests with the JSON null value. By default, fields with empty
3932	// values are omitted from API requests. However, any field with an
3933	// empty value appearing in NullFields will be sent to the server as
3934	// null. It is an error if a field in this list has a non-empty value.
3935	// This may be used to include null fields in Patch requests.
3936	NullFields []string `json:"-"`
3937}
3938
3939func (s *MountedDataDisk) MarshalJSON() ([]byte, error) {
3940	type NoMethod MountedDataDisk
3941	raw := NoMethod(*s)
3942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3943}
3944
3945// MultiOutputInfo: Information about an output of a multi-output DoFn.
3946type MultiOutputInfo struct {
3947	// Tag: The id of the tag the user code will emit to this output by;
3948	// this should correspond to the tag of some SideInputInfo.
3949	Tag string `json:"tag,omitempty"`
3950
3951	// ForceSendFields is a list of field names (e.g. "Tag") to
3952	// unconditionally include in API requests. By default, fields with
3953	// empty values are omitted from API requests. However, any non-pointer,
3954	// non-interface field appearing in ForceSendFields will be sent to the
3955	// server regardless of whether the field is empty or not. This may be
3956	// used to include empty fields in Patch requests.
3957	ForceSendFields []string `json:"-"`
3958
3959	// NullFields is a list of field names (e.g. "Tag") to include in API
3960	// requests with the JSON null value. By default, fields with empty
3961	// values are omitted from API requests. However, any field with an
3962	// empty value appearing in NullFields will be sent to the server as
3963	// null. It is an error if a field in this list has a non-empty value.
3964	// This may be used to include null fields in Patch requests.
3965	NullFields []string `json:"-"`
3966}
3967
3968func (s *MultiOutputInfo) MarshalJSON() ([]byte, error) {
3969	type NoMethod MultiOutputInfo
3970	raw := NoMethod(*s)
3971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3972}
3973
3974// NameAndKind: Basic metadata about a counter.
3975type NameAndKind struct {
3976	// Kind: Counter aggregation kind.
3977	//
3978	// Possible values:
3979	//   "INVALID" - Counter aggregation kind was not set.
3980	//   "SUM" - Aggregated value is the sum of all contributed values.
3981	//   "MAX" - Aggregated value is the max of all contributed values.
3982	//   "MIN" - Aggregated value is the min of all contributed values.
3983	//   "MEAN" - Aggregated value is the mean of all contributed values.
3984	//   "OR" - Aggregated value represents the logical 'or' of all
3985	// contributed values.
3986	//   "AND" - Aggregated value represents the logical 'and' of all
3987	// contributed values.
3988	//   "SET" - Aggregated value is a set of unique contributed values.
3989	//   "DISTRIBUTION" - Aggregated value captures statistics about a
3990	// distribution.
3991	//   "LATEST_VALUE" - Aggregated value tracks the latest value of a
3992	// variable.
3993	Kind string `json:"kind,omitempty"`
3994
3995	// Name: Name of the counter.
3996	Name string `json:"name,omitempty"`
3997
3998	// ForceSendFields is a list of field names (e.g. "Kind") to
3999	// unconditionally include in API requests. By default, fields with
4000	// empty values are omitted from API requests. However, any non-pointer,
4001	// non-interface field appearing in ForceSendFields will be sent to the
4002	// server regardless of whether the field is empty or not. This may be
4003	// used to include empty fields in Patch requests.
4004	ForceSendFields []string `json:"-"`
4005
4006	// NullFields is a list of field names (e.g. "Kind") to include in API
4007	// requests with the JSON null value. By default, fields with empty
4008	// values are omitted from API requests. However, any field with an
4009	// empty value appearing in NullFields will be sent to the server as
4010	// null. It is an error if a field in this list has a non-empty value.
4011	// This may be used to include null fields in Patch requests.
4012	NullFields []string `json:"-"`
4013}
4014
4015func (s *NameAndKind) MarshalJSON() ([]byte, error) {
4016	type NoMethod NameAndKind
4017	raw := NoMethod(*s)
4018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4019}
4020
4021// Package: The packages that must be installed in order for a worker to
4022// run the steps of the Cloud Dataflow job that will be assigned to its
4023// worker pool. This is the mechanism by which the Cloud Dataflow SDK
4024// causes code to be loaded onto the workers. For example, the Cloud
4025// Dataflow Java SDK might use this to install jars containing the
4026// user's code and all of the various dependencies (libraries, data
4027// files, etc.) required in order for that code to run.
4028type Package struct {
4029	// Location: The resource to read the package from. The supported
4030	// resource type is: Google Cloud Storage:
4031	// storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
4032	Location string `json:"location,omitempty"`
4033
4034	// Name: The name of the package.
4035	Name string `json:"name,omitempty"`
4036
4037	// ForceSendFields is a list of field names (e.g. "Location") to
4038	// unconditionally include in API requests. By default, fields with
4039	// empty values are omitted from API requests. However, any non-pointer,
4040	// non-interface field appearing in ForceSendFields will be sent to the
4041	// server regardless of whether the field is empty or not. This may be
4042	// used to include empty fields in Patch requests.
4043	ForceSendFields []string `json:"-"`
4044
4045	// NullFields is a list of field names (e.g. "Location") to include in
4046	// API requests with the JSON null value. By default, fields with empty
4047	// values are omitted from API requests. However, any field with an
4048	// empty value appearing in NullFields will be sent to the server as
4049	// null. It is an error if a field in this list has a non-empty value.
4050	// This may be used to include null fields in Patch requests.
4051	NullFields []string `json:"-"`
4052}
4053
4054func (s *Package) MarshalJSON() ([]byte, error) {
4055	type NoMethod Package
4056	raw := NoMethod(*s)
4057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4058}
4059
4060// ParDoInstruction: An instruction that does a ParDo operation. Takes
4061// one main input and zero or more side inputs, and produces zero or
4062// more outputs. Runs user code.
4063type ParDoInstruction struct {
4064	// Input: The input.
4065	Input *InstructionInput `json:"input,omitempty"`
4066
4067	// MultiOutputInfos: Information about each of the outputs, if user_fn
4068	// is a MultiDoFn.
4069	MultiOutputInfos []*MultiOutputInfo `json:"multiOutputInfos,omitempty"`
4070
4071	// NumOutputs: The number of outputs.
4072	NumOutputs int64 `json:"numOutputs,omitempty"`
4073
4074	// SideInputs: Zero or more side inputs.
4075	SideInputs []*SideInputInfo `json:"sideInputs,omitempty"`
4076
4077	// UserFn: The user function to invoke.
4078	UserFn googleapi.RawMessage `json:"userFn,omitempty"`
4079
4080	// ForceSendFields is a list of field names (e.g. "Input") to
4081	// unconditionally include in API requests. By default, fields with
4082	// empty values are omitted from API requests. However, any non-pointer,
4083	// non-interface field appearing in ForceSendFields will be sent to the
4084	// server regardless of whether the field is empty or not. This may be
4085	// used to include empty fields in Patch requests.
4086	ForceSendFields []string `json:"-"`
4087
4088	// NullFields is a list of field names (e.g. "Input") to include in API
4089	// requests with the JSON null value. By default, fields with empty
4090	// values are omitted from API requests. However, any field with an
4091	// empty value appearing in NullFields will be sent to the server as
4092	// null. It is an error if a field in this list has a non-empty value.
4093	// This may be used to include null fields in Patch requests.
4094	NullFields []string `json:"-"`
4095}
4096
4097func (s *ParDoInstruction) MarshalJSON() ([]byte, error) {
4098	type NoMethod ParDoInstruction
4099	raw := NoMethod(*s)
4100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4101}
4102
4103// ParallelInstruction: Describes a particular operation comprising a
4104// MapTask.
4105type ParallelInstruction struct {
4106	// Flatten: Additional information for Flatten instructions.
4107	Flatten *FlattenInstruction `json:"flatten,omitempty"`
4108
4109	// Name: User-provided name of this operation.
4110	Name string `json:"name,omitempty"`
4111
4112	// OriginalName: System-defined name for the operation in the original
4113	// workflow graph.
4114	OriginalName string `json:"originalName,omitempty"`
4115
4116	// Outputs: Describes the outputs of the instruction.
4117	Outputs []*InstructionOutput `json:"outputs,omitempty"`
4118
4119	// ParDo: Additional information for ParDo instructions.
4120	ParDo *ParDoInstruction `json:"parDo,omitempty"`
4121
4122	// PartialGroupByKey: Additional information for PartialGroupByKey
4123	// instructions.
4124	PartialGroupByKey *PartialGroupByKeyInstruction `json:"partialGroupByKey,omitempty"`
4125
4126	// Read: Additional information for Read instructions.
4127	Read *ReadInstruction `json:"read,omitempty"`
4128
4129	// SystemName: System-defined name of this operation. Unique across the
4130	// workflow.
4131	SystemName string `json:"systemName,omitempty"`
4132
4133	// Write: Additional information for Write instructions.
4134	Write *WriteInstruction `json:"write,omitempty"`
4135
4136	// ForceSendFields is a list of field names (e.g. "Flatten") to
4137	// unconditionally include in API requests. By default, fields with
4138	// empty values are omitted from API requests. However, any non-pointer,
4139	// non-interface field appearing in ForceSendFields will be sent to the
4140	// server regardless of whether the field is empty or not. This may be
4141	// used to include empty fields in Patch requests.
4142	ForceSendFields []string `json:"-"`
4143
4144	// NullFields is a list of field names (e.g. "Flatten") to include in
4145	// API requests with the JSON null value. By default, fields with empty
4146	// values are omitted from API requests. However, any field with an
4147	// empty value appearing in NullFields will be sent to the server as
4148	// null. It is an error if a field in this list has a non-empty value.
4149	// This may be used to include null fields in Patch requests.
4150	NullFields []string `json:"-"`
4151}
4152
4153func (s *ParallelInstruction) MarshalJSON() ([]byte, error) {
4154	type NoMethod ParallelInstruction
4155	raw := NoMethod(*s)
4156	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4157}
4158
4159// Parameter: Structured data associated with this message.
4160type Parameter struct {
4161	// Key: Key or name for this parameter.
4162	Key string `json:"key,omitempty"`
4163
4164	// Value: Value for this parameter.
4165	Value interface{} `json:"value,omitempty"`
4166
4167	// ForceSendFields is a list of field names (e.g. "Key") to
4168	// unconditionally include in API requests. By default, fields with
4169	// empty values are omitted from API requests. However, any non-pointer,
4170	// non-interface field appearing in ForceSendFields will be sent to the
4171	// server regardless of whether the field is empty or not. This may be
4172	// used to include empty fields in Patch requests.
4173	ForceSendFields []string `json:"-"`
4174
4175	// NullFields is a list of field names (e.g. "Key") to include in API
4176	// requests with the JSON null value. By default, fields with empty
4177	// values are omitted from API requests. However, any field with an
4178	// empty value appearing in NullFields will be sent to the server as
4179	// null. It is an error if a field in this list has a non-empty value.
4180	// This may be used to include null fields in Patch requests.
4181	NullFields []string `json:"-"`
4182}
4183
4184func (s *Parameter) MarshalJSON() ([]byte, error) {
4185	type NoMethod Parameter
4186	raw := NoMethod(*s)
4187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4188}
4189
4190// ParameterMetadata: Metadata for a specific parameter.
4191type ParameterMetadata struct {
4192	// HelpText: Required. The help text to display for the parameter.
4193	HelpText string `json:"helpText,omitempty"`
4194
4195	// IsOptional: Optional. Whether the parameter is optional. Defaults to
4196	// false.
4197	IsOptional bool `json:"isOptional,omitempty"`
4198
4199	// Label: Required. The label to display for the parameter.
4200	Label string `json:"label,omitempty"`
4201
4202	// Name: Required. The name of the parameter.
4203	Name string `json:"name,omitempty"`
4204
4205	// ParamType: Optional. The type of the parameter. Used for selecting
4206	// input picker.
4207	//
4208	// Possible values:
4209	//   "DEFAULT" - Default input type.
4210	//   "TEXT" - The parameter specifies generic text input.
4211	//   "GCS_READ_BUCKET" - The parameter specifies a GCS Bucket to read
4212	// from.
4213	//   "GCS_WRITE_BUCKET" - The parameter specifies a GCS Bucket to write
4214	// to.
4215	//   "GCS_READ_FILE" - The parameter specifies a GCS file path to read
4216	// from.
4217	//   "GCS_WRITE_FILE" - The parameter specifies a GCS file path to write
4218	// to.
4219	//   "GCS_READ_FOLDER" - The parameter specifies a GCS folder path to
4220	// read from.
4221	//   "GCS_WRITE_FOLDER" - The parameter specifies a GCS folder to write
4222	// to.
4223	//   "PUBSUB_TOPIC" - The parameter specifies a Pub/Sub Topic.
4224	//   "PUBSUB_SUBSCRIPTION" - The parameter specifies a Pub/Sub
4225	// Subscription.
4226	ParamType string `json:"paramType,omitempty"`
4227
4228	// Regexes: Optional. Regexes that the parameter must match.
4229	Regexes []string `json:"regexes,omitempty"`
4230
4231	// ForceSendFields is a list of field names (e.g. "HelpText") to
4232	// unconditionally include in API requests. By default, fields with
4233	// empty values are omitted from API requests. However, any non-pointer,
4234	// non-interface field appearing in ForceSendFields will be sent to the
4235	// server regardless of whether the field is empty or not. This may be
4236	// used to include empty fields in Patch requests.
4237	ForceSendFields []string `json:"-"`
4238
4239	// NullFields is a list of field names (e.g. "HelpText") to include in
4240	// API requests with the JSON null value. By default, fields with empty
4241	// values are omitted from API requests. However, any field with an
4242	// empty value appearing in NullFields will be sent to the server as
4243	// null. It is an error if a field in this list has a non-empty value.
4244	// This may be used to include null fields in Patch requests.
4245	NullFields []string `json:"-"`
4246}
4247
4248func (s *ParameterMetadata) MarshalJSON() ([]byte, error) {
4249	type NoMethod ParameterMetadata
4250	raw := NoMethod(*s)
4251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4252}
4253
4254// PartialGroupByKeyInstruction: An instruction that does a partial
4255// group-by-key. One input and one output.
4256type PartialGroupByKeyInstruction struct {
4257	// Input: Describes the input to the partial group-by-key instruction.
4258	Input *InstructionInput `json:"input,omitempty"`
4259
4260	// InputElementCodec: The codec to use for interpreting an element in
4261	// the input PTable.
4262	InputElementCodec googleapi.RawMessage `json:"inputElementCodec,omitempty"`
4263
4264	// OriginalCombineValuesInputStoreName: If this instruction includes a
4265	// combining function this is the name of the intermediate store between
4266	// the GBK and the CombineValues.
4267	OriginalCombineValuesInputStoreName string `json:"originalCombineValuesInputStoreName,omitempty"`
4268
4269	// OriginalCombineValuesStepName: If this instruction includes a
4270	// combining function, this is the name of the CombineValues instruction
4271	// lifted into this instruction.
4272	OriginalCombineValuesStepName string `json:"originalCombineValuesStepName,omitempty"`
4273
4274	// SideInputs: Zero or more side inputs.
4275	SideInputs []*SideInputInfo `json:"sideInputs,omitempty"`
4276
4277	// ValueCombiningFn: The value combining function to invoke.
4278	ValueCombiningFn googleapi.RawMessage `json:"valueCombiningFn,omitempty"`
4279
4280	// ForceSendFields is a list of field names (e.g. "Input") to
4281	// unconditionally include in API requests. By default, fields with
4282	// empty values are omitted from API requests. However, any non-pointer,
4283	// non-interface field appearing in ForceSendFields will be sent to the
4284	// server regardless of whether the field is empty or not. This may be
4285	// used to include empty fields in Patch requests.
4286	ForceSendFields []string `json:"-"`
4287
4288	// NullFields is a list of field names (e.g. "Input") to include in API
4289	// requests with the JSON null value. By default, fields with empty
4290	// values are omitted from API requests. However, any field with an
4291	// empty value appearing in NullFields will be sent to the server as
4292	// null. It is an error if a field in this list has a non-empty value.
4293	// This may be used to include null fields in Patch requests.
4294	NullFields []string `json:"-"`
4295}
4296
4297func (s *PartialGroupByKeyInstruction) MarshalJSON() ([]byte, error) {
4298	type NoMethod PartialGroupByKeyInstruction
4299	raw := NoMethod(*s)
4300	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4301}
4302
4303// PipelineDescription: A descriptive representation of submitted
4304// pipeline as well as the executed form. This data is provided by the
4305// Dataflow service for ease of visualizing the pipeline and
4306// interpreting Dataflow provided metrics.
4307type PipelineDescription struct {
4308	// DisplayData: Pipeline level display data.
4309	DisplayData []*DisplayData `json:"displayData,omitempty"`
4310
4311	// ExecutionPipelineStage: Description of each stage of execution of the
4312	// pipeline.
4313	ExecutionPipelineStage []*ExecutionStageSummary `json:"executionPipelineStage,omitempty"`
4314
4315	// OriginalPipelineTransform: Description of each transform in the
4316	// pipeline and collections between them.
4317	OriginalPipelineTransform []*TransformSummary `json:"originalPipelineTransform,omitempty"`
4318
4319	// ForceSendFields is a list of field names (e.g. "DisplayData") to
4320	// unconditionally include in API requests. By default, fields with
4321	// empty values are omitted from API requests. However, any non-pointer,
4322	// non-interface field appearing in ForceSendFields will be sent to the
4323	// server regardless of whether the field is empty or not. This may be
4324	// used to include empty fields in Patch requests.
4325	ForceSendFields []string `json:"-"`
4326
4327	// NullFields is a list of field names (e.g. "DisplayData") to include
4328	// in API requests with the JSON null value. By default, fields with
4329	// empty values are omitted from API requests. However, any field with
4330	// an empty value appearing in NullFields will be sent to the server as
4331	// null. It is an error if a field in this list has a non-empty value.
4332	// This may be used to include null fields in Patch requests.
4333	NullFields []string `json:"-"`
4334}
4335
4336func (s *PipelineDescription) MarshalJSON() ([]byte, error) {
4337	type NoMethod PipelineDescription
4338	raw := NoMethod(*s)
4339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4340}
4341
4342// Point: A point in the timeseries.
4343type Point struct {
4344	// Time: The timestamp of the point.
4345	Time string `json:"time,omitempty"`
4346
4347	// Value: The value of the point.
4348	Value float64 `json:"value,omitempty"`
4349
4350	// ForceSendFields is a list of field names (e.g. "Time") to
4351	// unconditionally include in API requests. By default, fields with
4352	// empty values are omitted from API requests. However, any non-pointer,
4353	// non-interface field appearing in ForceSendFields will be sent to the
4354	// server regardless of whether the field is empty or not. This may be
4355	// used to include empty fields in Patch requests.
4356	ForceSendFields []string `json:"-"`
4357
4358	// NullFields is a list of field names (e.g. "Time") to include in API
4359	// requests with the JSON null value. By default, fields with empty
4360	// values are omitted from API requests. However, any field with an
4361	// empty value appearing in NullFields will be sent to the server as
4362	// null. It is an error if a field in this list has a non-empty value.
4363	// This may be used to include null fields in Patch requests.
4364	NullFields []string `json:"-"`
4365}
4366
4367func (s *Point) MarshalJSON() ([]byte, error) {
4368	type NoMethod Point
4369	raw := NoMethod(*s)
4370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4371}
4372
4373func (s *Point) UnmarshalJSON(data []byte) error {
4374	type NoMethod Point
4375	var s1 struct {
4376		Value gensupport.JSONFloat64 `json:"value"`
4377		*NoMethod
4378	}
4379	s1.NoMethod = (*NoMethod)(s)
4380	if err := json.Unmarshal(data, &s1); err != nil {
4381		return err
4382	}
4383	s.Value = float64(s1.Value)
4384	return nil
4385}
4386
4387// Position: Position defines a position within a collection of data.
4388// The value can be either the end position, a key (used with ordered
4389// collections), a byte offset, or a record index.
4390type Position struct {
4391	// ByteOffset: Position is a byte offset.
4392	ByteOffset int64 `json:"byteOffset,omitempty,string"`
4393
4394	// ConcatPosition: CloudPosition is a concat position.
4395	ConcatPosition *ConcatPosition `json:"concatPosition,omitempty"`
4396
4397	// End: Position is past all other positions. Also useful for the end
4398	// position of an unbounded range.
4399	End bool `json:"end,omitempty"`
4400
4401	// Key: Position is a string key, ordered lexicographically.
4402	Key string `json:"key,omitempty"`
4403
4404	// RecordIndex: Position is a record index.
4405	RecordIndex int64 `json:"recordIndex,omitempty,string"`
4406
4407	// ShufflePosition: CloudPosition is a base64 encoded
4408	// BatchShufflePosition (with FIXED sharding).
4409	ShufflePosition string `json:"shufflePosition,omitempty"`
4410
4411	// ForceSendFields is a list of field names (e.g. "ByteOffset") to
4412	// unconditionally include in API requests. By default, fields with
4413	// empty values are omitted from API requests. However, any non-pointer,
4414	// non-interface field appearing in ForceSendFields will be sent to the
4415	// server regardless of whether the field is empty or not. This may be
4416	// used to include empty fields in Patch requests.
4417	ForceSendFields []string `json:"-"`
4418
4419	// NullFields is a list of field names (e.g. "ByteOffset") to include in
4420	// API requests with the JSON null value. By default, fields with empty
4421	// values are omitted from API requests. However, any field with an
4422	// empty value appearing in NullFields will be sent to the server as
4423	// null. It is an error if a field in this list has a non-empty value.
4424	// This may be used to include null fields in Patch requests.
4425	NullFields []string `json:"-"`
4426}
4427
4428func (s *Position) MarshalJSON() ([]byte, error) {
4429	type NoMethod Position
4430	raw := NoMethod(*s)
4431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4432}
4433
4434// ProgressTimeseries: Information about the progress of some component
4435// of job execution.
4436type ProgressTimeseries struct {
4437	// CurrentProgress: The current progress of the component, in the range
4438	// [0,1].
4439	CurrentProgress float64 `json:"currentProgress,omitempty"`
4440
4441	// DataPoints: History of progress for the component. Points are sorted
4442	// by time.
4443	DataPoints []*Point `json:"dataPoints,omitempty"`
4444
4445	// ForceSendFields is a list of field names (e.g. "CurrentProgress") to
4446	// unconditionally include in API requests. By default, fields with
4447	// empty values are omitted from API requests. However, any non-pointer,
4448	// non-interface field appearing in ForceSendFields will be sent to the
4449	// server regardless of whether the field is empty or not. This may be
4450	// used to include empty fields in Patch requests.
4451	ForceSendFields []string `json:"-"`
4452
4453	// NullFields is a list of field names (e.g. "CurrentProgress") to
4454	// include in API requests with the JSON null value. By default, fields
4455	// with empty values are omitted from API requests. However, any field
4456	// with an empty value appearing in NullFields will be sent to the
4457	// server as null. It is an error if a field in this list has a
4458	// non-empty value. This may be used to include null fields in Patch
4459	// requests.
4460	NullFields []string `json:"-"`
4461}
4462
4463func (s *ProgressTimeseries) MarshalJSON() ([]byte, error) {
4464	type NoMethod ProgressTimeseries
4465	raw := NoMethod(*s)
4466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4467}
4468
4469func (s *ProgressTimeseries) UnmarshalJSON(data []byte) error {
4470	type NoMethod ProgressTimeseries
4471	var s1 struct {
4472		CurrentProgress gensupport.JSONFloat64 `json:"currentProgress"`
4473		*NoMethod
4474	}
4475	s1.NoMethod = (*NoMethod)(s)
4476	if err := json.Unmarshal(data, &s1); err != nil {
4477		return err
4478	}
4479	s.CurrentProgress = float64(s1.CurrentProgress)
4480	return nil
4481}
4482
4483// PubSubIODetails: Metadata for a PubSub connector used by the job.
4484type PubSubIODetails struct {
4485	// Subscription: Subscription used in the connection.
4486	Subscription string `json:"subscription,omitempty"`
4487
4488	// Topic: Topic accessed in the connection.
4489	Topic string `json:"topic,omitempty"`
4490
4491	// ForceSendFields is a list of field names (e.g. "Subscription") to
4492	// unconditionally include in API requests. By default, fields with
4493	// empty values are omitted from API requests. However, any non-pointer,
4494	// non-interface field appearing in ForceSendFields will be sent to the
4495	// server regardless of whether the field is empty or not. This may be
4496	// used to include empty fields in Patch requests.
4497	ForceSendFields []string `json:"-"`
4498
4499	// NullFields is a list of field names (e.g. "Subscription") to include
4500	// in API requests with the JSON null value. By default, fields with
4501	// empty values are omitted from API requests. However, any field with
4502	// an empty value appearing in NullFields will be sent to the server as
4503	// null. It is an error if a field in this list has a non-empty value.
4504	// This may be used to include null fields in Patch requests.
4505	NullFields []string `json:"-"`
4506}
4507
4508func (s *PubSubIODetails) MarshalJSON() ([]byte, error) {
4509	type NoMethod PubSubIODetails
4510	raw := NoMethod(*s)
4511	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4512}
4513
4514// PubsubLocation: Identifies a pubsub location to use for transferring
4515// data into or out of a streaming Dataflow job.
4516type PubsubLocation struct {
4517	// DropLateData: Indicates whether the pipeline allows late-arriving
4518	// data.
4519	DropLateData bool `json:"dropLateData,omitempty"`
4520
4521	// IdLabel: If set, contains a pubsub label from which to extract record
4522	// ids. If left empty, record deduplication will be strictly best
4523	// effort.
4524	IdLabel string `json:"idLabel,omitempty"`
4525
4526	// Subscription: A pubsub subscription, in the form of
4527	// "pubsub.googleapis.com/subscriptions//"
4528	Subscription string `json:"subscription,omitempty"`
4529
4530	// TimestampLabel: If set, contains a pubsub label from which to extract
4531	// record timestamps. If left empty, record timestamps will be generated
4532	// upon arrival.
4533	TimestampLabel string `json:"timestampLabel,omitempty"`
4534
4535	// Topic: A pubsub topic, in the form of
4536	// "pubsub.googleapis.com/topics//"
4537	Topic string `json:"topic,omitempty"`
4538
4539	// TrackingSubscription: If set, specifies the pubsub subscription that
4540	// will be used for tracking custom time timestamps for watermark
4541	// estimation.
4542	TrackingSubscription string `json:"trackingSubscription,omitempty"`
4543
4544	// WithAttributes: If true, then the client has requested to get pubsub
4545	// attributes.
4546	WithAttributes bool `json:"withAttributes,omitempty"`
4547
4548	// ForceSendFields is a list of field names (e.g. "DropLateData") to
4549	// unconditionally include in API requests. By default, fields with
4550	// empty values are omitted from API requests. However, any non-pointer,
4551	// non-interface field appearing in ForceSendFields will be sent to the
4552	// server regardless of whether the field is empty or not. This may be
4553	// used to include empty fields in Patch requests.
4554	ForceSendFields []string `json:"-"`
4555
4556	// NullFields is a list of field names (e.g. "DropLateData") to include
4557	// in API requests with the JSON null value. By default, fields with
4558	// empty values are omitted from API requests. However, any field with
4559	// an empty value appearing in NullFields will be sent to the server as
4560	// null. It is an error if a field in this list has a non-empty value.
4561	// This may be used to include null fields in Patch requests.
4562	NullFields []string `json:"-"`
4563}
4564
4565func (s *PubsubLocation) MarshalJSON() ([]byte, error) {
4566	type NoMethod PubsubLocation
4567	raw := NoMethod(*s)
4568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4569}
4570
4571// PubsubSnapshotMetadata: Represents a Pubsub snapshot.
4572type PubsubSnapshotMetadata struct {
4573	// ExpireTime: The expire time of the Pubsub snapshot.
4574	ExpireTime string `json:"expireTime,omitempty"`
4575
4576	// SnapshotName: The name of the Pubsub snapshot.
4577	SnapshotName string `json:"snapshotName,omitempty"`
4578
4579	// TopicName: The name of the Pubsub topic.
4580	TopicName string `json:"topicName,omitempty"`
4581
4582	// ForceSendFields is a list of field names (e.g. "ExpireTime") to
4583	// unconditionally include in API requests. By default, fields with
4584	// empty values are omitted from API requests. However, any non-pointer,
4585	// non-interface field appearing in ForceSendFields will be sent to the
4586	// server regardless of whether the field is empty or not. This may be
4587	// used to include empty fields in Patch requests.
4588	ForceSendFields []string `json:"-"`
4589
4590	// NullFields is a list of field names (e.g. "ExpireTime") to include in
4591	// API requests with the JSON null value. By default, fields with empty
4592	// values are omitted from API requests. However, any field with an
4593	// empty value appearing in NullFields will be sent to the server as
4594	// null. It is an error if a field in this list has a non-empty value.
4595	// This may be used to include null fields in Patch requests.
4596	NullFields []string `json:"-"`
4597}
4598
4599func (s *PubsubSnapshotMetadata) MarshalJSON() ([]byte, error) {
4600	type NoMethod PubsubSnapshotMetadata
4601	raw := NoMethod(*s)
4602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4603}
4604
4605// QueryInfo: Information about a validated query.
4606type QueryInfo struct {
4607	// QueryProperty: Includes an entry for each satisfied QueryProperty.
4608	//
4609	// Possible values:
4610	//   "QUERY_PROPERTY_UNSPECIFIED" - The query property is unknown or
4611	// unspecified.
4612	//   "HAS_UNBOUNDED_SOURCE" - Indicates this query reads from >= 1
4613	// unbounded source.
4614	QueryProperty []string `json:"queryProperty,omitempty"`
4615
4616	// ForceSendFields is a list of field names (e.g. "QueryProperty") to
4617	// unconditionally include in API requests. By default, fields with
4618	// empty values are omitted from API requests. However, any non-pointer,
4619	// non-interface field appearing in ForceSendFields will be sent to the
4620	// server regardless of whether the field is empty or not. This may be
4621	// used to include empty fields in Patch requests.
4622	ForceSendFields []string `json:"-"`
4623
4624	// NullFields is a list of field names (e.g. "QueryProperty") to include
4625	// in API requests with the JSON null value. By default, fields with
4626	// empty values are omitted from API requests. However, any field with
4627	// an empty value appearing in NullFields will be sent to the server as
4628	// null. It is an error if a field in this list has a non-empty value.
4629	// This may be used to include null fields in Patch requests.
4630	NullFields []string `json:"-"`
4631}
4632
4633func (s *QueryInfo) MarshalJSON() ([]byte, error) {
4634	type NoMethod QueryInfo
4635	raw := NoMethod(*s)
4636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4637}
4638
4639// ReadInstruction: An instruction that reads records. Takes no inputs,
4640// produces one output.
4641type ReadInstruction struct {
4642	// Source: The source to read from.
4643	Source *Source `json:"source,omitempty"`
4644
4645	// ForceSendFields is a list of field names (e.g. "Source") to
4646	// unconditionally include in API requests. By default, fields with
4647	// empty values are omitted from API requests. However, any non-pointer,
4648	// non-interface field appearing in ForceSendFields will be sent to the
4649	// server regardless of whether the field is empty or not. This may be
4650	// used to include empty fields in Patch requests.
4651	ForceSendFields []string `json:"-"`
4652
4653	// NullFields is a list of field names (e.g. "Source") to include in API
4654	// requests with the JSON null value. By default, fields with empty
4655	// values are omitted from API requests. However, any field with an
4656	// empty value appearing in NullFields will be sent to the server as
4657	// null. It is an error if a field in this list has a non-empty value.
4658	// This may be used to include null fields in Patch requests.
4659	NullFields []string `json:"-"`
4660}
4661
4662func (s *ReadInstruction) MarshalJSON() ([]byte, error) {
4663	type NoMethod ReadInstruction
4664	raw := NoMethod(*s)
4665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4666}
4667
4668// ReportWorkItemStatusRequest: Request to report the status of
4669// WorkItems.
4670type ReportWorkItemStatusRequest struct {
4671	// CurrentWorkerTime: The current timestamp at the worker.
4672	CurrentWorkerTime string `json:"currentWorkerTime,omitempty"`
4673
4674	// Location: The [regional endpoint]
4675	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
4676	// that contains the WorkItem's job.
4677	Location string `json:"location,omitempty"`
4678
4679	// UnifiedWorkerRequest: Untranslated bag-of-bytes
4680	// WorkProgressUpdateRequest from UnifiedWorker.
4681	UnifiedWorkerRequest googleapi.RawMessage `json:"unifiedWorkerRequest,omitempty"`
4682
4683	// WorkItemStatuses: The order is unimportant, except that the order of
4684	// the WorkItemServiceState messages in the ReportWorkItemStatusResponse
4685	// corresponds to the order of WorkItemStatus messages here.
4686	WorkItemStatuses []*WorkItemStatus `json:"workItemStatuses,omitempty"`
4687
4688	// WorkerId: The ID of the worker reporting the WorkItem status. If this
4689	// does not match the ID of the worker which the Dataflow service
4690	// believes currently has the lease on the WorkItem, the report will be
4691	// dropped (with an error response).
4692	WorkerId string `json:"workerId,omitempty"`
4693
4694	// ForceSendFields is a list of field names (e.g. "CurrentWorkerTime")
4695	// to unconditionally include in API requests. By default, fields with
4696	// empty values are omitted from API requests. However, any non-pointer,
4697	// non-interface field appearing in ForceSendFields will be sent to the
4698	// server regardless of whether the field is empty or not. This may be
4699	// used to include empty fields in Patch requests.
4700	ForceSendFields []string `json:"-"`
4701
4702	// NullFields is a list of field names (e.g. "CurrentWorkerTime") to
4703	// include in API requests with the JSON null value. By default, fields
4704	// with empty values are omitted from API requests. However, any field
4705	// with an empty value appearing in NullFields will be sent to the
4706	// server as null. It is an error if a field in this list has a
4707	// non-empty value. This may be used to include null fields in Patch
4708	// requests.
4709	NullFields []string `json:"-"`
4710}
4711
4712func (s *ReportWorkItemStatusRequest) MarshalJSON() ([]byte, error) {
4713	type NoMethod ReportWorkItemStatusRequest
4714	raw := NoMethod(*s)
4715	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4716}
4717
4718// ReportWorkItemStatusResponse: Response from a request to report the
4719// status of WorkItems.
4720type ReportWorkItemStatusResponse struct {
4721	// UnifiedWorkerResponse: Untranslated bag-of-bytes
4722	// WorkProgressUpdateResponse for UnifiedWorker.
4723	UnifiedWorkerResponse googleapi.RawMessage `json:"unifiedWorkerResponse,omitempty"`
4724
4725	// WorkItemServiceStates: A set of messages indicating the service-side
4726	// state for each WorkItem whose status was reported, in the same order
4727	// as the WorkItemStatus messages in the ReportWorkItemStatusRequest
4728	// which resulting in this response.
4729	WorkItemServiceStates []*WorkItemServiceState `json:"workItemServiceStates,omitempty"`
4730
4731	// ServerResponse contains the HTTP response code and headers from the
4732	// server.
4733	googleapi.ServerResponse `json:"-"`
4734
4735	// ForceSendFields is a list of field names (e.g.
4736	// "UnifiedWorkerResponse") to unconditionally include in API requests.
4737	// By default, fields with empty values are omitted from API requests.
4738	// However, any non-pointer, non-interface field appearing in
4739	// ForceSendFields will be sent to the server regardless of whether the
4740	// field is empty or not. This may be used to include empty fields in
4741	// Patch requests.
4742	ForceSendFields []string `json:"-"`
4743
4744	// NullFields is a list of field names (e.g. "UnifiedWorkerResponse") to
4745	// include in API requests with the JSON null value. By default, fields
4746	// with empty values are omitted from API requests. However, any field
4747	// with an empty value appearing in NullFields will be sent to the
4748	// server as null. It is an error if a field in this list has a
4749	// non-empty value. This may be used to include null fields in Patch
4750	// requests.
4751	NullFields []string `json:"-"`
4752}
4753
4754func (s *ReportWorkItemStatusResponse) MarshalJSON() ([]byte, error) {
4755	type NoMethod ReportWorkItemStatusResponse
4756	raw := NoMethod(*s)
4757	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4758}
4759
4760// ReportedParallelism: Represents the level of parallelism in a
4761// WorkItem's input, reported by the worker.
4762type ReportedParallelism struct {
4763	// IsInfinite: Specifies whether the parallelism is infinite. If true,
4764	// "value" is ignored. Infinite parallelism means the service will
4765	// assume that the work item can always be split into more non-empty
4766	// work items by dynamic splitting. This is a work-around for lack of
4767	// support for infinity by the current JSON-based Java RPC stack.
4768	IsInfinite bool `json:"isInfinite,omitempty"`
4769
4770	// Value: Specifies the level of parallelism in case it is finite.
4771	Value float64 `json:"value,omitempty"`
4772
4773	// ForceSendFields is a list of field names (e.g. "IsInfinite") to
4774	// unconditionally include in API requests. By default, fields with
4775	// empty values are omitted from API requests. However, any non-pointer,
4776	// non-interface field appearing in ForceSendFields will be sent to the
4777	// server regardless of whether the field is empty or not. This may be
4778	// used to include empty fields in Patch requests.
4779	ForceSendFields []string `json:"-"`
4780
4781	// NullFields is a list of field names (e.g. "IsInfinite") to include in
4782	// API requests with the JSON null value. By default, fields with empty
4783	// values are omitted from API requests. However, any field with an
4784	// empty value appearing in NullFields will be sent to the server as
4785	// null. It is an error if a field in this list has a non-empty value.
4786	// This may be used to include null fields in Patch requests.
4787	NullFields []string `json:"-"`
4788}
4789
4790func (s *ReportedParallelism) MarshalJSON() ([]byte, error) {
4791	type NoMethod ReportedParallelism
4792	raw := NoMethod(*s)
4793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4794}
4795
4796func (s *ReportedParallelism) UnmarshalJSON(data []byte) error {
4797	type NoMethod ReportedParallelism
4798	var s1 struct {
4799		Value gensupport.JSONFloat64 `json:"value"`
4800		*NoMethod
4801	}
4802	s1.NoMethod = (*NoMethod)(s)
4803	if err := json.Unmarshal(data, &s1); err != nil {
4804		return err
4805	}
4806	s.Value = float64(s1.Value)
4807	return nil
4808}
4809
4810// ResourceUtilizationReport: Worker metrics exported from workers. This
4811// contains resource utilization metrics accumulated from a variety of
4812// sources. For more information, see go/df-resource-signals.
4813type ResourceUtilizationReport struct {
4814	// Containers: Per container information. Key: container name.
4815	Containers map[string]ResourceUtilizationReport `json:"containers,omitempty"`
4816
4817	// CpuTime: CPU utilization samples.
4818	CpuTime []*CPUTime `json:"cpuTime,omitempty"`
4819
4820	// MemoryInfo: Memory utilization samples.
4821	MemoryInfo []*MemInfo `json:"memoryInfo,omitempty"`
4822
4823	// ForceSendFields is a list of field names (e.g. "Containers") to
4824	// unconditionally include in API requests. By default, fields with
4825	// empty values are omitted from API requests. However, any non-pointer,
4826	// non-interface field appearing in ForceSendFields will be sent to the
4827	// server regardless of whether the field is empty or not. This may be
4828	// used to include empty fields in Patch requests.
4829	ForceSendFields []string `json:"-"`
4830
4831	// NullFields is a list of field names (e.g. "Containers") to include in
4832	// API requests with the JSON null value. By default, fields with empty
4833	// values are omitted from API requests. However, any field with an
4834	// empty value appearing in NullFields will be sent to the server as
4835	// null. It is an error if a field in this list has a non-empty value.
4836	// This may be used to include null fields in Patch requests.
4837	NullFields []string `json:"-"`
4838}
4839
4840func (s *ResourceUtilizationReport) MarshalJSON() ([]byte, error) {
4841	type NoMethod ResourceUtilizationReport
4842	raw := NoMethod(*s)
4843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4844}
4845
4846// ResourceUtilizationReportResponse: Service-side response to
4847// WorkerMessage reporting resource utilization.
4848type ResourceUtilizationReportResponse struct {
4849}
4850
4851// RuntimeEnvironment: The environment values to set at runtime.
4852type RuntimeEnvironment struct {
4853	// AdditionalExperiments: Additional experiment flags for the job.
4854	AdditionalExperiments []string `json:"additionalExperiments,omitempty"`
4855
4856	// AdditionalUserLabels: Additional user labels to be specified for the
4857	// job. Keys and values should follow the restrictions specified in the
4858	// labeling restrictions
4859	// (https://cloud.google.com/compute/docs/labeling-resources#restrictions)
4860	// page. An object containing a list of "key": value pairs. Example: {
4861	// "name": "wrench", "mass": "1kg", "count": "3" }.
4862	AdditionalUserLabels map[string]string `json:"additionalUserLabels,omitempty"`
4863
4864	// BypassTempDirValidation: Whether to bypass the safety checks for the
4865	// job's temporary directory. Use with caution.
4866	BypassTempDirValidation bool `json:"bypassTempDirValidation,omitempty"`
4867
4868	// EnableStreamingEngine: Whether to enable Streaming Engine for the
4869	// job.
4870	EnableStreamingEngine bool `json:"enableStreamingEngine,omitempty"`
4871
4872	// IpConfiguration: Configuration for VM IPs.
4873	//
4874	// Possible values:
4875	//   "WORKER_IP_UNSPECIFIED" - The configuration is unknown, or
4876	// unspecified.
4877	//   "WORKER_IP_PUBLIC" - Workers should have public IP addresses.
4878	//   "WORKER_IP_PRIVATE" - Workers should have private IP addresses.
4879	IpConfiguration string `json:"ipConfiguration,omitempty"`
4880
4881	// KmsKeyName: Name for the Cloud KMS key for the job. Key format is:
4882	// projects//locations//keyRings//cryptoKeys/
4883	KmsKeyName string `json:"kmsKeyName,omitempty"`
4884
4885	// MachineType: The machine type to use for the job. Defaults to the
4886	// value from the template if not specified.
4887	MachineType string `json:"machineType,omitempty"`
4888
4889	// MaxWorkers: The maximum number of Google Compute Engine instances to
4890	// be made available to your pipeline during execution, from 1 to 1000.
4891	MaxWorkers int64 `json:"maxWorkers,omitempty"`
4892
4893	// Network: Network to which VMs will be assigned. If empty or
4894	// unspecified, the service will use the network "default".
4895	Network string `json:"network,omitempty"`
4896
4897	// NumWorkers: The initial number of Google Compute Engine instnaces for
4898	// the job.
4899	NumWorkers int64 `json:"numWorkers,omitempty"`
4900
4901	// ServiceAccountEmail: The email address of the service account to run
4902	// the job as.
4903	ServiceAccountEmail string `json:"serviceAccountEmail,omitempty"`
4904
4905	// Subnetwork: Subnetwork to which VMs will be assigned, if desired. You
4906	// can specify a subnetwork using either a complete URL or an
4907	// abbreviated path. Expected to be of the form
4908	// "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/region
4909	// s/REGION/subnetworks/SUBNETWORK" or
4910	// "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located
4911	// in a Shared VPC network, you must use the complete URL.
4912	Subnetwork string `json:"subnetwork,omitempty"`
4913
4914	// TempLocation: The Cloud Storage path to use for temporary files. Must
4915	// be a valid Cloud Storage URL, beginning with `gs://`.
4916	TempLocation string `json:"tempLocation,omitempty"`
4917
4918	// WorkerRegion: The Compute Engine region
4919	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
4920	// in which worker processing should occur, e.g. "us-west1". Mutually
4921	// exclusive with worker_zone. If neither worker_region nor worker_zone
4922	// is specified, default to the control plane's region.
4923	WorkerRegion string `json:"workerRegion,omitempty"`
4924
4925	// WorkerZone: The Compute Engine zone
4926	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
4927	// in which worker processing should occur, e.g. "us-west1-a". Mutually
4928	// exclusive with worker_region. If neither worker_region nor
4929	// worker_zone is specified, a zone in the control plane's region is
4930	// chosen based on available capacity. If both `worker_zone` and `zone`
4931	// are set, `worker_zone` takes precedence.
4932	WorkerZone string `json:"workerZone,omitempty"`
4933
4934	// Zone: The Compute Engine availability zone
4935	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
4936	// for launching worker instances to run your pipeline. In the future,
4937	// worker_zone will take precedence.
4938	Zone string `json:"zone,omitempty"`
4939
4940	// ForceSendFields is a list of field names (e.g.
4941	// "AdditionalExperiments") to unconditionally include in API requests.
4942	// By default, fields with empty values are omitted from API requests.
4943	// However, any non-pointer, non-interface field appearing in
4944	// ForceSendFields will be sent to the server regardless of whether the
4945	// field is empty or not. This may be used to include empty fields in
4946	// Patch requests.
4947	ForceSendFields []string `json:"-"`
4948
4949	// NullFields is a list of field names (e.g. "AdditionalExperiments") to
4950	// include in API requests with the JSON null value. By default, fields
4951	// with empty values are omitted from API requests. However, any field
4952	// with an empty value appearing in NullFields will be sent to the
4953	// server as null. It is an error if a field in this list has a
4954	// non-empty value. This may be used to include null fields in Patch
4955	// requests.
4956	NullFields []string `json:"-"`
4957}
4958
4959func (s *RuntimeEnvironment) MarshalJSON() ([]byte, error) {
4960	type NoMethod RuntimeEnvironment
4961	raw := NoMethod(*s)
4962	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4963}
4964
4965// RuntimeMetadata: RuntimeMetadata describing a runtime environment.
4966type RuntimeMetadata struct {
4967	// Parameters: The parameters for the template.
4968	Parameters []*ParameterMetadata `json:"parameters,omitempty"`
4969
4970	// SdkInfo: SDK Info for the template.
4971	SdkInfo *SDKInfo `json:"sdkInfo,omitempty"`
4972
4973	// ForceSendFields is a list of field names (e.g. "Parameters") to
4974	// unconditionally include in API requests. By default, fields with
4975	// empty values are omitted from API requests. However, any non-pointer,
4976	// non-interface field appearing in ForceSendFields will be sent to the
4977	// server regardless of whether the field is empty or not. This may be
4978	// used to include empty fields in Patch requests.
4979	ForceSendFields []string `json:"-"`
4980
4981	// NullFields is a list of field names (e.g. "Parameters") to include in
4982	// API requests with the JSON null value. By default, fields with empty
4983	// values are omitted from API requests. However, any field with an
4984	// empty value appearing in NullFields will be sent to the server as
4985	// null. It is an error if a field in this list has a non-empty value.
4986	// This may be used to include null fields in Patch requests.
4987	NullFields []string `json:"-"`
4988}
4989
4990func (s *RuntimeMetadata) MarshalJSON() ([]byte, error) {
4991	type NoMethod RuntimeMetadata
4992	raw := NoMethod(*s)
4993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4994}
4995
4996// SDKInfo: SDK Information.
4997type SDKInfo struct {
4998	// Language: Required. The SDK Language.
4999	//
5000	// Possible values:
5001	//   "UNKNOWN" - UNKNOWN Language.
5002	//   "JAVA" - Java.
5003	//   "PYTHON" - Python.
5004	Language string `json:"language,omitempty"`
5005
5006	// Version: Optional. The SDK version.
5007	Version string `json:"version,omitempty"`
5008
5009	// ForceSendFields is a list of field names (e.g. "Language") to
5010	// unconditionally include in API requests. By default, fields with
5011	// empty values are omitted from API requests. However, any non-pointer,
5012	// non-interface field appearing in ForceSendFields will be sent to the
5013	// server regardless of whether the field is empty or not. This may be
5014	// used to include empty fields in Patch requests.
5015	ForceSendFields []string `json:"-"`
5016
5017	// NullFields is a list of field names (e.g. "Language") to include in
5018	// API requests with the JSON null value. By default, fields with empty
5019	// values are omitted from API requests. However, any field with an
5020	// empty value appearing in NullFields will be sent to the server as
5021	// null. It is an error if a field in this list has a non-empty value.
5022	// This may be used to include null fields in Patch requests.
5023	NullFields []string `json:"-"`
5024}
5025
5026func (s *SDKInfo) MarshalJSON() ([]byte, error) {
5027	type NoMethod SDKInfo
5028	raw := NoMethod(*s)
5029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5030}
5031
5032// SdkHarnessContainerImage: Defines a SDK harness container for
5033// executing Dataflow pipelines.
5034type SdkHarnessContainerImage struct {
5035	// ContainerImage: A docker container image that resides in Google
5036	// Container Registry.
5037	ContainerImage string `json:"containerImage,omitempty"`
5038
5039	// EnvironmentId: Environment ID for the Beam runner API proto
5040	// Environment that corresponds to the current SDK Harness.
5041	EnvironmentId string `json:"environmentId,omitempty"`
5042
5043	// UseSingleCorePerContainer: If true, recommends the Dataflow service
5044	// to use only one core per SDK container instance with this image. If
5045	// false (or unset) recommends using more than one core per SDK
5046	// container instance with this image for efficiency. Note that Dataflow
5047	// service may choose to override this property if needed.
5048	UseSingleCorePerContainer bool `json:"useSingleCorePerContainer,omitempty"`
5049
5050	// ForceSendFields is a list of field names (e.g. "ContainerImage") to
5051	// unconditionally include in API requests. By default, fields with
5052	// empty values are omitted from API requests. However, any non-pointer,
5053	// non-interface field appearing in ForceSendFields will be sent to the
5054	// server regardless of whether the field is empty or not. This may be
5055	// used to include empty fields in Patch requests.
5056	ForceSendFields []string `json:"-"`
5057
5058	// NullFields is a list of field names (e.g. "ContainerImage") to
5059	// include in API requests with the JSON null value. By default, fields
5060	// with empty values are omitted from API requests. However, any field
5061	// with an empty value appearing in NullFields will be sent to the
5062	// server as null. It is an error if a field in this list has a
5063	// non-empty value. This may be used to include null fields in Patch
5064	// requests.
5065	NullFields []string `json:"-"`
5066}
5067
5068func (s *SdkHarnessContainerImage) MarshalJSON() ([]byte, error) {
5069	type NoMethod SdkHarnessContainerImage
5070	raw := NoMethod(*s)
5071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5072}
5073
5074// SdkVersion: The version of the SDK used to run the job.
5075type SdkVersion struct {
5076	// SdkSupportStatus: The support status for this SDK version.
5077	//
5078	// Possible values:
5079	//   "UNKNOWN" - Cloud Dataflow is unaware of this version.
5080	//   "SUPPORTED" - This is a known version of an SDK, and is supported.
5081	//   "STALE" - A newer version of the SDK family exists, and an update
5082	// is recommended.
5083	//   "DEPRECATED" - This version of the SDK is deprecated and will
5084	// eventually be no longer supported.
5085	//   "UNSUPPORTED" - Support for this SDK version has ended and it
5086	// should no longer be used.
5087	SdkSupportStatus string `json:"sdkSupportStatus,omitempty"`
5088
5089	// Version: The version of the SDK used to run the job.
5090	Version string `json:"version,omitempty"`
5091
5092	// VersionDisplayName: A readable string describing the version of the
5093	// SDK.
5094	VersionDisplayName string `json:"versionDisplayName,omitempty"`
5095
5096	// ForceSendFields is a list of field names (e.g. "SdkSupportStatus") to
5097	// unconditionally include in API requests. By default, fields with
5098	// empty values are omitted from API requests. However, any non-pointer,
5099	// non-interface field appearing in ForceSendFields will be sent to the
5100	// server regardless of whether the field is empty or not. This may be
5101	// used to include empty fields in Patch requests.
5102	ForceSendFields []string `json:"-"`
5103
5104	// NullFields is a list of field names (e.g. "SdkSupportStatus") to
5105	// include in API requests with the JSON null value. By default, fields
5106	// with empty values are omitted from API requests. However, any field
5107	// with an empty value appearing in NullFields will be sent to the
5108	// server as null. It is an error if a field in this list has a
5109	// non-empty value. This may be used to include null fields in Patch
5110	// requests.
5111	NullFields []string `json:"-"`
5112}
5113
5114func (s *SdkVersion) MarshalJSON() ([]byte, error) {
5115	type NoMethod SdkVersion
5116	raw := NoMethod(*s)
5117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5118}
5119
5120// SendDebugCaptureRequest: Request to send encoded debug information.
5121type SendDebugCaptureRequest struct {
5122	// ComponentId: The internal component id for which debug information is
5123	// sent.
5124	ComponentId string `json:"componentId,omitempty"`
5125
5126	// Data: The encoded debug information.
5127	Data string `json:"data,omitempty"`
5128
5129	// Location: The [regional endpoint]
5130	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
5131	// that contains the job specified by job_id.
5132	Location string `json:"location,omitempty"`
5133
5134	// WorkerId: The worker id, i.e., VM hostname.
5135	WorkerId string `json:"workerId,omitempty"`
5136
5137	// ForceSendFields is a list of field names (e.g. "ComponentId") to
5138	// unconditionally include in API requests. By default, fields with
5139	// empty values are omitted from API requests. However, any non-pointer,
5140	// non-interface field appearing in ForceSendFields will be sent to the
5141	// server regardless of whether the field is empty or not. This may be
5142	// used to include empty fields in Patch requests.
5143	ForceSendFields []string `json:"-"`
5144
5145	// NullFields is a list of field names (e.g. "ComponentId") to include
5146	// in API requests with the JSON null value. By default, fields with
5147	// empty values are omitted from API requests. However, any field with
5148	// an empty value appearing in NullFields will be sent to the server as
5149	// null. It is an error if a field in this list has a non-empty value.
5150	// This may be used to include null fields in Patch requests.
5151	NullFields []string `json:"-"`
5152}
5153
5154func (s *SendDebugCaptureRequest) MarshalJSON() ([]byte, error) {
5155	type NoMethod SendDebugCaptureRequest
5156	raw := NoMethod(*s)
5157	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5158}
5159
5160// SendDebugCaptureResponse: Response to a send capture request. nothing
5161type SendDebugCaptureResponse struct {
5162	// ServerResponse contains the HTTP response code and headers from the
5163	// server.
5164	googleapi.ServerResponse `json:"-"`
5165}
5166
5167// SendWorkerMessagesRequest: A request for sending worker messages to
5168// the service.
5169type SendWorkerMessagesRequest struct {
5170	// Location: The [regional endpoint]
5171	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
5172	// that contains the job.
5173	Location string `json:"location,omitempty"`
5174
5175	// WorkerMessages: The WorkerMessages to send.
5176	WorkerMessages []*WorkerMessage `json:"workerMessages,omitempty"`
5177
5178	// ForceSendFields is a list of field names (e.g. "Location") to
5179	// unconditionally include in API requests. By default, fields with
5180	// empty values are omitted from API requests. However, any non-pointer,
5181	// non-interface field appearing in ForceSendFields will be sent to the
5182	// server regardless of whether the field is empty or not. This may be
5183	// used to include empty fields in Patch requests.
5184	ForceSendFields []string `json:"-"`
5185
5186	// NullFields is a list of field names (e.g. "Location") to include in
5187	// API requests with the JSON null value. By default, fields with empty
5188	// values are omitted from API requests. However, any field with an
5189	// empty value appearing in NullFields will be sent to the server as
5190	// null. It is an error if a field in this list has a non-empty value.
5191	// This may be used to include null fields in Patch requests.
5192	NullFields []string `json:"-"`
5193}
5194
5195func (s *SendWorkerMessagesRequest) MarshalJSON() ([]byte, error) {
5196	type NoMethod SendWorkerMessagesRequest
5197	raw := NoMethod(*s)
5198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5199}
5200
5201// SendWorkerMessagesResponse: The response to the worker messages.
5202type SendWorkerMessagesResponse struct {
5203	// WorkerMessageResponses: The servers response to the worker messages.
5204	WorkerMessageResponses []*WorkerMessageResponse `json:"workerMessageResponses,omitempty"`
5205
5206	// ServerResponse contains the HTTP response code and headers from the
5207	// server.
5208	googleapi.ServerResponse `json:"-"`
5209
5210	// ForceSendFields is a list of field names (e.g.
5211	// "WorkerMessageResponses") to unconditionally include in API requests.
5212	// By default, fields with empty values are omitted from API requests.
5213	// However, any non-pointer, non-interface field appearing in
5214	// ForceSendFields will be sent to the server regardless of whether the
5215	// field is empty or not. This may be used to include empty fields in
5216	// Patch requests.
5217	ForceSendFields []string `json:"-"`
5218
5219	// NullFields is a list of field names (e.g. "WorkerMessageResponses")
5220	// to include in API requests with the JSON null value. By default,
5221	// fields with empty values are omitted from API requests. However, any
5222	// field with an empty value appearing in NullFields will be sent to the
5223	// server as null. It is an error if a field in this list has a
5224	// non-empty value. This may be used to include null fields in Patch
5225	// requests.
5226	NullFields []string `json:"-"`
5227}
5228
5229func (s *SendWorkerMessagesResponse) MarshalJSON() ([]byte, error) {
5230	type NoMethod SendWorkerMessagesResponse
5231	raw := NoMethod(*s)
5232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5233}
5234
5235// SeqMapTask: Describes a particular function to invoke.
5236type SeqMapTask struct {
5237	// Inputs: Information about each of the inputs.
5238	Inputs []*SideInputInfo `json:"inputs,omitempty"`
5239
5240	// Name: The user-provided name of the SeqDo operation.
5241	Name string `json:"name,omitempty"`
5242
5243	// OutputInfos: Information about each of the outputs.
5244	OutputInfos []*SeqMapTaskOutputInfo `json:"outputInfos,omitempty"`
5245
5246	// StageName: System-defined name of the stage containing the SeqDo
5247	// operation. Unique across the workflow.
5248	StageName string `json:"stageName,omitempty"`
5249
5250	// SystemName: System-defined name of the SeqDo operation. Unique across
5251	// the workflow.
5252	SystemName string `json:"systemName,omitempty"`
5253
5254	// UserFn: The user function to invoke.
5255	UserFn googleapi.RawMessage `json:"userFn,omitempty"`
5256
5257	// ForceSendFields is a list of field names (e.g. "Inputs") to
5258	// unconditionally include in API requests. By default, fields with
5259	// empty values are omitted from API requests. However, any non-pointer,
5260	// non-interface field appearing in ForceSendFields will be sent to the
5261	// server regardless of whether the field is empty or not. This may be
5262	// used to include empty fields in Patch requests.
5263	ForceSendFields []string `json:"-"`
5264
5265	// NullFields is a list of field names (e.g. "Inputs") to include in API
5266	// requests with the JSON null value. By default, fields with empty
5267	// values are omitted from API requests. However, any field with an
5268	// empty value appearing in NullFields will be sent to the server as
5269	// null. It is an error if a field in this list has a non-empty value.
5270	// This may be used to include null fields in Patch requests.
5271	NullFields []string `json:"-"`
5272}
5273
5274func (s *SeqMapTask) MarshalJSON() ([]byte, error) {
5275	type NoMethod SeqMapTask
5276	raw := NoMethod(*s)
5277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5278}
5279
5280// SeqMapTaskOutputInfo: Information about an output of a SeqMapTask.
5281type SeqMapTaskOutputInfo struct {
5282	// Sink: The sink to write the output value to.
5283	Sink *Sink `json:"sink,omitempty"`
5284
5285	// Tag: The id of the TupleTag the user code will tag the output value
5286	// by.
5287	Tag string `json:"tag,omitempty"`
5288
5289	// ForceSendFields is a list of field names (e.g. "Sink") to
5290	// unconditionally include in API requests. By default, fields with
5291	// empty values are omitted from API requests. However, any non-pointer,
5292	// non-interface field appearing in ForceSendFields will be sent to the
5293	// server regardless of whether the field is empty or not. This may be
5294	// used to include empty fields in Patch requests.
5295	ForceSendFields []string `json:"-"`
5296
5297	// NullFields is a list of field names (e.g. "Sink") to include in API
5298	// requests with the JSON null value. By default, fields with empty
5299	// values are omitted from API requests. However, any field with an
5300	// empty value appearing in NullFields will be sent to the server as
5301	// null. It is an error if a field in this list has a non-empty value.
5302	// This may be used to include null fields in Patch requests.
5303	NullFields []string `json:"-"`
5304}
5305
5306func (s *SeqMapTaskOutputInfo) MarshalJSON() ([]byte, error) {
5307	type NoMethod SeqMapTaskOutputInfo
5308	raw := NoMethod(*s)
5309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5310}
5311
5312// ShellTask: A task which consists of a shell command for the worker to
5313// execute.
5314type ShellTask struct {
5315	// Command: The shell command to run.
5316	Command string `json:"command,omitempty"`
5317
5318	// ExitCode: Exit code for the task.
5319	ExitCode int64 `json:"exitCode,omitempty"`
5320
5321	// ForceSendFields is a list of field names (e.g. "Command") to
5322	// unconditionally include in API requests. By default, fields with
5323	// empty values are omitted from API requests. However, any non-pointer,
5324	// non-interface field appearing in ForceSendFields will be sent to the
5325	// server regardless of whether the field is empty or not. This may be
5326	// used to include empty fields in Patch requests.
5327	ForceSendFields []string `json:"-"`
5328
5329	// NullFields is a list of field names (e.g. "Command") to include in
5330	// API requests with the JSON null value. By default, fields with empty
5331	// values are omitted from API requests. However, any field with an
5332	// empty value appearing in NullFields will be sent to the server as
5333	// null. It is an error if a field in this list has a non-empty value.
5334	// This may be used to include null fields in Patch requests.
5335	NullFields []string `json:"-"`
5336}
5337
5338func (s *ShellTask) MarshalJSON() ([]byte, error) {
5339	type NoMethod ShellTask
5340	raw := NoMethod(*s)
5341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5342}
5343
5344// SideInputInfo: Information about a side input of a DoFn or an input
5345// of a SeqDoFn.
5346type SideInputInfo struct {
5347	// Kind: How to interpret the source element(s) as a side input value.
5348	Kind googleapi.RawMessage `json:"kind,omitempty"`
5349
5350	// Sources: The source(s) to read element(s) from to get the value of
5351	// this side input. If more than one source, then the elements are taken
5352	// from the sources, in the specified order if order matters. At least
5353	// one source is required.
5354	Sources []*Source `json:"sources,omitempty"`
5355
5356	// Tag: The id of the tag the user code will access this side input by;
5357	// this should correspond to the tag of some MultiOutputInfo.
5358	Tag string `json:"tag,omitempty"`
5359
5360	// ForceSendFields is a list of field names (e.g. "Kind") to
5361	// unconditionally include in API requests. By default, fields with
5362	// empty values are omitted from API requests. However, any non-pointer,
5363	// non-interface field appearing in ForceSendFields will be sent to the
5364	// server regardless of whether the field is empty or not. This may be
5365	// used to include empty fields in Patch requests.
5366	ForceSendFields []string `json:"-"`
5367
5368	// NullFields is a list of field names (e.g. "Kind") to include in API
5369	// requests with the JSON null value. By default, fields with empty
5370	// values are omitted from API requests. However, any field with an
5371	// empty value appearing in NullFields will be sent to the server as
5372	// null. It is an error if a field in this list has a non-empty value.
5373	// This may be used to include null fields in Patch requests.
5374	NullFields []string `json:"-"`
5375}
5376
5377func (s *SideInputInfo) MarshalJSON() ([]byte, error) {
5378	type NoMethod SideInputInfo
5379	raw := NoMethod(*s)
5380	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5381}
5382
5383// Sink: A sink that records can be encoded and written to.
5384type Sink struct {
5385	// Codec: The codec to use to encode data written to the sink.
5386	Codec googleapi.RawMessage `json:"codec,omitempty"`
5387
5388	// Spec: The sink to write to, plus its parameters.
5389	Spec googleapi.RawMessage `json:"spec,omitempty"`
5390
5391	// ForceSendFields is a list of field names (e.g. "Codec") to
5392	// unconditionally include in API requests. By default, fields with
5393	// empty values are omitted from API requests. However, any non-pointer,
5394	// non-interface field appearing in ForceSendFields will be sent to the
5395	// server regardless of whether the field is empty or not. This may be
5396	// used to include empty fields in Patch requests.
5397	ForceSendFields []string `json:"-"`
5398
5399	// NullFields is a list of field names (e.g. "Codec") to include in API
5400	// requests with the JSON null value. By default, fields with empty
5401	// values are omitted from API requests. However, any field with an
5402	// empty value appearing in NullFields will be sent to the server as
5403	// null. It is an error if a field in this list has a non-empty value.
5404	// This may be used to include null fields in Patch requests.
5405	NullFields []string `json:"-"`
5406}
5407
5408func (s *Sink) MarshalJSON() ([]byte, error) {
5409	type NoMethod Sink
5410	raw := NoMethod(*s)
5411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5412}
5413
5414// Snapshot: Represents a snapshot of a job.
5415type Snapshot struct {
5416	// CreationTime: The time this snapshot was created.
5417	CreationTime string `json:"creationTime,omitempty"`
5418
5419	// Description: User specified description of the snapshot. Maybe empty.
5420	Description string `json:"description,omitempty"`
5421
5422	// DiskSizeBytes: The disk byte size of the snapshot. Only available for
5423	// snapshots in READY state.
5424	DiskSizeBytes int64 `json:"diskSizeBytes,omitempty,string"`
5425
5426	// Id: The unique ID of this snapshot.
5427	Id string `json:"id,omitempty"`
5428
5429	// ProjectId: The project this snapshot belongs to.
5430	ProjectId string `json:"projectId,omitempty"`
5431
5432	// PubsubMetadata: PubSub snapshot metadata.
5433	PubsubMetadata []*PubsubSnapshotMetadata `json:"pubsubMetadata,omitempty"`
5434
5435	// SourceJobId: The job this snapshot was created from.
5436	SourceJobId string `json:"sourceJobId,omitempty"`
5437
5438	// State: State of the snapshot.
5439	//
5440	// Possible values:
5441	//   "UNKNOWN_SNAPSHOT_STATE" - Unknown state.
5442	//   "PENDING" - Snapshot intent to create has been persisted,
5443	// snapshotting of state has not yet started.
5444	//   "RUNNING" - Snapshotting is being performed.
5445	//   "READY" - Snapshot has been created and is ready to be used.
5446	//   "FAILED" - Snapshot failed to be created.
5447	//   "DELETED" - Snapshot has been deleted.
5448	State string `json:"state,omitempty"`
5449
5450	// Ttl: The time after which this snapshot will be automatically
5451	// deleted.
5452	Ttl string `json:"ttl,omitempty"`
5453
5454	// ServerResponse contains the HTTP response code and headers from the
5455	// server.
5456	googleapi.ServerResponse `json:"-"`
5457
5458	// ForceSendFields is a list of field names (e.g. "CreationTime") to
5459	// unconditionally include in API requests. By default, fields with
5460	// empty values are omitted from API requests. However, any non-pointer,
5461	// non-interface field appearing in ForceSendFields will be sent to the
5462	// server regardless of whether the field is empty or not. This may be
5463	// used to include empty fields in Patch requests.
5464	ForceSendFields []string `json:"-"`
5465
5466	// NullFields is a list of field names (e.g. "CreationTime") to include
5467	// in API requests with the JSON null value. By default, fields with
5468	// empty values are omitted from API requests. However, any field with
5469	// an empty value appearing in NullFields will be sent to the server as
5470	// null. It is an error if a field in this list has a non-empty value.
5471	// This may be used to include null fields in Patch requests.
5472	NullFields []string `json:"-"`
5473}
5474
5475func (s *Snapshot) MarshalJSON() ([]byte, error) {
5476	type NoMethod Snapshot
5477	raw := NoMethod(*s)
5478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5479}
5480
5481// SnapshotJobRequest: Request to create a snapshot of a job.
5482type SnapshotJobRequest struct {
5483	// Description: User specified description of the snapshot. Maybe empty.
5484	Description string `json:"description,omitempty"`
5485
5486	// Location: The location that contains this job.
5487	Location string `json:"location,omitempty"`
5488
5489	// SnapshotSources: If true, perform snapshots for sources which support
5490	// this.
5491	SnapshotSources bool `json:"snapshotSources,omitempty"`
5492
5493	// Ttl: TTL for the snapshot.
5494	Ttl string `json:"ttl,omitempty"`
5495
5496	// ForceSendFields is a list of field names (e.g. "Description") to
5497	// unconditionally include in API requests. By default, fields with
5498	// empty values are omitted from API requests. However, any non-pointer,
5499	// non-interface field appearing in ForceSendFields will be sent to the
5500	// server regardless of whether the field is empty or not. This may be
5501	// used to include empty fields in Patch requests.
5502	ForceSendFields []string `json:"-"`
5503
5504	// NullFields is a list of field names (e.g. "Description") to include
5505	// in API requests with the JSON null value. By default, fields with
5506	// empty values are omitted from API requests. However, any field with
5507	// an empty value appearing in NullFields will be sent to the server as
5508	// null. It is an error if a field in this list has a non-empty value.
5509	// This may be used to include null fields in Patch requests.
5510	NullFields []string `json:"-"`
5511}
5512
5513func (s *SnapshotJobRequest) MarshalJSON() ([]byte, error) {
5514	type NoMethod SnapshotJobRequest
5515	raw := NoMethod(*s)
5516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5517}
5518
5519// Source: A source that records can be read and decoded from.
5520type Source struct {
5521	// BaseSpecs: While splitting, sources may specify the produced bundles
5522	// as differences against another source, in order to save backend-side
5523	// memory and allow bigger jobs. For details, see SourceSplitRequest. To
5524	// support this use case, the full set of parameters of the source is
5525	// logically obtained by taking the latest explicitly specified value of
5526	// each parameter in the order: base_specs (later items win), spec
5527	// (overrides anything in base_specs).
5528	BaseSpecs []googleapi.RawMessage `json:"baseSpecs,omitempty"`
5529
5530	// Codec: The codec to use to decode data read from the source.
5531	Codec googleapi.RawMessage `json:"codec,omitempty"`
5532
5533	// DoesNotNeedSplitting: Setting this value to true hints to the
5534	// framework that the source doesn't need splitting, and using
5535	// SourceSplitRequest on it would yield
5536	// SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this
5537	// to true when splitting a single file into a set of byte ranges of
5538	// appropriate size, and set this to false when splitting a filepattern
5539	// into individual files. However, for efficiency, a file splitter may
5540	// decide to produce file subranges directly from the filepattern to
5541	// avoid a splitting round-trip. See SourceSplitRequest for an overview
5542	// of the splitting process. This field is meaningful only in the Source
5543	// objects populated by the user (e.g. when filling in a DerivedSource).
5544	// Source objects supplied by the framework to the user don't have this
5545	// field populated.
5546	DoesNotNeedSplitting bool `json:"doesNotNeedSplitting,omitempty"`
5547
5548	// Metadata: Optionally, metadata for this source can be supplied right
5549	// away, avoiding a SourceGetMetadataOperation roundtrip (see
5550	// SourceOperationRequest). This field is meaningful only in the Source
5551	// objects populated by the user (e.g. when filling in a DerivedSource).
5552	// Source objects supplied by the framework to the user don't have this
5553	// field populated.
5554	Metadata *SourceMetadata `json:"metadata,omitempty"`
5555
5556	// Spec: The source to read from, plus its parameters.
5557	Spec googleapi.RawMessage `json:"spec,omitempty"`
5558
5559	// ForceSendFields is a list of field names (e.g. "BaseSpecs") to
5560	// unconditionally include in API requests. By default, fields with
5561	// empty values are omitted from API requests. However, any non-pointer,
5562	// non-interface field appearing in ForceSendFields will be sent to the
5563	// server regardless of whether the field is empty or not. This may be
5564	// used to include empty fields in Patch requests.
5565	ForceSendFields []string `json:"-"`
5566
5567	// NullFields is a list of field names (e.g. "BaseSpecs") to include in
5568	// API requests with the JSON null value. By default, fields with empty
5569	// values are omitted from API requests. However, any field with an
5570	// empty value appearing in NullFields will be sent to the server as
5571	// null. It is an error if a field in this list has a non-empty value.
5572	// This may be used to include null fields in Patch requests.
5573	NullFields []string `json:"-"`
5574}
5575
5576func (s *Source) MarshalJSON() ([]byte, error) {
5577	type NoMethod Source
5578	raw := NoMethod(*s)
5579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5580}
5581
5582// SourceFork: DEPRECATED in favor of DynamicSourceSplit.
5583type SourceFork struct {
5584	// Primary: DEPRECATED
5585	Primary *SourceSplitShard `json:"primary,omitempty"`
5586
5587	// PrimarySource: DEPRECATED
5588	PrimarySource *DerivedSource `json:"primarySource,omitempty"`
5589
5590	// Residual: DEPRECATED
5591	Residual *SourceSplitShard `json:"residual,omitempty"`
5592
5593	// ResidualSource: DEPRECATED
5594	ResidualSource *DerivedSource `json:"residualSource,omitempty"`
5595
5596	// ForceSendFields is a list of field names (e.g. "Primary") to
5597	// unconditionally include in API requests. By default, fields with
5598	// empty values are omitted from API requests. However, any non-pointer,
5599	// non-interface field appearing in ForceSendFields will be sent to the
5600	// server regardless of whether the field is empty or not. This may be
5601	// used to include empty fields in Patch requests.
5602	ForceSendFields []string `json:"-"`
5603
5604	// NullFields is a list of field names (e.g. "Primary") to include in
5605	// API requests with the JSON null value. By default, fields with empty
5606	// values are omitted from API requests. However, any field with an
5607	// empty value appearing in NullFields will be sent to the server as
5608	// null. It is an error if a field in this list has a non-empty value.
5609	// This may be used to include null fields in Patch requests.
5610	NullFields []string `json:"-"`
5611}
5612
5613func (s *SourceFork) MarshalJSON() ([]byte, error) {
5614	type NoMethod SourceFork
5615	raw := NoMethod(*s)
5616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5617}
5618
5619// SourceGetMetadataRequest: A request to compute the SourceMetadata of
5620// a Source.
5621type SourceGetMetadataRequest struct {
5622	// Source: Specification of the source whose metadata should be
5623	// computed.
5624	Source *Source `json:"source,omitempty"`
5625
5626	// ForceSendFields is a list of field names (e.g. "Source") to
5627	// unconditionally include in API requests. By default, fields with
5628	// empty values are omitted from API requests. However, any non-pointer,
5629	// non-interface field appearing in ForceSendFields will be sent to the
5630	// server regardless of whether the field is empty or not. This may be
5631	// used to include empty fields in Patch requests.
5632	ForceSendFields []string `json:"-"`
5633
5634	// NullFields is a list of field names (e.g. "Source") to include in API
5635	// requests with the JSON null value. By default, fields with empty
5636	// values are omitted from API requests. However, any field with an
5637	// empty value appearing in NullFields will be sent to the server as
5638	// null. It is an error if a field in this list has a non-empty value.
5639	// This may be used to include null fields in Patch requests.
5640	NullFields []string `json:"-"`
5641}
5642
5643func (s *SourceGetMetadataRequest) MarshalJSON() ([]byte, error) {
5644	type NoMethod SourceGetMetadataRequest
5645	raw := NoMethod(*s)
5646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5647}
5648
5649// SourceGetMetadataResponse: The result of a
5650// SourceGetMetadataOperation.
5651type SourceGetMetadataResponse struct {
5652	// Metadata: The computed metadata.
5653	Metadata *SourceMetadata `json:"metadata,omitempty"`
5654
5655	// ForceSendFields is a list of field names (e.g. "Metadata") to
5656	// unconditionally include in API requests. By default, fields with
5657	// empty values are omitted from API requests. However, any non-pointer,
5658	// non-interface field appearing in ForceSendFields will be sent to the
5659	// server regardless of whether the field is empty or not. This may be
5660	// used to include empty fields in Patch requests.
5661	ForceSendFields []string `json:"-"`
5662
5663	// NullFields is a list of field names (e.g. "Metadata") to include in
5664	// API requests with the JSON null value. By default, fields with empty
5665	// values are omitted from API requests. However, any field with an
5666	// empty value appearing in NullFields will be sent to the server as
5667	// null. It is an error if a field in this list has a non-empty value.
5668	// This may be used to include null fields in Patch requests.
5669	NullFields []string `json:"-"`
5670}
5671
5672func (s *SourceGetMetadataResponse) MarshalJSON() ([]byte, error) {
5673	type NoMethod SourceGetMetadataResponse
5674	raw := NoMethod(*s)
5675	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5676}
5677
5678// SourceMetadata: Metadata about a Source useful for automatically
5679// optimizing and tuning the pipeline, etc.
5680type SourceMetadata struct {
5681	// EstimatedSizeBytes: An estimate of the total size (in bytes) of the
5682	// data that would be read from this source. This estimate is in terms
5683	// of external storage size, before any decompression or other
5684	// processing done by the reader.
5685	EstimatedSizeBytes int64 `json:"estimatedSizeBytes,omitempty,string"`
5686
5687	// Infinite: Specifies that the size of this source is known to be
5688	// infinite (this is a streaming source).
5689	Infinite bool `json:"infinite,omitempty"`
5690
5691	// ProducesSortedKeys: Whether this source is known to produce key/value
5692	// pairs with the (encoded) keys in lexicographically sorted order.
5693	ProducesSortedKeys bool `json:"producesSortedKeys,omitempty"`
5694
5695	// ForceSendFields is a list of field names (e.g. "EstimatedSizeBytes")
5696	// to unconditionally include in API requests. By default, fields with
5697	// empty values are omitted from API requests. However, any non-pointer,
5698	// non-interface field appearing in ForceSendFields will be sent to the
5699	// server regardless of whether the field is empty or not. This may be
5700	// used to include empty fields in Patch requests.
5701	ForceSendFields []string `json:"-"`
5702
5703	// NullFields is a list of field names (e.g. "EstimatedSizeBytes") to
5704	// include in API requests with the JSON null value. By default, fields
5705	// with empty values are omitted from API requests. However, any field
5706	// with an empty value appearing in NullFields will be sent to the
5707	// server as null. It is an error if a field in this list has a
5708	// non-empty value. This may be used to include null fields in Patch
5709	// requests.
5710	NullFields []string `json:"-"`
5711}
5712
5713func (s *SourceMetadata) MarshalJSON() ([]byte, error) {
5714	type NoMethod SourceMetadata
5715	raw := NoMethod(*s)
5716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5717}
5718
5719// SourceOperationRequest: A work item that represents the different
5720// operations that can be performed on a user-defined Source
5721// specification.
5722type SourceOperationRequest struct {
5723	// GetMetadata: Information about a request to get metadata about a
5724	// source.
5725	GetMetadata *SourceGetMetadataRequest `json:"getMetadata,omitempty"`
5726
5727	// Name: User-provided name of the Read instruction for this source.
5728	Name string `json:"name,omitempty"`
5729
5730	// OriginalName: System-defined name for the Read instruction for this
5731	// source in the original workflow graph.
5732	OriginalName string `json:"originalName,omitempty"`
5733
5734	// Split: Information about a request to split a source.
5735	Split *SourceSplitRequest `json:"split,omitempty"`
5736
5737	// StageName: System-defined name of the stage containing the source
5738	// operation. Unique across the workflow.
5739	StageName string `json:"stageName,omitempty"`
5740
5741	// SystemName: System-defined name of the Read instruction for this
5742	// source. Unique across the workflow.
5743	SystemName string `json:"systemName,omitempty"`
5744
5745	// ForceSendFields is a list of field names (e.g. "GetMetadata") to
5746	// unconditionally include in API requests. By default, fields with
5747	// empty values are omitted from API requests. However, any non-pointer,
5748	// non-interface field appearing in ForceSendFields will be sent to the
5749	// server regardless of whether the field is empty or not. This may be
5750	// used to include empty fields in Patch requests.
5751	ForceSendFields []string `json:"-"`
5752
5753	// NullFields is a list of field names (e.g. "GetMetadata") to include
5754	// in API requests with the JSON null value. By default, fields with
5755	// empty values are omitted from API requests. However, any field with
5756	// an empty value appearing in NullFields will be sent to the server as
5757	// null. It is an error if a field in this list has a non-empty value.
5758	// This may be used to include null fields in Patch requests.
5759	NullFields []string `json:"-"`
5760}
5761
5762func (s *SourceOperationRequest) MarshalJSON() ([]byte, error) {
5763	type NoMethod SourceOperationRequest
5764	raw := NoMethod(*s)
5765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5766}
5767
5768// SourceOperationResponse: The result of a SourceOperationRequest,
5769// specified in ReportWorkItemStatusRequest.source_operation when the
5770// work item is completed.
5771type SourceOperationResponse struct {
5772	// GetMetadata: A response to a request to get metadata about a source.
5773	GetMetadata *SourceGetMetadataResponse `json:"getMetadata,omitempty"`
5774
5775	// Split: A response to a request to split a source.
5776	Split *SourceSplitResponse `json:"split,omitempty"`
5777
5778	// ForceSendFields is a list of field names (e.g. "GetMetadata") to
5779	// unconditionally include in API requests. By default, fields with
5780	// empty values are omitted from API requests. However, any non-pointer,
5781	// non-interface field appearing in ForceSendFields will be sent to the
5782	// server regardless of whether the field is empty or not. This may be
5783	// used to include empty fields in Patch requests.
5784	ForceSendFields []string `json:"-"`
5785
5786	// NullFields is a list of field names (e.g. "GetMetadata") to include
5787	// in API requests with the JSON null value. By default, fields with
5788	// empty values are omitted from API requests. However, any field with
5789	// an empty value appearing in NullFields will be sent to the server as
5790	// null. It is an error if a field in this list has a non-empty value.
5791	// This may be used to include null fields in Patch requests.
5792	NullFields []string `json:"-"`
5793}
5794
5795func (s *SourceOperationResponse) MarshalJSON() ([]byte, error) {
5796	type NoMethod SourceOperationResponse
5797	raw := NoMethod(*s)
5798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5799}
5800
5801// SourceSplitOptions: Hints for splitting a Source into bundles (parts
5802// for parallel processing) using SourceSplitRequest.
5803type SourceSplitOptions struct {
5804	// DesiredBundleSizeBytes: The source should be split into a set of
5805	// bundles where the estimated size of each is approximately this many
5806	// bytes.
5807	DesiredBundleSizeBytes int64 `json:"desiredBundleSizeBytes,omitempty,string"`
5808
5809	// DesiredShardSizeBytes: DEPRECATED in favor of
5810	// desired_bundle_size_bytes.
5811	DesiredShardSizeBytes int64 `json:"desiredShardSizeBytes,omitempty,string"`
5812
5813	// ForceSendFields is a list of field names (e.g.
5814	// "DesiredBundleSizeBytes") to unconditionally include in API requests.
5815	// By default, fields with empty values are omitted from API requests.
5816	// However, any non-pointer, non-interface field appearing in
5817	// ForceSendFields will be sent to the server regardless of whether the
5818	// field is empty or not. This may be used to include empty fields in
5819	// Patch requests.
5820	ForceSendFields []string `json:"-"`
5821
5822	// NullFields is a list of field names (e.g. "DesiredBundleSizeBytes")
5823	// to include in API requests with the JSON null value. By default,
5824	// fields with empty values are omitted from API requests. However, any
5825	// field with an empty value appearing in NullFields will be sent to the
5826	// server as null. It is an error if a field in this list has a
5827	// non-empty value. This may be used to include null fields in Patch
5828	// requests.
5829	NullFields []string `json:"-"`
5830}
5831
5832func (s *SourceSplitOptions) MarshalJSON() ([]byte, error) {
5833	type NoMethod SourceSplitOptions
5834	raw := NoMethod(*s)
5835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5836}
5837
5838// SourceSplitRequest: Represents the operation to split a high-level
5839// Source specification into bundles (parts for parallel processing). At
5840// a high level, splitting of a source into bundles happens as follows:
5841// SourceSplitRequest is applied to the source. If it returns
5842// SOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting happens and
5843// the source is used "as is". Otherwise, splitting is applied
5844// recursively to each produced DerivedSource. As an optimization, for
5845// any Source, if its does_not_need_splitting is true, the framework
5846// assumes that splitting this source would return
5847// SOURCE_SPLIT_OUTCOME_USE_CURRENT, and doesn't initiate a
5848// SourceSplitRequest. This applies both to the initial source being
5849// split and to bundles produced from it.
5850type SourceSplitRequest struct {
5851	// Options: Hints for tuning the splitting process.
5852	Options *SourceSplitOptions `json:"options,omitempty"`
5853
5854	// Source: Specification of the source to be split.
5855	Source *Source `json:"source,omitempty"`
5856
5857	// ForceSendFields is a list of field names (e.g. "Options") to
5858	// unconditionally include in API requests. By default, fields with
5859	// empty values are omitted from API requests. However, any non-pointer,
5860	// non-interface field appearing in ForceSendFields will be sent to the
5861	// server regardless of whether the field is empty or not. This may be
5862	// used to include empty fields in Patch requests.
5863	ForceSendFields []string `json:"-"`
5864
5865	// NullFields is a list of field names (e.g. "Options") to include in
5866	// API requests with the JSON null value. By default, fields with empty
5867	// values are omitted from API requests. However, any field with an
5868	// empty value appearing in NullFields will be sent to the server as
5869	// null. It is an error if a field in this list has a non-empty value.
5870	// This may be used to include null fields in Patch requests.
5871	NullFields []string `json:"-"`
5872}
5873
5874func (s *SourceSplitRequest) MarshalJSON() ([]byte, error) {
5875	type NoMethod SourceSplitRequest
5876	raw := NoMethod(*s)
5877	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5878}
5879
5880// SourceSplitResponse: The response to a SourceSplitRequest.
5881type SourceSplitResponse struct {
5882	// Bundles: If outcome is SPLITTING_HAPPENED, then this is a list of
5883	// bundles into which the source was split. Otherwise this field is
5884	// ignored. This list can be empty, which means the source represents an
5885	// empty input.
5886	Bundles []*DerivedSource `json:"bundles,omitempty"`
5887
5888	// Outcome: Indicates whether splitting happened and produced a list of
5889	// bundles. If this is USE_CURRENT_SOURCE_AS_IS, the current source
5890	// should be processed "as is" without splitting. "bundles" is ignored
5891	// in this case. If this is SPLITTING_HAPPENED, then "bundles" contains
5892	// a list of bundles into which the source was split.
5893	//
5894	// Possible values:
5895	//   "SOURCE_SPLIT_OUTCOME_UNKNOWN" - The source split outcome is
5896	// unknown, or unspecified.
5897	//   "SOURCE_SPLIT_OUTCOME_USE_CURRENT" - The current source should be
5898	// processed "as is" without splitting.
5899	//   "SOURCE_SPLIT_OUTCOME_SPLITTING_HAPPENED" - Splitting produced a
5900	// list of bundles.
5901	Outcome string `json:"outcome,omitempty"`
5902
5903	// Shards: DEPRECATED in favor of bundles.
5904	Shards []*SourceSplitShard `json:"shards,omitempty"`
5905
5906	// ForceSendFields is a list of field names (e.g. "Bundles") to
5907	// unconditionally include in API requests. By default, fields with
5908	// empty values are omitted from API requests. However, any non-pointer,
5909	// non-interface field appearing in ForceSendFields will be sent to the
5910	// server regardless of whether the field is empty or not. This may be
5911	// used to include empty fields in Patch requests.
5912	ForceSendFields []string `json:"-"`
5913
5914	// NullFields is a list of field names (e.g. "Bundles") to include in
5915	// API requests with the JSON null value. By default, fields with empty
5916	// values are omitted from API requests. However, any field with an
5917	// empty value appearing in NullFields will be sent to the server as
5918	// null. It is an error if a field in this list has a non-empty value.
5919	// This may be used to include null fields in Patch requests.
5920	NullFields []string `json:"-"`
5921}
5922
5923func (s *SourceSplitResponse) MarshalJSON() ([]byte, error) {
5924	type NoMethod SourceSplitResponse
5925	raw := NoMethod(*s)
5926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5927}
5928
5929// SourceSplitShard: DEPRECATED in favor of DerivedSource.
5930type SourceSplitShard struct {
5931	// DerivationMode: DEPRECATED
5932	//
5933	// Possible values:
5934	//   "SOURCE_DERIVATION_MODE_UNKNOWN" - The source derivation is
5935	// unknown, or unspecified.
5936	//   "SOURCE_DERIVATION_MODE_INDEPENDENT" - Produce a completely
5937	// independent Source with no base.
5938	//   "SOURCE_DERIVATION_MODE_CHILD_OF_CURRENT" - Produce a Source based
5939	// on the Source being split.
5940	//   "SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" - Produce a Source
5941	// based on the base of the Source being split.
5942	DerivationMode string `json:"derivationMode,omitempty"`
5943
5944	// Source: DEPRECATED
5945	Source *Source `json:"source,omitempty"`
5946
5947	// ForceSendFields is a list of field names (e.g. "DerivationMode") to
5948	// unconditionally include in API requests. By default, fields with
5949	// empty values are omitted from API requests. However, any non-pointer,
5950	// non-interface field appearing in ForceSendFields will be sent to the
5951	// server regardless of whether the field is empty or not. This may be
5952	// used to include empty fields in Patch requests.
5953	ForceSendFields []string `json:"-"`
5954
5955	// NullFields is a list of field names (e.g. "DerivationMode") to
5956	// include in API requests with the JSON null value. By default, fields
5957	// with empty values are omitted from API requests. However, any field
5958	// with an empty value appearing in NullFields will be sent to the
5959	// server as null. It is an error if a field in this list has a
5960	// non-empty value. This may be used to include null fields in Patch
5961	// requests.
5962	NullFields []string `json:"-"`
5963}
5964
5965func (s *SourceSplitShard) MarshalJSON() ([]byte, error) {
5966	type NoMethod SourceSplitShard
5967	raw := NoMethod(*s)
5968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5969}
5970
5971// SpannerIODetails: Metadata for a Spanner connector used by the job.
5972type SpannerIODetails struct {
5973	// DatabaseId: DatabaseId accessed in the connection.
5974	DatabaseId string `json:"databaseId,omitempty"`
5975
5976	// InstanceId: InstanceId accessed in the connection.
5977	InstanceId string `json:"instanceId,omitempty"`
5978
5979	// ProjectId: ProjectId accessed in the connection.
5980	ProjectId string `json:"projectId,omitempty"`
5981
5982	// ForceSendFields is a list of field names (e.g. "DatabaseId") to
5983	// unconditionally include in API requests. By default, fields with
5984	// empty values are omitted from API requests. However, any non-pointer,
5985	// non-interface field appearing in ForceSendFields will be sent to the
5986	// server regardless of whether the field is empty or not. This may be
5987	// used to include empty fields in Patch requests.
5988	ForceSendFields []string `json:"-"`
5989
5990	// NullFields is a list of field names (e.g. "DatabaseId") to include in
5991	// API requests with the JSON null value. By default, fields with empty
5992	// values are omitted from API requests. However, any field with an
5993	// empty value appearing in NullFields will be sent to the server as
5994	// null. It is an error if a field in this list has a non-empty value.
5995	// This may be used to include null fields in Patch requests.
5996	NullFields []string `json:"-"`
5997}
5998
5999func (s *SpannerIODetails) MarshalJSON() ([]byte, error) {
6000	type NoMethod SpannerIODetails
6001	raw := NoMethod(*s)
6002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6003}
6004
6005// SplitInt64: A representation of an int64, n, that is immune to
6006// precision loss when encoded in JSON.
6007type SplitInt64 struct {
6008	// HighBits: The high order bits, including the sign: n >> 32.
6009	HighBits int64 `json:"highBits,omitempty"`
6010
6011	// LowBits: The low order bits: n & 0xffffffff.
6012	LowBits int64 `json:"lowBits,omitempty"`
6013
6014	// ForceSendFields is a list of field names (e.g. "HighBits") to
6015	// unconditionally include in API requests. By default, fields with
6016	// empty values are omitted from API requests. However, any non-pointer,
6017	// non-interface field appearing in ForceSendFields will be sent to the
6018	// server regardless of whether the field is empty or not. This may be
6019	// used to include empty fields in Patch requests.
6020	ForceSendFields []string `json:"-"`
6021
6022	// NullFields is a list of field names (e.g. "HighBits") to include in
6023	// API requests with the JSON null value. By default, fields with empty
6024	// values are omitted from API requests. However, any field with an
6025	// empty value appearing in NullFields will be sent to the server as
6026	// null. It is an error if a field in this list has a non-empty value.
6027	// This may be used to include null fields in Patch requests.
6028	NullFields []string `json:"-"`
6029}
6030
6031func (s *SplitInt64) MarshalJSON() ([]byte, error) {
6032	type NoMethod SplitInt64
6033	raw := NoMethod(*s)
6034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6035}
6036
6037// StageExecutionDetails: Information about the workers and work items
6038// within a stage.
6039type StageExecutionDetails struct {
6040	// NextPageToken: If present, this response does not contain all
6041	// requested tasks. To obtain the next page of results, repeat the
6042	// request with page_token set to this value.
6043	NextPageToken string `json:"nextPageToken,omitempty"`
6044
6045	// Workers: Workers that have done work on the stage.
6046	Workers []*WorkerDetails `json:"workers,omitempty"`
6047
6048	// ServerResponse contains the HTTP response code and headers from the
6049	// server.
6050	googleapi.ServerResponse `json:"-"`
6051
6052	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
6053	// unconditionally include in API requests. By default, fields with
6054	// empty values are omitted from API requests. However, any non-pointer,
6055	// non-interface field appearing in ForceSendFields will be sent to the
6056	// server regardless of whether the field is empty or not. This may be
6057	// used to include empty fields in Patch requests.
6058	ForceSendFields []string `json:"-"`
6059
6060	// NullFields is a list of field names (e.g. "NextPageToken") to include
6061	// in API requests with the JSON null value. By default, fields with
6062	// empty values are omitted from API requests. However, any field with
6063	// an empty value appearing in NullFields will be sent to the server as
6064	// null. It is an error if a field in this list has a non-empty value.
6065	// This may be used to include null fields in Patch requests.
6066	NullFields []string `json:"-"`
6067}
6068
6069func (s *StageExecutionDetails) MarshalJSON() ([]byte, error) {
6070	type NoMethod StageExecutionDetails
6071	raw := NoMethod(*s)
6072	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6073}
6074
6075// StageSource: Description of an input or output of an execution stage.
6076type StageSource struct {
6077	// Name: Dataflow service generated name for this source.
6078	Name string `json:"name,omitempty"`
6079
6080	// OriginalTransformOrCollection: User name for the original user
6081	// transform or collection with which this source is most closely
6082	// associated.
6083	OriginalTransformOrCollection string `json:"originalTransformOrCollection,omitempty"`
6084
6085	// SizeBytes: Size of the source, if measurable.
6086	SizeBytes int64 `json:"sizeBytes,omitempty,string"`
6087
6088	// UserName: Human-readable name for this source; may be user or system
6089	// generated.
6090	UserName string `json:"userName,omitempty"`
6091
6092	// ForceSendFields is a list of field names (e.g. "Name") to
6093	// unconditionally include in API requests. By default, fields with
6094	// empty values are omitted from API requests. However, any non-pointer,
6095	// non-interface field appearing in ForceSendFields will be sent to the
6096	// server regardless of whether the field is empty or not. This may be
6097	// used to include empty fields in Patch requests.
6098	ForceSendFields []string `json:"-"`
6099
6100	// NullFields is a list of field names (e.g. "Name") to include in API
6101	// requests with the JSON null value. By default, fields with empty
6102	// values are omitted from API requests. However, any field with an
6103	// empty value appearing in NullFields will be sent to the server as
6104	// null. It is an error if a field in this list has a non-empty value.
6105	// This may be used to include null fields in Patch requests.
6106	NullFields []string `json:"-"`
6107}
6108
6109func (s *StageSource) MarshalJSON() ([]byte, error) {
6110	type NoMethod StageSource
6111	raw := NoMethod(*s)
6112	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6113}
6114
6115// StageSummary: Information about a particular execution stage of a
6116// job.
6117type StageSummary struct {
6118	// EndTime: End time of this stage. If the work item is completed, this
6119	// is the actual end time of the stage. Otherwise, it is the predicted
6120	// end time.
6121	EndTime string `json:"endTime,omitempty"`
6122
6123	// Metrics: Metrics for this stage.
6124	Metrics []*MetricUpdate `json:"metrics,omitempty"`
6125
6126	// Progress: Progress for this stage. Only applicable to Batch jobs.
6127	Progress *ProgressTimeseries `json:"progress,omitempty"`
6128
6129	// StageId: ID of this stage
6130	StageId string `json:"stageId,omitempty"`
6131
6132	// StartTime: Start time of this stage.
6133	StartTime string `json:"startTime,omitempty"`
6134
6135	// State: State of this stage.
6136	//
6137	// Possible values:
6138	//   "EXECUTION_STATE_UNKNOWN" - The component state is unknown or
6139	// unspecified.
6140	//   "EXECUTION_STATE_NOT_STARTED" - The component is not yet running.
6141	//   "EXECUTION_STATE_RUNNING" - The component is currently running.
6142	//   "EXECUTION_STATE_SUCCEEDED" - The component succeeded.
6143	//   "EXECUTION_STATE_FAILED" - The component failed.
6144	//   "EXECUTION_STATE_CANCELLED" - Execution of the component was
6145	// cancelled.
6146	State string `json:"state,omitempty"`
6147
6148	// ForceSendFields is a list of field names (e.g. "EndTime") to
6149	// unconditionally include in API requests. By default, fields with
6150	// empty values are omitted from API requests. However, any non-pointer,
6151	// non-interface field appearing in ForceSendFields will be sent to the
6152	// server regardless of whether the field is empty or not. This may be
6153	// used to include empty fields in Patch requests.
6154	ForceSendFields []string `json:"-"`
6155
6156	// NullFields is a list of field names (e.g. "EndTime") to include in
6157	// API requests with the JSON null value. By default, fields with empty
6158	// values are omitted from API requests. However, any field with an
6159	// empty value appearing in NullFields will be sent to the server as
6160	// null. It is an error if a field in this list has a non-empty value.
6161	// This may be used to include null fields in Patch requests.
6162	NullFields []string `json:"-"`
6163}
6164
6165func (s *StageSummary) MarshalJSON() ([]byte, error) {
6166	type NoMethod StageSummary
6167	raw := NoMethod(*s)
6168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6169}
6170
6171// StateFamilyConfig: State family configuration.
6172type StateFamilyConfig struct {
6173	// IsRead: If true, this family corresponds to a read operation.
6174	IsRead bool `json:"isRead,omitempty"`
6175
6176	// StateFamily: The state family value.
6177	StateFamily string `json:"stateFamily,omitempty"`
6178
6179	// ForceSendFields is a list of field names (e.g. "IsRead") to
6180	// unconditionally include in API requests. By default, fields with
6181	// empty values are omitted from API requests. However, any non-pointer,
6182	// non-interface field appearing in ForceSendFields will be sent to the
6183	// server regardless of whether the field is empty or not. This may be
6184	// used to include empty fields in Patch requests.
6185	ForceSendFields []string `json:"-"`
6186
6187	// NullFields is a list of field names (e.g. "IsRead") to include in API
6188	// requests with the JSON null value. By default, fields with empty
6189	// values are omitted from API requests. However, any field with an
6190	// empty value appearing in NullFields will be sent to the server as
6191	// null. It is an error if a field in this list has a non-empty value.
6192	// This may be used to include null fields in Patch requests.
6193	NullFields []string `json:"-"`
6194}
6195
6196func (s *StateFamilyConfig) MarshalJSON() ([]byte, error) {
6197	type NoMethod StateFamilyConfig
6198	raw := NoMethod(*s)
6199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6200}
6201
6202// Status: The `Status` type defines a logical error model that is
6203// suitable for different programming environments, including REST APIs
6204// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
6205// `Status` message contains three pieces of data: error code, error
6206// message, and error details. You can find out more about this error
6207// model and how to work with it in the API Design Guide
6208// (https://cloud.google.com/apis/design/errors).
6209type Status struct {
6210	// Code: The status code, which should be an enum value of
6211	// google.rpc.Code.
6212	Code int64 `json:"code,omitempty"`
6213
6214	// Details: A list of messages that carry the error details. There is a
6215	// common set of message types for APIs to use.
6216	Details []googleapi.RawMessage `json:"details,omitempty"`
6217
6218	// Message: A developer-facing error message, which should be in
6219	// English. Any user-facing error message should be localized and sent
6220	// in the google.rpc.Status.details field, or localized by the client.
6221	Message string `json:"message,omitempty"`
6222
6223	// ForceSendFields is a list of field names (e.g. "Code") to
6224	// unconditionally include in API requests. By default, fields with
6225	// empty values are omitted from API requests. However, any non-pointer,
6226	// non-interface field appearing in ForceSendFields will be sent to the
6227	// server regardless of whether the field is empty or not. This may be
6228	// used to include empty fields in Patch requests.
6229	ForceSendFields []string `json:"-"`
6230
6231	// NullFields is a list of field names (e.g. "Code") to include in API
6232	// requests with the JSON null value. By default, fields with empty
6233	// values are omitted from API requests. However, any field with an
6234	// empty value appearing in NullFields will be sent to the server as
6235	// null. It is an error if a field in this list has a non-empty value.
6236	// This may be used to include null fields in Patch requests.
6237	NullFields []string `json:"-"`
6238}
6239
6240func (s *Status) MarshalJSON() ([]byte, error) {
6241	type NoMethod Status
6242	raw := NoMethod(*s)
6243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6244}
6245
6246// Step: Defines a particular step within a Cloud Dataflow job. A job
6247// consists of multiple steps, each of which performs some specific
6248// operation as part of the overall job. Data is typically passed from
6249// one step to another as part of the job. Here's an example of a
6250// sequence of steps which together implement a Map-Reduce job: * Read a
6251// collection of data from some source, parsing the collection's
6252// elements. * Validate the elements. * Apply a user-defined function to
6253// map each element to some value and extract an element-specific key
6254// value. * Group elements with the same key into a single element with
6255// that key, transforming a multiply-keyed collection into a
6256// uniquely-keyed collection. * Write the elements out to some data
6257// sink. Note that the Cloud Dataflow service may be used to run many
6258// different types of jobs, not just Map-Reduce.
6259type Step struct {
6260	// Kind: The kind of step in the Cloud Dataflow job.
6261	Kind string `json:"kind,omitempty"`
6262
6263	// Name: The name that identifies the step. This must be unique for each
6264	// step with respect to all other steps in the Cloud Dataflow job.
6265	Name string `json:"name,omitempty"`
6266
6267	// Properties: Named properties associated with the step. Each kind of
6268	// predefined step has its own required set of properties. Must be
6269	// provided on Create. Only retrieved with JOB_VIEW_ALL.
6270	Properties googleapi.RawMessage `json:"properties,omitempty"`
6271
6272	// ForceSendFields is a list of field names (e.g. "Kind") to
6273	// unconditionally include in API requests. By default, fields with
6274	// empty values are omitted from API requests. However, any non-pointer,
6275	// non-interface field appearing in ForceSendFields will be sent to the
6276	// server regardless of whether the field is empty or not. This may be
6277	// used to include empty fields in Patch requests.
6278	ForceSendFields []string `json:"-"`
6279
6280	// NullFields is a list of field names (e.g. "Kind") to include in API
6281	// requests with the JSON null value. By default, fields with empty
6282	// values are omitted from API requests. However, any field with an
6283	// empty value appearing in NullFields will be sent to the server as
6284	// null. It is an error if a field in this list has a non-empty value.
6285	// This may be used to include null fields in Patch requests.
6286	NullFields []string `json:"-"`
6287}
6288
6289func (s *Step) MarshalJSON() ([]byte, error) {
6290	type NoMethod Step
6291	raw := NoMethod(*s)
6292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6293}
6294
6295// StreamLocation: Describes a stream of data, either as input to be
6296// processed or as output of a streaming Dataflow job.
6297type StreamLocation struct {
6298	// CustomSourceLocation: The stream is a custom source.
6299	CustomSourceLocation *CustomSourceLocation `json:"customSourceLocation,omitempty"`
6300
6301	// PubsubLocation: The stream is a pubsub stream.
6302	PubsubLocation *PubsubLocation `json:"pubsubLocation,omitempty"`
6303
6304	// SideInputLocation: The stream is a streaming side input.
6305	SideInputLocation *StreamingSideInputLocation `json:"sideInputLocation,omitempty"`
6306
6307	// StreamingStageLocation: The stream is part of another computation
6308	// within the current streaming Dataflow job.
6309	StreamingStageLocation *StreamingStageLocation `json:"streamingStageLocation,omitempty"`
6310
6311	// ForceSendFields is a list of field names (e.g.
6312	// "CustomSourceLocation") to unconditionally include in API requests.
6313	// By default, fields with empty values are omitted from API requests.
6314	// However, any non-pointer, non-interface field appearing in
6315	// ForceSendFields will be sent to the server regardless of whether the
6316	// field is empty or not. This may be used to include empty fields in
6317	// Patch requests.
6318	ForceSendFields []string `json:"-"`
6319
6320	// NullFields is a list of field names (e.g. "CustomSourceLocation") to
6321	// include in API requests with the JSON null value. By default, fields
6322	// with empty values are omitted from API requests. However, any field
6323	// with an empty value appearing in NullFields will be sent to the
6324	// server as null. It is an error if a field in this list has a
6325	// non-empty value. This may be used to include null fields in Patch
6326	// requests.
6327	NullFields []string `json:"-"`
6328}
6329
6330func (s *StreamLocation) MarshalJSON() ([]byte, error) {
6331	type NoMethod StreamLocation
6332	raw := NoMethod(*s)
6333	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6334}
6335
6336// StreamingApplianceSnapshotConfig: Streaming appliance snapshot
6337// configuration.
6338type StreamingApplianceSnapshotConfig struct {
6339	// ImportStateEndpoint: Indicates which endpoint is used to import
6340	// appliance state.
6341	ImportStateEndpoint string `json:"importStateEndpoint,omitempty"`
6342
6343	// SnapshotId: If set, indicates the snapshot id for the snapshot being
6344	// performed.
6345	SnapshotId string `json:"snapshotId,omitempty"`
6346
6347	// ForceSendFields is a list of field names (e.g. "ImportStateEndpoint")
6348	// to unconditionally include in API requests. By default, fields with
6349	// empty values are omitted from API requests. However, any non-pointer,
6350	// non-interface field appearing in ForceSendFields will be sent to the
6351	// server regardless of whether the field is empty or not. This may be
6352	// used to include empty fields in Patch requests.
6353	ForceSendFields []string `json:"-"`
6354
6355	// NullFields is a list of field names (e.g. "ImportStateEndpoint") to
6356	// include in API requests with the JSON null value. By default, fields
6357	// with empty values are omitted from API requests. However, any field
6358	// with an empty value appearing in NullFields will be sent to the
6359	// server as null. It is an error if a field in this list has a
6360	// non-empty value. This may be used to include null fields in Patch
6361	// requests.
6362	NullFields []string `json:"-"`
6363}
6364
6365func (s *StreamingApplianceSnapshotConfig) MarshalJSON() ([]byte, error) {
6366	type NoMethod StreamingApplianceSnapshotConfig
6367	raw := NoMethod(*s)
6368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6369}
6370
6371// StreamingComputationConfig: Configuration information for a single
6372// streaming computation.
6373type StreamingComputationConfig struct {
6374	// ComputationId: Unique identifier for this computation.
6375	ComputationId string `json:"computationId,omitempty"`
6376
6377	// Instructions: Instructions that comprise the computation.
6378	Instructions []*ParallelInstruction `json:"instructions,omitempty"`
6379
6380	// StageName: Stage name of this computation.
6381	StageName string `json:"stageName,omitempty"`
6382
6383	// SystemName: System defined name for this computation.
6384	SystemName string `json:"systemName,omitempty"`
6385
6386	// TransformUserNameToStateFamily: Map from user name of stateful
6387	// transforms in this stage to their state family.
6388	TransformUserNameToStateFamily map[string]string `json:"transformUserNameToStateFamily,omitempty"`
6389
6390	// ForceSendFields is a list of field names (e.g. "ComputationId") to
6391	// unconditionally include in API requests. By default, fields with
6392	// empty values are omitted from API requests. However, any non-pointer,
6393	// non-interface field appearing in ForceSendFields will be sent to the
6394	// server regardless of whether the field is empty or not. This may be
6395	// used to include empty fields in Patch requests.
6396	ForceSendFields []string `json:"-"`
6397
6398	// NullFields is a list of field names (e.g. "ComputationId") to include
6399	// in API requests with the JSON null value. By default, fields with
6400	// empty values are omitted from API requests. However, any field with
6401	// an empty value appearing in NullFields will be sent to the server as
6402	// null. It is an error if a field in this list has a non-empty value.
6403	// This may be used to include null fields in Patch requests.
6404	NullFields []string `json:"-"`
6405}
6406
6407func (s *StreamingComputationConfig) MarshalJSON() ([]byte, error) {
6408	type NoMethod StreamingComputationConfig
6409	raw := NoMethod(*s)
6410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6411}
6412
6413// StreamingComputationRanges: Describes full or partial data disk
6414// assignment information of the computation ranges.
6415type StreamingComputationRanges struct {
6416	// ComputationId: The ID of the computation.
6417	ComputationId string `json:"computationId,omitempty"`
6418
6419	// RangeAssignments: Data disk assignments for ranges from this
6420	// computation.
6421	RangeAssignments []*KeyRangeDataDiskAssignment `json:"rangeAssignments,omitempty"`
6422
6423	// ForceSendFields is a list of field names (e.g. "ComputationId") to
6424	// unconditionally include in API requests. By default, fields with
6425	// empty values are omitted from API requests. However, any non-pointer,
6426	// non-interface field appearing in ForceSendFields will be sent to the
6427	// server regardless of whether the field is empty or not. This may be
6428	// used to include empty fields in Patch requests.
6429	ForceSendFields []string `json:"-"`
6430
6431	// NullFields is a list of field names (e.g. "ComputationId") to include
6432	// in API requests with the JSON null value. By default, fields with
6433	// empty values are omitted from API requests. However, any field with
6434	// an empty value appearing in NullFields will be sent to the server as
6435	// null. It is an error if a field in this list has a non-empty value.
6436	// This may be used to include null fields in Patch requests.
6437	NullFields []string `json:"-"`
6438}
6439
6440func (s *StreamingComputationRanges) MarshalJSON() ([]byte, error) {
6441	type NoMethod StreamingComputationRanges
6442	raw := NoMethod(*s)
6443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6444}
6445
6446// StreamingComputationTask: A task which describes what action should
6447// be performed for the specified streaming computation ranges.
6448type StreamingComputationTask struct {
6449	// ComputationRanges: Contains ranges of a streaming computation this
6450	// task should apply to.
6451	ComputationRanges []*StreamingComputationRanges `json:"computationRanges,omitempty"`
6452
6453	// DataDisks: Describes the set of data disks this task should apply to.
6454	DataDisks []*MountedDataDisk `json:"dataDisks,omitempty"`
6455
6456	// TaskType: A type of streaming computation task.
6457	//
6458	// Possible values:
6459	//   "STREAMING_COMPUTATION_TASK_UNKNOWN" - The streaming computation
6460	// task is unknown, or unspecified.
6461	//   "STREAMING_COMPUTATION_TASK_STOP" - Stop processing specified
6462	// streaming computation range(s).
6463	//   "STREAMING_COMPUTATION_TASK_START" - Start processing specified
6464	// streaming computation range(s).
6465	TaskType string `json:"taskType,omitempty"`
6466
6467	// ForceSendFields is a list of field names (e.g. "ComputationRanges")
6468	// to unconditionally include in API requests. By default, fields with
6469	// empty values are omitted from API requests. However, any non-pointer,
6470	// non-interface field appearing in ForceSendFields will be sent to the
6471	// server regardless of whether the field is empty or not. This may be
6472	// used to include empty fields in Patch requests.
6473	ForceSendFields []string `json:"-"`
6474
6475	// NullFields is a list of field names (e.g. "ComputationRanges") to
6476	// include in API requests with the JSON null value. By default, fields
6477	// with empty values are omitted from API requests. However, any field
6478	// with an empty value appearing in NullFields will be sent to the
6479	// server as null. It is an error if a field in this list has a
6480	// non-empty value. This may be used to include null fields in Patch
6481	// requests.
6482	NullFields []string `json:"-"`
6483}
6484
6485func (s *StreamingComputationTask) MarshalJSON() ([]byte, error) {
6486	type NoMethod StreamingComputationTask
6487	raw := NoMethod(*s)
6488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6489}
6490
6491// StreamingConfigTask: A task that carries configuration information
6492// for streaming computations.
6493type StreamingConfigTask struct {
6494	// CommitStreamChunkSizeBytes: Chunk size for commit streams from the
6495	// harness to windmill.
6496	CommitStreamChunkSizeBytes int64 `json:"commitStreamChunkSizeBytes,omitempty,string"`
6497
6498	// GetDataStreamChunkSizeBytes: Chunk size for get data streams from the
6499	// harness to windmill.
6500	GetDataStreamChunkSizeBytes int64 `json:"getDataStreamChunkSizeBytes,omitempty,string"`
6501
6502	// MaxWorkItemCommitBytes: Maximum size for work item commit supported
6503	// windmill storage layer.
6504	MaxWorkItemCommitBytes int64 `json:"maxWorkItemCommitBytes,omitempty,string"`
6505
6506	// StreamingComputationConfigs: Set of computation configuration
6507	// information.
6508	StreamingComputationConfigs []*StreamingComputationConfig `json:"streamingComputationConfigs,omitempty"`
6509
6510	// UserStepToStateFamilyNameMap: Map from user step names to state
6511	// families.
6512	UserStepToStateFamilyNameMap map[string]string `json:"userStepToStateFamilyNameMap,omitempty"`
6513
6514	// WindmillServiceEndpoint: If present, the worker must use this
6515	// endpoint to communicate with Windmill Service dispatchers, otherwise
6516	// the worker must continue to use whatever endpoint it had been using.
6517	WindmillServiceEndpoint string `json:"windmillServiceEndpoint,omitempty"`
6518
6519	// WindmillServicePort: If present, the worker must use this port to
6520	// communicate with Windmill Service dispatchers. Only applicable when
6521	// windmill_service_endpoint is specified.
6522	WindmillServicePort int64 `json:"windmillServicePort,omitempty,string"`
6523
6524	// ForceSendFields is a list of field names (e.g.
6525	// "CommitStreamChunkSizeBytes") to unconditionally include in API
6526	// requests. By default, fields with empty values are omitted from API
6527	// requests. However, any non-pointer, non-interface field appearing in
6528	// ForceSendFields will be sent to the server regardless of whether the
6529	// field is empty or not. This may be used to include empty fields in
6530	// Patch requests.
6531	ForceSendFields []string `json:"-"`
6532
6533	// NullFields is a list of field names (e.g.
6534	// "CommitStreamChunkSizeBytes") to include in API requests with the
6535	// JSON null value. By default, fields with empty values are omitted
6536	// from API requests. However, any field with an empty value appearing
6537	// in NullFields will be sent to the server as null. It is an error if a
6538	// field in this list has a non-empty value. This may be used to include
6539	// null fields in Patch requests.
6540	NullFields []string `json:"-"`
6541}
6542
6543func (s *StreamingConfigTask) MarshalJSON() ([]byte, error) {
6544	type NoMethod StreamingConfigTask
6545	raw := NoMethod(*s)
6546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6547}
6548
6549// StreamingSetupTask: A task which initializes part of a streaming
6550// Dataflow job.
6551type StreamingSetupTask struct {
6552	// Drain: The user has requested drain.
6553	Drain bool `json:"drain,omitempty"`
6554
6555	// ReceiveWorkPort: The TCP port on which the worker should listen for
6556	// messages from other streaming computation workers.
6557	ReceiveWorkPort int64 `json:"receiveWorkPort,omitempty"`
6558
6559	// SnapshotConfig: Configures streaming appliance snapshot.
6560	SnapshotConfig *StreamingApplianceSnapshotConfig `json:"snapshotConfig,omitempty"`
6561
6562	// StreamingComputationTopology: The global topology of the streaming
6563	// Dataflow job.
6564	StreamingComputationTopology *TopologyConfig `json:"streamingComputationTopology,omitempty"`
6565
6566	// WorkerHarnessPort: The TCP port used by the worker to communicate
6567	// with the Dataflow worker harness.
6568	WorkerHarnessPort int64 `json:"workerHarnessPort,omitempty"`
6569
6570	// ForceSendFields is a list of field names (e.g. "Drain") to
6571	// unconditionally include in API requests. By default, fields with
6572	// empty values are omitted from API requests. However, any non-pointer,
6573	// non-interface field appearing in ForceSendFields will be sent to the
6574	// server regardless of whether the field is empty or not. This may be
6575	// used to include empty fields in Patch requests.
6576	ForceSendFields []string `json:"-"`
6577
6578	// NullFields is a list of field names (e.g. "Drain") to include in API
6579	// requests with the JSON null value. By default, fields with empty
6580	// values are omitted from API requests. However, any field with an
6581	// empty value appearing in NullFields will be sent to the server as
6582	// null. It is an error if a field in this list has a non-empty value.
6583	// This may be used to include null fields in Patch requests.
6584	NullFields []string `json:"-"`
6585}
6586
6587func (s *StreamingSetupTask) MarshalJSON() ([]byte, error) {
6588	type NoMethod StreamingSetupTask
6589	raw := NoMethod(*s)
6590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6591}
6592
6593// StreamingSideInputLocation: Identifies the location of a streaming
6594// side input.
6595type StreamingSideInputLocation struct {
6596	// StateFamily: Identifies the state family where this side input is
6597	// stored.
6598	StateFamily string `json:"stateFamily,omitempty"`
6599
6600	// Tag: Identifies the particular side input within the streaming
6601	// Dataflow job.
6602	Tag string `json:"tag,omitempty"`
6603
6604	// ForceSendFields is a list of field names (e.g. "StateFamily") to
6605	// unconditionally include in API requests. By default, fields with
6606	// empty values are omitted from API requests. However, any non-pointer,
6607	// non-interface field appearing in ForceSendFields will be sent to the
6608	// server regardless of whether the field is empty or not. This may be
6609	// used to include empty fields in Patch requests.
6610	ForceSendFields []string `json:"-"`
6611
6612	// NullFields is a list of field names (e.g. "StateFamily") to include
6613	// in API requests with the JSON null value. By default, fields with
6614	// empty values are omitted from API requests. However, any field with
6615	// an empty value appearing in NullFields will be sent to the server as
6616	// null. It is an error if a field in this list has a non-empty value.
6617	// This may be used to include null fields in Patch requests.
6618	NullFields []string `json:"-"`
6619}
6620
6621func (s *StreamingSideInputLocation) MarshalJSON() ([]byte, error) {
6622	type NoMethod StreamingSideInputLocation
6623	raw := NoMethod(*s)
6624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6625}
6626
6627// StreamingStageLocation: Identifies the location of a streaming
6628// computation stage, for stage-to-stage communication.
6629type StreamingStageLocation struct {
6630	// StreamId: Identifies the particular stream within the streaming
6631	// Dataflow job.
6632	StreamId string `json:"streamId,omitempty"`
6633
6634	// ForceSendFields is a list of field names (e.g. "StreamId") to
6635	// unconditionally include in API requests. By default, fields with
6636	// empty values are omitted from API requests. However, any non-pointer,
6637	// non-interface field appearing in ForceSendFields will be sent to the
6638	// server regardless of whether the field is empty or not. This may be
6639	// used to include empty fields in Patch requests.
6640	ForceSendFields []string `json:"-"`
6641
6642	// NullFields is a list of field names (e.g. "StreamId") to include in
6643	// API requests with the JSON null value. By default, fields with empty
6644	// values are omitted from API requests. However, any field with an
6645	// empty value appearing in NullFields will be sent to the server as
6646	// null. It is an error if a field in this list has a non-empty value.
6647	// This may be used to include null fields in Patch requests.
6648	NullFields []string `json:"-"`
6649}
6650
6651func (s *StreamingStageLocation) MarshalJSON() ([]byte, error) {
6652	type NoMethod StreamingStageLocation
6653	raw := NoMethod(*s)
6654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6655}
6656
6657// StringList: A metric value representing a list of strings.
6658type StringList struct {
6659	// Elements: Elements of the list.
6660	Elements []string `json:"elements,omitempty"`
6661
6662	// ForceSendFields is a list of field names (e.g. "Elements") to
6663	// unconditionally include in API requests. By default, fields with
6664	// empty values are omitted from API requests. However, any non-pointer,
6665	// non-interface field appearing in ForceSendFields will be sent to the
6666	// server regardless of whether the field is empty or not. This may be
6667	// used to include empty fields in Patch requests.
6668	ForceSendFields []string `json:"-"`
6669
6670	// NullFields is a list of field names (e.g. "Elements") to include in
6671	// API requests with the JSON null value. By default, fields with empty
6672	// values are omitted from API requests. However, any field with an
6673	// empty value appearing in NullFields will be sent to the server as
6674	// null. It is an error if a field in this list has a non-empty value.
6675	// This may be used to include null fields in Patch requests.
6676	NullFields []string `json:"-"`
6677}
6678
6679func (s *StringList) MarshalJSON() ([]byte, error) {
6680	type NoMethod StringList
6681	raw := NoMethod(*s)
6682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6683}
6684
6685// StructuredMessage: A rich message format, including a human readable
6686// string, a key for identifying the message, and structured data
6687// associated with the message for programmatic consumption.
6688type StructuredMessage struct {
6689	// MessageKey: Identifier for this message type. Used by external
6690	// systems to internationalize or personalize message.
6691	MessageKey string `json:"messageKey,omitempty"`
6692
6693	// MessageText: Human-readable version of message.
6694	MessageText string `json:"messageText,omitempty"`
6695
6696	// Parameters: The structured data associated with this message.
6697	Parameters []*Parameter `json:"parameters,omitempty"`
6698
6699	// ForceSendFields is a list of field names (e.g. "MessageKey") to
6700	// unconditionally include in API requests. By default, fields with
6701	// empty values are omitted from API requests. However, any non-pointer,
6702	// non-interface field appearing in ForceSendFields will be sent to the
6703	// server regardless of whether the field is empty or not. This may be
6704	// used to include empty fields in Patch requests.
6705	ForceSendFields []string `json:"-"`
6706
6707	// NullFields is a list of field names (e.g. "MessageKey") to include in
6708	// API requests with the JSON null value. By default, fields with empty
6709	// values are omitted from API requests. However, any field with an
6710	// empty value appearing in NullFields will be sent to the server as
6711	// null. It is an error if a field in this list has a non-empty value.
6712	// This may be used to include null fields in Patch requests.
6713	NullFields []string `json:"-"`
6714}
6715
6716func (s *StructuredMessage) MarshalJSON() ([]byte, error) {
6717	type NoMethod StructuredMessage
6718	raw := NoMethod(*s)
6719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6720}
6721
6722// TaskRunnerSettings: Taskrunner configuration settings.
6723type TaskRunnerSettings struct {
6724	// Alsologtostderr: Whether to also send taskrunner log info to stderr.
6725	Alsologtostderr bool `json:"alsologtostderr,omitempty"`
6726
6727	// BaseTaskDir: The location on the worker for task-specific
6728	// subdirectories.
6729	BaseTaskDir string `json:"baseTaskDir,omitempty"`
6730
6731	// BaseUrl: The base URL for the taskrunner to use when accessing Google
6732	// Cloud APIs. When workers access Google Cloud APIs, they logically do
6733	// so via relative URLs. If this field is specified, it supplies the
6734	// base URL to use for resolving these relative URLs. The normative
6735	// algorithm used is defined by RFC 1808, "Relative Uniform Resource
6736	// Locators". If not specified, the default value is
6737	// "http://www.googleapis.com/"
6738	BaseUrl string `json:"baseUrl,omitempty"`
6739
6740	// CommandlinesFileName: The file to store preprocessing commands in.
6741	CommandlinesFileName string `json:"commandlinesFileName,omitempty"`
6742
6743	// ContinueOnException: Whether to continue taskrunner if an exception
6744	// is hit.
6745	ContinueOnException bool `json:"continueOnException,omitempty"`
6746
6747	// DataflowApiVersion: The API version of endpoint, e.g. "v1b3"
6748	DataflowApiVersion string `json:"dataflowApiVersion,omitempty"`
6749
6750	// HarnessCommand: The command to launch the worker harness.
6751	HarnessCommand string `json:"harnessCommand,omitempty"`
6752
6753	// LanguageHint: The suggested backend language.
6754	LanguageHint string `json:"languageHint,omitempty"`
6755
6756	// LogDir: The directory on the VM to store logs.
6757	LogDir string `json:"logDir,omitempty"`
6758
6759	// LogToSerialconsole: Whether to send taskrunner log info to Google
6760	// Compute Engine VM serial console.
6761	LogToSerialconsole bool `json:"logToSerialconsole,omitempty"`
6762
6763	// LogUploadLocation: Indicates where to put logs. If this is not
6764	// specified, the logs will not be uploaded. The supported resource type
6765	// is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object}
6766	// bucket.storage.googleapis.com/{object}
6767	LogUploadLocation string `json:"logUploadLocation,omitempty"`
6768
6769	// OauthScopes: The OAuth2 scopes to be requested by the taskrunner in
6770	// order to access the Cloud Dataflow API.
6771	OauthScopes []string `json:"oauthScopes,omitempty"`
6772
6773	// ParallelWorkerSettings: The settings to pass to the parallel worker
6774	// harness.
6775	ParallelWorkerSettings *WorkerSettings `json:"parallelWorkerSettings,omitempty"`
6776
6777	// StreamingWorkerMainClass: The streaming worker main class name.
6778	StreamingWorkerMainClass string `json:"streamingWorkerMainClass,omitempty"`
6779
6780	// TaskGroup: The UNIX group ID on the worker VM to use for tasks
6781	// launched by taskrunner; e.g. "wheel".
6782	TaskGroup string `json:"taskGroup,omitempty"`
6783
6784	// TaskUser: The UNIX user ID on the worker VM to use for tasks launched
6785	// by taskrunner; e.g. "root".
6786	TaskUser string `json:"taskUser,omitempty"`
6787
6788	// TempStoragePrefix: The prefix of the resources the taskrunner should
6789	// use for temporary storage. The supported resource type is: Google
6790	// Cloud Storage: storage.googleapis.com/{bucket}/{object}
6791	// bucket.storage.googleapis.com/{object}
6792	TempStoragePrefix string `json:"tempStoragePrefix,omitempty"`
6793
6794	// VmId: The ID string of the VM.
6795	VmId string `json:"vmId,omitempty"`
6796
6797	// WorkflowFileName: The file to store the workflow in.
6798	WorkflowFileName string `json:"workflowFileName,omitempty"`
6799
6800	// ForceSendFields is a list of field names (e.g. "Alsologtostderr") to
6801	// unconditionally include in API requests. By default, fields with
6802	// empty values are omitted from API requests. However, any non-pointer,
6803	// non-interface field appearing in ForceSendFields will be sent to the
6804	// server regardless of whether the field is empty or not. This may be
6805	// used to include empty fields in Patch requests.
6806	ForceSendFields []string `json:"-"`
6807
6808	// NullFields is a list of field names (e.g. "Alsologtostderr") to
6809	// include in API requests with the JSON null value. By default, fields
6810	// with empty values are omitted from API requests. However, any field
6811	// with an empty value appearing in NullFields will be sent to the
6812	// server as null. It is an error if a field in this list has a
6813	// non-empty value. This may be used to include null fields in Patch
6814	// requests.
6815	NullFields []string `json:"-"`
6816}
6817
6818func (s *TaskRunnerSettings) MarshalJSON() ([]byte, error) {
6819	type NoMethod TaskRunnerSettings
6820	raw := NoMethod(*s)
6821	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6822}
6823
6824// TemplateMetadata: Metadata describing a template.
6825type TemplateMetadata struct {
6826	// Description: Optional. A description of the template.
6827	Description string `json:"description,omitempty"`
6828
6829	// Name: Required. The name of the template.
6830	Name string `json:"name,omitempty"`
6831
6832	// Parameters: The parameters for the template.
6833	Parameters []*ParameterMetadata `json:"parameters,omitempty"`
6834
6835	// ForceSendFields is a list of field names (e.g. "Description") to
6836	// unconditionally include in API requests. By default, fields with
6837	// empty values are omitted from API requests. However, any non-pointer,
6838	// non-interface field appearing in ForceSendFields will be sent to the
6839	// server regardless of whether the field is empty or not. This may be
6840	// used to include empty fields in Patch requests.
6841	ForceSendFields []string `json:"-"`
6842
6843	// NullFields is a list of field names (e.g. "Description") to include
6844	// in API requests with the JSON null value. By default, fields with
6845	// empty values are omitted from API requests. However, any field with
6846	// an empty value appearing in NullFields will be sent to the server as
6847	// null. It is an error if a field in this list has a non-empty value.
6848	// This may be used to include null fields in Patch requests.
6849	NullFields []string `json:"-"`
6850}
6851
6852func (s *TemplateMetadata) MarshalJSON() ([]byte, error) {
6853	type NoMethod TemplateMetadata
6854	raw := NoMethod(*s)
6855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6856}
6857
6858// TopologyConfig: Global topology of the streaming Dataflow job,
6859// including all computations and their sharded locations.
6860type TopologyConfig struct {
6861	// Computations: The computations associated with a streaming Dataflow
6862	// job.
6863	Computations []*ComputationTopology `json:"computations,omitempty"`
6864
6865	// DataDiskAssignments: The disks assigned to a streaming Dataflow job.
6866	DataDiskAssignments []*DataDiskAssignment `json:"dataDiskAssignments,omitempty"`
6867
6868	// ForwardingKeyBits: The size (in bits) of keys that will be assigned
6869	// to source messages.
6870	ForwardingKeyBits int64 `json:"forwardingKeyBits,omitempty"`
6871
6872	// PersistentStateVersion: Version number for persistent state.
6873	PersistentStateVersion int64 `json:"persistentStateVersion,omitempty"`
6874
6875	// UserStageToComputationNameMap: Maps user stage names to stable
6876	// computation names.
6877	UserStageToComputationNameMap map[string]string `json:"userStageToComputationNameMap,omitempty"`
6878
6879	// ForceSendFields is a list of field names (e.g. "Computations") to
6880	// unconditionally include in API requests. By default, fields with
6881	// empty values are omitted from API requests. However, any non-pointer,
6882	// non-interface field appearing in ForceSendFields will be sent to the
6883	// server regardless of whether the field is empty or not. This may be
6884	// used to include empty fields in Patch requests.
6885	ForceSendFields []string `json:"-"`
6886
6887	// NullFields is a list of field names (e.g. "Computations") to include
6888	// in API requests with the JSON null value. By default, fields with
6889	// empty values are omitted from API requests. However, any field with
6890	// an empty value appearing in NullFields will be sent to the server as
6891	// null. It is an error if a field in this list has a non-empty value.
6892	// This may be used to include null fields in Patch requests.
6893	NullFields []string `json:"-"`
6894}
6895
6896func (s *TopologyConfig) MarshalJSON() ([]byte, error) {
6897	type NoMethod TopologyConfig
6898	raw := NoMethod(*s)
6899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6900}
6901
6902// TransformSummary: Description of the type, names/ids, and
6903// input/outputs for a transform.
6904type TransformSummary struct {
6905	// DisplayData: Transform-specific display data.
6906	DisplayData []*DisplayData `json:"displayData,omitempty"`
6907
6908	// Id: SDK generated id of this transform instance.
6909	Id string `json:"id,omitempty"`
6910
6911	// InputCollectionName: User names for all collection inputs to this
6912	// transform.
6913	InputCollectionName []string `json:"inputCollectionName,omitempty"`
6914
6915	// Kind: Type of transform.
6916	//
6917	// Possible values:
6918	//   "UNKNOWN_KIND" - Unrecognized transform type.
6919	//   "PAR_DO_KIND" - ParDo transform.
6920	//   "GROUP_BY_KEY_KIND" - Group By Key transform.
6921	//   "FLATTEN_KIND" - Flatten transform.
6922	//   "READ_KIND" - Read transform.
6923	//   "WRITE_KIND" - Write transform.
6924	//   "CONSTANT_KIND" - Constructs from a constant value, such as with
6925	// Create.of.
6926	//   "SINGLETON_KIND" - Creates a Singleton view of a collection.
6927	//   "SHUFFLE_KIND" - Opening or closing a shuffle session, often as
6928	// part of a GroupByKey.
6929	Kind string `json:"kind,omitempty"`
6930
6931	// Name: User provided name for this transform instance.
6932	Name string `json:"name,omitempty"`
6933
6934	// OutputCollectionName: User names for all collection outputs to this
6935	// transform.
6936	OutputCollectionName []string `json:"outputCollectionName,omitempty"`
6937
6938	// ForceSendFields is a list of field names (e.g. "DisplayData") to
6939	// unconditionally include in API requests. By default, fields with
6940	// empty values are omitted from API requests. However, any non-pointer,
6941	// non-interface field appearing in ForceSendFields will be sent to the
6942	// server regardless of whether the field is empty or not. This may be
6943	// used to include empty fields in Patch requests.
6944	ForceSendFields []string `json:"-"`
6945
6946	// NullFields is a list of field names (e.g. "DisplayData") to include
6947	// in API requests with the JSON null value. By default, fields with
6948	// empty values are omitted from API requests. However, any field with
6949	// an empty value appearing in NullFields will be sent to the server as
6950	// null. It is an error if a field in this list has a non-empty value.
6951	// This may be used to include null fields in Patch requests.
6952	NullFields []string `json:"-"`
6953}
6954
6955func (s *TransformSummary) MarshalJSON() ([]byte, error) {
6956	type NoMethod TransformSummary
6957	raw := NoMethod(*s)
6958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6959}
6960
6961// ValidateResponse: Response to the validation request.
6962type ValidateResponse struct {
6963	// ErrorMessage: Will be empty if validation succeeds.
6964	ErrorMessage string `json:"errorMessage,omitempty"`
6965
6966	// QueryInfo: Information about the validated query. Not defined if
6967	// validation fails.
6968	QueryInfo *QueryInfo `json:"queryInfo,omitempty"`
6969
6970	// ServerResponse contains the HTTP response code and headers from the
6971	// server.
6972	googleapi.ServerResponse `json:"-"`
6973
6974	// ForceSendFields is a list of field names (e.g. "ErrorMessage") to
6975	// unconditionally include in API requests. By default, fields with
6976	// empty values are omitted from API requests. However, any non-pointer,
6977	// non-interface field appearing in ForceSendFields will be sent to the
6978	// server regardless of whether the field is empty or not. This may be
6979	// used to include empty fields in Patch requests.
6980	ForceSendFields []string `json:"-"`
6981
6982	// NullFields is a list of field names (e.g. "ErrorMessage") to include
6983	// in API requests with the JSON null value. By default, fields with
6984	// empty values are omitted from API requests. However, any field with
6985	// an empty value appearing in NullFields will be sent to the server as
6986	// null. It is an error if a field in this list has a non-empty value.
6987	// This may be used to include null fields in Patch requests.
6988	NullFields []string `json:"-"`
6989}
6990
6991func (s *ValidateResponse) MarshalJSON() ([]byte, error) {
6992	type NoMethod ValidateResponse
6993	raw := NoMethod(*s)
6994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6995}
6996
6997// WorkItem: WorkItem represents basic information about a WorkItem to
6998// be executed in the cloud.
6999type WorkItem struct {
7000	// Configuration: Work item-specific configuration as an opaque blob.
7001	Configuration string `json:"configuration,omitempty"`
7002
7003	// Id: Identifies this WorkItem.
7004	Id int64 `json:"id,omitempty,string"`
7005
7006	// InitialReportIndex: The initial index to use when reporting the
7007	// status of the WorkItem.
7008	InitialReportIndex int64 `json:"initialReportIndex,omitempty,string"`
7009
7010	// JobId: Identifies the workflow job this WorkItem belongs to.
7011	JobId string `json:"jobId,omitempty"`
7012
7013	// LeaseExpireTime: Time when the lease on this Work will expire.
7014	LeaseExpireTime string `json:"leaseExpireTime,omitempty"`
7015
7016	// MapTask: Additional information for MapTask WorkItems.
7017	MapTask *MapTask `json:"mapTask,omitempty"`
7018
7019	// Packages: Any required packages that need to be fetched in order to
7020	// execute this WorkItem.
7021	Packages []*Package `json:"packages,omitempty"`
7022
7023	// ProjectId: Identifies the cloud project this WorkItem belongs to.
7024	ProjectId string `json:"projectId,omitempty"`
7025
7026	// ReportStatusInterval: Recommended reporting interval.
7027	ReportStatusInterval string `json:"reportStatusInterval,omitempty"`
7028
7029	// SeqMapTask: Additional information for SeqMapTask WorkItems.
7030	SeqMapTask *SeqMapTask `json:"seqMapTask,omitempty"`
7031
7032	// ShellTask: Additional information for ShellTask WorkItems.
7033	ShellTask *ShellTask `json:"shellTask,omitempty"`
7034
7035	// SourceOperationTask: Additional information for source operation
7036	// WorkItems.
7037	SourceOperationTask *SourceOperationRequest `json:"sourceOperationTask,omitempty"`
7038
7039	// StreamingComputationTask: Additional information for
7040	// StreamingComputationTask WorkItems.
7041	StreamingComputationTask *StreamingComputationTask `json:"streamingComputationTask,omitempty"`
7042
7043	// StreamingConfigTask: Additional information for StreamingConfigTask
7044	// WorkItems.
7045	StreamingConfigTask *StreamingConfigTask `json:"streamingConfigTask,omitempty"`
7046
7047	// StreamingSetupTask: Additional information for StreamingSetupTask
7048	// WorkItems.
7049	StreamingSetupTask *StreamingSetupTask `json:"streamingSetupTask,omitempty"`
7050
7051	// ForceSendFields is a list of field names (e.g. "Configuration") to
7052	// unconditionally include in API requests. By default, fields with
7053	// empty values are omitted from API requests. However, any non-pointer,
7054	// non-interface field appearing in ForceSendFields will be sent to the
7055	// server regardless of whether the field is empty or not. This may be
7056	// used to include empty fields in Patch requests.
7057	ForceSendFields []string `json:"-"`
7058
7059	// NullFields is a list of field names (e.g. "Configuration") to include
7060	// in API requests with the JSON null value. By default, fields with
7061	// empty values are omitted from API requests. However, any field with
7062	// an empty value appearing in NullFields will be sent to the server as
7063	// null. It is an error if a field in this list has a non-empty value.
7064	// This may be used to include null fields in Patch requests.
7065	NullFields []string `json:"-"`
7066}
7067
7068func (s *WorkItem) MarshalJSON() ([]byte, error) {
7069	type NoMethod WorkItem
7070	raw := NoMethod(*s)
7071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7072}
7073
7074// WorkItemDetails: Information about an individual work item execution.
7075type WorkItemDetails struct {
7076	// AttemptId: Attempt ID of this work item
7077	AttemptId string `json:"attemptId,omitempty"`
7078
7079	// EndTime: End time of this work item attempt. If the work item is
7080	// completed, this is the actual end time of the work item. Otherwise,
7081	// it is the predicted end time.
7082	EndTime string `json:"endTime,omitempty"`
7083
7084	// Metrics: Metrics for this work item.
7085	Metrics []*MetricUpdate `json:"metrics,omitempty"`
7086
7087	// Progress: Progress of this work item.
7088	Progress *ProgressTimeseries `json:"progress,omitempty"`
7089
7090	// StartTime: Start time of this work item attempt.
7091	StartTime string `json:"startTime,omitempty"`
7092
7093	// State: State of this work item.
7094	//
7095	// Possible values:
7096	//   "EXECUTION_STATE_UNKNOWN" - The component state is unknown or
7097	// unspecified.
7098	//   "EXECUTION_STATE_NOT_STARTED" - The component is not yet running.
7099	//   "EXECUTION_STATE_RUNNING" - The component is currently running.
7100	//   "EXECUTION_STATE_SUCCEEDED" - The component succeeded.
7101	//   "EXECUTION_STATE_FAILED" - The component failed.
7102	//   "EXECUTION_STATE_CANCELLED" - Execution of the component was
7103	// cancelled.
7104	State string `json:"state,omitempty"`
7105
7106	// TaskId: Name of this work item.
7107	TaskId string `json:"taskId,omitempty"`
7108
7109	// ForceSendFields is a list of field names (e.g. "AttemptId") to
7110	// unconditionally include in API requests. By default, fields with
7111	// empty values are omitted from API requests. However, any non-pointer,
7112	// non-interface field appearing in ForceSendFields will be sent to the
7113	// server regardless of whether the field is empty or not. This may be
7114	// used to include empty fields in Patch requests.
7115	ForceSendFields []string `json:"-"`
7116
7117	// NullFields is a list of field names (e.g. "AttemptId") to include in
7118	// API requests with the JSON null value. By default, fields with empty
7119	// values are omitted from API requests. However, any field with an
7120	// empty value appearing in NullFields will be sent to the server as
7121	// null. It is an error if a field in this list has a non-empty value.
7122	// This may be used to include null fields in Patch requests.
7123	NullFields []string `json:"-"`
7124}
7125
7126func (s *WorkItemDetails) MarshalJSON() ([]byte, error) {
7127	type NoMethod WorkItemDetails
7128	raw := NoMethod(*s)
7129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7130}
7131
7132// WorkItemServiceState: The Dataflow service's idea of the current
7133// state of a WorkItem being processed by a worker.
7134type WorkItemServiceState struct {
7135	// CompleteWorkStatus: If set, a request to complete the work item with
7136	// the given status. This will not be set to OK, unless supported by the
7137	// specific kind of WorkItem. It can be used for the backend to indicate
7138	// a WorkItem must terminate, e.g., for aborting work.
7139	CompleteWorkStatus *Status `json:"completeWorkStatus,omitempty"`
7140
7141	// HarnessData: Other data returned by the service, specific to the
7142	// particular worker harness.
7143	HarnessData googleapi.RawMessage `json:"harnessData,omitempty"`
7144
7145	// HotKeyDetection: A hot key is a symptom of poor data distribution in
7146	// which there are enough elements mapped to a single key to impact
7147	// pipeline performance. When present, this field includes metadata
7148	// associated with any hot key.
7149	HotKeyDetection *HotKeyDetection `json:"hotKeyDetection,omitempty"`
7150
7151	// LeaseExpireTime: Time at which the current lease will expire.
7152	LeaseExpireTime string `json:"leaseExpireTime,omitempty"`
7153
7154	// MetricShortId: The short ids that workers should use in subsequent
7155	// metric updates. Workers should strive to use short ids whenever
7156	// possible, but it is ok to request the short_id again if a worker lost
7157	// track of it (e.g. if the worker is recovering from a crash). NOTE: it
7158	// is possible that the response may have short ids for a subset of the
7159	// metrics.
7160	MetricShortId []*MetricShortId `json:"metricShortId,omitempty"`
7161
7162	// NextReportIndex: The index value to use for the next report sent by
7163	// the worker. Note: If the report call fails for whatever reason, the
7164	// worker should reuse this index for subsequent report attempts.
7165	NextReportIndex int64 `json:"nextReportIndex,omitempty,string"`
7166
7167	// ReportStatusInterval: New recommended reporting interval.
7168	ReportStatusInterval string `json:"reportStatusInterval,omitempty"`
7169
7170	// SplitRequest: The progress point in the WorkItem where the Dataflow
7171	// service suggests that the worker truncate the task.
7172	SplitRequest *ApproximateSplitRequest `json:"splitRequest,omitempty"`
7173
7174	// SuggestedStopPoint: DEPRECATED in favor of split_request.
7175	SuggestedStopPoint *ApproximateProgress `json:"suggestedStopPoint,omitempty"`
7176
7177	// SuggestedStopPosition: Obsolete, always empty.
7178	SuggestedStopPosition *Position `json:"suggestedStopPosition,omitempty"`
7179
7180	// ForceSendFields is a list of field names (e.g. "CompleteWorkStatus")
7181	// to unconditionally include in API requests. By default, fields with
7182	// empty values are omitted from API requests. However, any non-pointer,
7183	// non-interface field appearing in ForceSendFields will be sent to the
7184	// server regardless of whether the field is empty or not. This may be
7185	// used to include empty fields in Patch requests.
7186	ForceSendFields []string `json:"-"`
7187
7188	// NullFields is a list of field names (e.g. "CompleteWorkStatus") to
7189	// include in API requests with the JSON null value. By default, fields
7190	// with empty values are omitted from API requests. However, any field
7191	// with an empty value appearing in NullFields will be sent to the
7192	// server as null. It is an error if a field in this list has a
7193	// non-empty value. This may be used to include null fields in Patch
7194	// requests.
7195	NullFields []string `json:"-"`
7196}
7197
7198func (s *WorkItemServiceState) MarshalJSON() ([]byte, error) {
7199	type NoMethod WorkItemServiceState
7200	raw := NoMethod(*s)
7201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7202}
7203
7204// WorkItemStatus: Conveys a worker's progress through the work
7205// described by a WorkItem.
7206type WorkItemStatus struct {
7207	// Completed: True if the WorkItem was completed (successfully or
7208	// unsuccessfully).
7209	Completed bool `json:"completed,omitempty"`
7210
7211	// CounterUpdates: Worker output counters for this WorkItem.
7212	CounterUpdates []*CounterUpdate `json:"counterUpdates,omitempty"`
7213
7214	// DynamicSourceSplit: See documentation of stop_position.
7215	DynamicSourceSplit *DynamicSourceSplit `json:"dynamicSourceSplit,omitempty"`
7216
7217	// Errors: Specifies errors which occurred during processing. If errors
7218	// are provided, and completed = true, then the WorkItem is considered
7219	// to have failed.
7220	Errors []*Status `json:"errors,omitempty"`
7221
7222	// MetricUpdates: DEPRECATED in favor of counter_updates.
7223	MetricUpdates []*MetricUpdate `json:"metricUpdates,omitempty"`
7224
7225	// Progress: DEPRECATED in favor of reported_progress.
7226	Progress *ApproximateProgress `json:"progress,omitempty"`
7227
7228	// ReportIndex: The report index. When a WorkItem is leased, the lease
7229	// will contain an initial report index. When a WorkItem's status is
7230	// reported to the system, the report should be sent with that report
7231	// index, and the response will contain the index the worker should use
7232	// for the next report. Reports received with unexpected index values
7233	// will be rejected by the service. In order to preserve idempotency,
7234	// the worker should not alter the contents of a report, even if the
7235	// worker must submit the same report multiple times before getting back
7236	// a response. The worker should not submit a subsequent report until
7237	// the response for the previous report had been received from the
7238	// service.
7239	ReportIndex int64 `json:"reportIndex,omitempty,string"`
7240
7241	// ReportedProgress: The worker's progress through this WorkItem.
7242	ReportedProgress *ApproximateReportedProgress `json:"reportedProgress,omitempty"`
7243
7244	// RequestedLeaseDuration: Amount of time the worker requests for its
7245	// lease.
7246	RequestedLeaseDuration string `json:"requestedLeaseDuration,omitempty"`
7247
7248	// SourceFork: DEPRECATED in favor of dynamic_source_split.
7249	SourceFork *SourceFork `json:"sourceFork,omitempty"`
7250
7251	// SourceOperationResponse: If the work item represented a
7252	// SourceOperationRequest, and the work is completed, contains the
7253	// result of the operation.
7254	SourceOperationResponse *SourceOperationResponse `json:"sourceOperationResponse,omitempty"`
7255
7256	// StopPosition: A worker may split an active map task in two parts,
7257	// "primary" and "residual", continuing to process the primary part and
7258	// returning the residual part into the pool of available work. This
7259	// event is called a "dynamic split" and is critical to the dynamic work
7260	// rebalancing feature. The two obtained sub-tasks are called "parts" of
7261	// the split. The parts, if concatenated, must represent the same input
7262	// as would be read by the current task if the split did not happen. The
7263	// exact way in which the original task is decomposed into the two parts
7264	// is specified either as a position demarcating them (stop_position),
7265	// or explicitly as two DerivedSources, if this task consumes a
7266	// user-defined source type (dynamic_source_split). The "current" task
7267	// is adjusted as a result of the split: after a task with range [A, B)
7268	// sends a stop_position update at C, its range is considered to be [A,
7269	// C), e.g.: * Progress should be interpreted relative to the new range,
7270	// e.g. "75% completed" means "75% of [A, C) completed" * The worker
7271	// should interpret proposed_stop_position relative to the new range,
7272	// e.g. "split at 68%" should be interpreted as "split at 68% of [A,
7273	// C)". * If the worker chooses to split again using stop_position, only
7274	// stop_positions in [A, C) will be accepted. * Etc.
7275	// dynamic_source_split has similar semantics: e.g., if a task with
7276	// source S splits using dynamic_source_split into {P, R} (where P and R
7277	// must be together equivalent to S), then subsequent progress and
7278	// proposed_stop_position should be interpreted relative to P, and in a
7279	// potential subsequent dynamic_source_split into {P', R'}, P' and R'
7280	// must be together equivalent to P, etc.
7281	StopPosition *Position `json:"stopPosition,omitempty"`
7282
7283	// TotalThrottlerWaitTimeSeconds: Total time the worker spent being
7284	// throttled by external systems.
7285	TotalThrottlerWaitTimeSeconds float64 `json:"totalThrottlerWaitTimeSeconds,omitempty"`
7286
7287	// WorkItemId: Identifies the WorkItem.
7288	WorkItemId string `json:"workItemId,omitempty"`
7289
7290	// ForceSendFields is a list of field names (e.g. "Completed") to
7291	// unconditionally include in API requests. By default, fields with
7292	// empty values are omitted from API requests. However, any non-pointer,
7293	// non-interface field appearing in ForceSendFields will be sent to the
7294	// server regardless of whether the field is empty or not. This may be
7295	// used to include empty fields in Patch requests.
7296	ForceSendFields []string `json:"-"`
7297
7298	// NullFields is a list of field names (e.g. "Completed") to include in
7299	// API requests with the JSON null value. By default, fields with empty
7300	// values are omitted from API requests. However, any field with an
7301	// empty value appearing in NullFields will be sent to the server as
7302	// null. It is an error if a field in this list has a non-empty value.
7303	// This may be used to include null fields in Patch requests.
7304	NullFields []string `json:"-"`
7305}
7306
7307func (s *WorkItemStatus) MarshalJSON() ([]byte, error) {
7308	type NoMethod WorkItemStatus
7309	raw := NoMethod(*s)
7310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7311}
7312
7313func (s *WorkItemStatus) UnmarshalJSON(data []byte) error {
7314	type NoMethod WorkItemStatus
7315	var s1 struct {
7316		TotalThrottlerWaitTimeSeconds gensupport.JSONFloat64 `json:"totalThrottlerWaitTimeSeconds"`
7317		*NoMethod
7318	}
7319	s1.NoMethod = (*NoMethod)(s)
7320	if err := json.Unmarshal(data, &s1); err != nil {
7321		return err
7322	}
7323	s.TotalThrottlerWaitTimeSeconds = float64(s1.TotalThrottlerWaitTimeSeconds)
7324	return nil
7325}
7326
7327// WorkerDetails: Information about a worker
7328type WorkerDetails struct {
7329	// WorkItems: Work items processed by this worker, sorted by time.
7330	WorkItems []*WorkItemDetails `json:"workItems,omitempty"`
7331
7332	// WorkerName: Name of this worker
7333	WorkerName string `json:"workerName,omitempty"`
7334
7335	// ForceSendFields is a list of field names (e.g. "WorkItems") to
7336	// unconditionally include in API requests. By default, fields with
7337	// empty values are omitted from API requests. However, any non-pointer,
7338	// non-interface field appearing in ForceSendFields will be sent to the
7339	// server regardless of whether the field is empty or not. This may be
7340	// used to include empty fields in Patch requests.
7341	ForceSendFields []string `json:"-"`
7342
7343	// NullFields is a list of field names (e.g. "WorkItems") to include in
7344	// API requests with the JSON null value. By default, fields with empty
7345	// values are omitted from API requests. However, any field with an
7346	// empty value appearing in NullFields will be sent to the server as
7347	// null. It is an error if a field in this list has a non-empty value.
7348	// This may be used to include null fields in Patch requests.
7349	NullFields []string `json:"-"`
7350}
7351
7352func (s *WorkerDetails) MarshalJSON() ([]byte, error) {
7353	type NoMethod WorkerDetails
7354	raw := NoMethod(*s)
7355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7356}
7357
7358// WorkerHealthReport: WorkerHealthReport contains information about the
7359// health of a worker. The VM should be identified by the labels
7360// attached to the WorkerMessage that this health ping belongs to.
7361type WorkerHealthReport struct {
7362	// Msg: A message describing any unusual health reports.
7363	Msg string `json:"msg,omitempty"`
7364
7365	// Pods: The pods running on the worker. See:
7366	// http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod
7367	// This field is used by the worker to send the status of the indvidual
7368	// containers running on each worker.
7369	Pods []googleapi.RawMessage `json:"pods,omitempty"`
7370
7371	// ReportInterval: The interval at which the worker is sending health
7372	// reports. The default value of 0 should be interpreted as the field is
7373	// not being explicitly set by the worker.
7374	ReportInterval string `json:"reportInterval,omitempty"`
7375
7376	// VmIsBroken: Whether the VM is in a permanently broken state. Broken
7377	// VMs should be abandoned or deleted ASAP to avoid assigning or
7378	// completing any work.
7379	VmIsBroken bool `json:"vmIsBroken,omitempty"`
7380
7381	// VmIsHealthy: Whether the VM is currently healthy.
7382	VmIsHealthy bool `json:"vmIsHealthy,omitempty"`
7383
7384	// VmStartupTime: The time the VM was booted.
7385	VmStartupTime string `json:"vmStartupTime,omitempty"`
7386
7387	// ForceSendFields is a list of field names (e.g. "Msg") to
7388	// unconditionally include in API requests. By default, fields with
7389	// empty values are omitted from API requests. However, any non-pointer,
7390	// non-interface field appearing in ForceSendFields will be sent to the
7391	// server regardless of whether the field is empty or not. This may be
7392	// used to include empty fields in Patch requests.
7393	ForceSendFields []string `json:"-"`
7394
7395	// NullFields is a list of field names (e.g. "Msg") to include in API
7396	// requests with the JSON null value. By default, fields with empty
7397	// values are omitted from API requests. However, any field with an
7398	// empty value appearing in NullFields will be sent to the server as
7399	// null. It is an error if a field in this list has a non-empty value.
7400	// This may be used to include null fields in Patch requests.
7401	NullFields []string `json:"-"`
7402}
7403
7404func (s *WorkerHealthReport) MarshalJSON() ([]byte, error) {
7405	type NoMethod WorkerHealthReport
7406	raw := NoMethod(*s)
7407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7408}
7409
7410// WorkerHealthReportResponse: WorkerHealthReportResponse contains
7411// information returned to the worker in response to a health ping.
7412type WorkerHealthReportResponse struct {
7413	// ReportInterval: A positive value indicates the worker should change
7414	// its reporting interval to the specified value. The default value of
7415	// zero means no change in report rate is requested by the server.
7416	ReportInterval string `json:"reportInterval,omitempty"`
7417
7418	// ForceSendFields is a list of field names (e.g. "ReportInterval") to
7419	// unconditionally include in API requests. By default, fields with
7420	// empty values are omitted from API requests. However, any non-pointer,
7421	// non-interface field appearing in ForceSendFields will be sent to the
7422	// server regardless of whether the field is empty or not. This may be
7423	// used to include empty fields in Patch requests.
7424	ForceSendFields []string `json:"-"`
7425
7426	// NullFields is a list of field names (e.g. "ReportInterval") to
7427	// include in API requests with the JSON null value. By default, fields
7428	// with empty values are omitted from API requests. However, any field
7429	// with an empty value appearing in NullFields will be sent to the
7430	// server as null. It is an error if a field in this list has a
7431	// non-empty value. This may be used to include null fields in Patch
7432	// requests.
7433	NullFields []string `json:"-"`
7434}
7435
7436func (s *WorkerHealthReportResponse) MarshalJSON() ([]byte, error) {
7437	type NoMethod WorkerHealthReportResponse
7438	raw := NoMethod(*s)
7439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7440}
7441
7442// WorkerLifecycleEvent: A report of an event in a worker's lifecycle.
7443// The proto contains one event, because the worker is expected to
7444// asynchronously send each message immediately after the event. Due to
7445// this asynchrony, messages may arrive out of order (or missing), and
7446// it is up to the consumer to interpret. The timestamp of the event is
7447// in the enclosing WorkerMessage proto.
7448type WorkerLifecycleEvent struct {
7449	// ContainerStartTime: The start time of this container. All events will
7450	// report this so that events can be grouped together across
7451	// container/VM restarts.
7452	ContainerStartTime string `json:"containerStartTime,omitempty"`
7453
7454	// Event: The event being reported.
7455	//
7456	// Possible values:
7457	//   "UNKNOWN_EVENT" - Invalid event.
7458	//   "OS_START" - The time the VM started.
7459	//   "CONTAINER_START" - Our container code starts running. Multiple
7460	// containers could be distinguished with WorkerMessage.labels if
7461	// desired.
7462	//   "NETWORK_UP" - The worker has a functional external network
7463	// connection.
7464	//   "STAGING_FILES_DOWNLOAD_START" - Started downloading staging files.
7465	//   "STAGING_FILES_DOWNLOAD_FINISH" - Finished downloading all staging
7466	// files.
7467	//   "SDK_INSTALL_START" - For applicable SDKs, started installation of
7468	// SDK and worker packages.
7469	//   "SDK_INSTALL_FINISH" - Finished installing SDK.
7470	Event string `json:"event,omitempty"`
7471
7472	// Metadata: Other stats that can accompany an event. E.g. {
7473	// "downloaded_bytes" : "123456" }
7474	Metadata map[string]string `json:"metadata,omitempty"`
7475
7476	// ForceSendFields is a list of field names (e.g. "ContainerStartTime")
7477	// to unconditionally include in API requests. By default, fields with
7478	// empty values are omitted from API requests. However, any non-pointer,
7479	// non-interface field appearing in ForceSendFields will be sent to the
7480	// server regardless of whether the field is empty or not. This may be
7481	// used to include empty fields in Patch requests.
7482	ForceSendFields []string `json:"-"`
7483
7484	// NullFields is a list of field names (e.g. "ContainerStartTime") to
7485	// include in API requests with the JSON null value. By default, fields
7486	// with empty values are omitted from API requests. However, any field
7487	// with an empty value appearing in NullFields will be sent to the
7488	// server as null. It is an error if a field in this list has a
7489	// non-empty value. This may be used to include null fields in Patch
7490	// requests.
7491	NullFields []string `json:"-"`
7492}
7493
7494func (s *WorkerLifecycleEvent) MarshalJSON() ([]byte, error) {
7495	type NoMethod WorkerLifecycleEvent
7496	raw := NoMethod(*s)
7497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7498}
7499
7500// WorkerMessage: WorkerMessage provides information to the backend
7501// about a worker.
7502type WorkerMessage struct {
7503	// Labels: Labels are used to group WorkerMessages. For example, a
7504	// worker_message about a particular container might have the labels: {
7505	// "JOB_ID": "2015-04-22", "WORKER_ID": "wordcount-vm-2015…"
7506	// "CONTAINER_TYPE": "worker", "CONTAINER_ID": "ac1234def"} Label tags
7507	// typically correspond to Label enum values. However, for ease of
7508	// development other strings can be used as tags. LABEL_UNSPECIFIED
7509	// should not be used here.
7510	Labels map[string]string `json:"labels,omitempty"`
7511
7512	// Time: The timestamp of the worker_message.
7513	Time string `json:"time,omitempty"`
7514
7515	// WorkerHealthReport: The health of a worker.
7516	WorkerHealthReport *WorkerHealthReport `json:"workerHealthReport,omitempty"`
7517
7518	// WorkerLifecycleEvent: Record of worker lifecycle events.
7519	WorkerLifecycleEvent *WorkerLifecycleEvent `json:"workerLifecycleEvent,omitempty"`
7520
7521	// WorkerMessageCode: A worker message code.
7522	WorkerMessageCode *WorkerMessageCode `json:"workerMessageCode,omitempty"`
7523
7524	// WorkerMetrics: Resource metrics reported by workers.
7525	WorkerMetrics *ResourceUtilizationReport `json:"workerMetrics,omitempty"`
7526
7527	// WorkerShutdownNotice: Shutdown notice by workers.
7528	WorkerShutdownNotice *WorkerShutdownNotice `json:"workerShutdownNotice,omitempty"`
7529
7530	// ForceSendFields is a list of field names (e.g. "Labels") to
7531	// unconditionally include in API requests. By default, fields with
7532	// empty values are omitted from API requests. However, any non-pointer,
7533	// non-interface field appearing in ForceSendFields will be sent to the
7534	// server regardless of whether the field is empty or not. This may be
7535	// used to include empty fields in Patch requests.
7536	ForceSendFields []string `json:"-"`
7537
7538	// NullFields is a list of field names (e.g. "Labels") to include in API
7539	// requests with the JSON null value. By default, fields with empty
7540	// values are omitted from API requests. However, any field with an
7541	// empty value appearing in NullFields will be sent to the server as
7542	// null. It is an error if a field in this list has a non-empty value.
7543	// This may be used to include null fields in Patch requests.
7544	NullFields []string `json:"-"`
7545}
7546
7547func (s *WorkerMessage) MarshalJSON() ([]byte, error) {
7548	type NoMethod WorkerMessage
7549	raw := NoMethod(*s)
7550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7551}
7552
7553// WorkerMessageCode: A message code is used to report status and error
7554// messages to the service. The message codes are intended to be machine
7555// readable. The service will take care of translating these into user
7556// understandable messages if necessary. Example use cases: 1. Worker
7557// processes reporting successful startup. 2. Worker processes reporting
7558// specific errors (e.g. package staging failure).
7559type WorkerMessageCode struct {
7560	// Code: The code is a string intended for consumption by a machine that
7561	// identifies the type of message being sent. Examples: 1.
7562	// "HARNESS_STARTED" might be used to indicate the worker harness has
7563	// started. 2. "GCS_DOWNLOAD_ERROR" might be used to indicate an error
7564	// downloading a GCS file as part of the boot process of one of the
7565	// worker containers. This is a string and not an enum to make it easy
7566	// to add new codes without waiting for an API change.
7567	Code string `json:"code,omitempty"`
7568
7569	// Parameters: Parameters contains specific information about the code.
7570	// This is a struct to allow parameters of different types. Examples: 1.
7571	// For a "HARNESS_STARTED" message parameters might provide the name of
7572	// the worker and additional data like timing information. 2. For a
7573	// "GCS_DOWNLOAD_ERROR" parameters might contain fields listing the GCS
7574	// objects being downloaded and fields containing errors. In general
7575	// complex data structures should be avoided. If a worker needs to send
7576	// a specific and complicated data structure then please consider
7577	// defining a new proto and adding it to the data oneof in
7578	// WorkerMessageResponse. Conventions: Parameters should only be used
7579	// for information that isn't typically passed as a label. hostname and
7580	// other worker identifiers should almost always be passed as labels
7581	// since they will be included on most messages.
7582	Parameters googleapi.RawMessage `json:"parameters,omitempty"`
7583
7584	// ForceSendFields is a list of field names (e.g. "Code") to
7585	// unconditionally include in API requests. By default, fields with
7586	// empty values are omitted from API requests. However, any non-pointer,
7587	// non-interface field appearing in ForceSendFields will be sent to the
7588	// server regardless of whether the field is empty or not. This may be
7589	// used to include empty fields in Patch requests.
7590	ForceSendFields []string `json:"-"`
7591
7592	// NullFields is a list of field names (e.g. "Code") to include in API
7593	// requests with the JSON null value. By default, fields with empty
7594	// values are omitted from API requests. However, any field with an
7595	// empty value appearing in NullFields will be sent to the server as
7596	// null. It is an error if a field in this list has a non-empty value.
7597	// This may be used to include null fields in Patch requests.
7598	NullFields []string `json:"-"`
7599}
7600
7601func (s *WorkerMessageCode) MarshalJSON() ([]byte, error) {
7602	type NoMethod WorkerMessageCode
7603	raw := NoMethod(*s)
7604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7605}
7606
7607// WorkerMessageResponse: A worker_message response allows the server to
7608// pass information to the sender.
7609type WorkerMessageResponse struct {
7610	// WorkerHealthReportResponse: The service's response to a worker's
7611	// health report.
7612	WorkerHealthReportResponse *WorkerHealthReportResponse `json:"workerHealthReportResponse,omitempty"`
7613
7614	// WorkerMetricsResponse: Service's response to reporting worker metrics
7615	// (currently empty).
7616	WorkerMetricsResponse *ResourceUtilizationReportResponse `json:"workerMetricsResponse,omitempty"`
7617
7618	// WorkerShutdownNoticeResponse: Service's response to shutdown notice
7619	// (currently empty).
7620	WorkerShutdownNoticeResponse *WorkerShutdownNoticeResponse `json:"workerShutdownNoticeResponse,omitempty"`
7621
7622	// ForceSendFields is a list of field names (e.g.
7623	// "WorkerHealthReportResponse") to unconditionally include in API
7624	// requests. By default, fields with empty values are omitted from API
7625	// requests. However, any non-pointer, non-interface field appearing in
7626	// ForceSendFields will be sent to the server regardless of whether the
7627	// field is empty or not. This may be used to include empty fields in
7628	// Patch requests.
7629	ForceSendFields []string `json:"-"`
7630
7631	// NullFields is a list of field names (e.g.
7632	// "WorkerHealthReportResponse") to include in API requests with the
7633	// JSON null value. By default, fields with empty values are omitted
7634	// from API requests. However, any field with an empty value appearing
7635	// in NullFields will be sent to the server as null. It is an error if a
7636	// field in this list has a non-empty value. This may be used to include
7637	// null fields in Patch requests.
7638	NullFields []string `json:"-"`
7639}
7640
7641func (s *WorkerMessageResponse) MarshalJSON() ([]byte, error) {
7642	type NoMethod WorkerMessageResponse
7643	raw := NoMethod(*s)
7644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7645}
7646
7647// WorkerPool: Describes one particular pool of Cloud Dataflow workers
7648// to be instantiated by the Cloud Dataflow service in order to perform
7649// the computations required by a job. Note that a workflow job may use
7650// multiple pools, in order to match the various computational
7651// requirements of the various stages of the job.
7652type WorkerPool struct {
7653	// AutoscalingSettings: Settings for autoscaling of this WorkerPool.
7654	AutoscalingSettings *AutoscalingSettings `json:"autoscalingSettings,omitempty"`
7655
7656	// DataDisks: Data disks that are used by a VM in this workflow.
7657	DataDisks []*Disk `json:"dataDisks,omitempty"`
7658
7659	// DefaultPackageSet: The default package set to install. This allows
7660	// the service to select a default set of packages which are useful to
7661	// worker harnesses written in a particular language.
7662	//
7663	// Possible values:
7664	//   "DEFAULT_PACKAGE_SET_UNKNOWN" - The default set of packages to
7665	// stage is unknown, or unspecified.
7666	//   "DEFAULT_PACKAGE_SET_NONE" - Indicates that no packages should be
7667	// staged at the worker unless explicitly specified by the job.
7668	//   "DEFAULT_PACKAGE_SET_JAVA" - Stage packages typically useful to
7669	// workers written in Java.
7670	//   "DEFAULT_PACKAGE_SET_PYTHON" - Stage pacakges typically useful to
7671	// workers written in Python.
7672	DefaultPackageSet string `json:"defaultPackageSet,omitempty"`
7673
7674	// DiskSizeGb: Size of root disk for VMs, in GB. If zero or unspecified,
7675	// the service will attempt to choose a reasonable default.
7676	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
7677
7678	// DiskSourceImage: Fully qualified source image for disks.
7679	DiskSourceImage string `json:"diskSourceImage,omitempty"`
7680
7681	// DiskType: Type of root disk for VMs. If empty or unspecified, the
7682	// service will attempt to choose a reasonable default.
7683	DiskType string `json:"diskType,omitempty"`
7684
7685	// IpConfiguration: Configuration for VM IPs.
7686	//
7687	// Possible values:
7688	//   "WORKER_IP_UNSPECIFIED" - The configuration is unknown, or
7689	// unspecified.
7690	//   "WORKER_IP_PUBLIC" - Workers should have public IP addresses.
7691	//   "WORKER_IP_PRIVATE" - Workers should have private IP addresses.
7692	IpConfiguration string `json:"ipConfiguration,omitempty"`
7693
7694	// Kind: The kind of the worker pool; currently only `harness` and
7695	// `shuffle` are supported.
7696	Kind string `json:"kind,omitempty"`
7697
7698	// MachineType: Machine type (e.g. "n1-standard-1"). If empty or
7699	// unspecified, the service will attempt to choose a reasonable default.
7700	MachineType string `json:"machineType,omitempty"`
7701
7702	// Metadata: Metadata to set on the Google Compute Engine VMs.
7703	Metadata map[string]string `json:"metadata,omitempty"`
7704
7705	// Network: Network to which VMs will be assigned. If empty or
7706	// unspecified, the service will use the network "default".
7707	Network string `json:"network,omitempty"`
7708
7709	// NumThreadsPerWorker: The number of threads per worker harness. If
7710	// empty or unspecified, the service will choose a number of threads
7711	// (according to the number of cores on the selected machine type for
7712	// batch, or 1 by convention for streaming).
7713	NumThreadsPerWorker int64 `json:"numThreadsPerWorker,omitempty"`
7714
7715	// NumWorkers: Number of Google Compute Engine workers in this pool
7716	// needed to execute the job. If zero or unspecified, the service will
7717	// attempt to choose a reasonable default.
7718	NumWorkers int64 `json:"numWorkers,omitempty"`
7719
7720	// OnHostMaintenance: The action to take on host maintenance, as defined
7721	// by the Google Compute Engine API.
7722	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
7723
7724	// Packages: Packages to be installed on workers.
7725	Packages []*Package `json:"packages,omitempty"`
7726
7727	// PoolArgs: Extra arguments for this worker pool.
7728	PoolArgs googleapi.RawMessage `json:"poolArgs,omitempty"`
7729
7730	// SdkHarnessContainerImages: Set of SDK harness containers needed to
7731	// execute this pipeline. This will only be set in the Fn API path. For
7732	// non-cross-language pipelines this should have only one entry.
7733	// Cross-language pipelines will have two or more entries.
7734	SdkHarnessContainerImages []*SdkHarnessContainerImage `json:"sdkHarnessContainerImages,omitempty"`
7735
7736	// Subnetwork: Subnetwork to which VMs will be assigned, if desired.
7737	// Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
7738	Subnetwork string `json:"subnetwork,omitempty"`
7739
7740	// TaskrunnerSettings: Settings passed through to Google Compute Engine
7741	// workers when using the standard Dataflow task runner. Users should
7742	// ignore this field.
7743	TaskrunnerSettings *TaskRunnerSettings `json:"taskrunnerSettings,omitempty"`
7744
7745	// TeardownPolicy: Sets the policy for determining when to turndown
7746	// worker pool. Allowed values are: `TEARDOWN_ALWAYS`,
7747	// `TEARDOWN_ON_SUCCESS`, and `TEARDOWN_NEVER`. `TEARDOWN_ALWAYS` means
7748	// workers are always torn down regardless of whether the job succeeds.
7749	// `TEARDOWN_ON_SUCCESS` means workers are torn down if the job
7750	// succeeds. `TEARDOWN_NEVER` means the workers are never torn down. If
7751	// the workers are not torn down by the service, they will continue to
7752	// run and use Google Compute Engine VM resources in the user's project
7753	// until they are explicitly terminated by the user. Because of this,
7754	// Google recommends using the `TEARDOWN_ALWAYS` policy except for
7755	// small, manually supervised test jobs. If unknown or unspecified, the
7756	// service will attempt to choose a reasonable default.
7757	//
7758	// Possible values:
7759	//   "TEARDOWN_POLICY_UNKNOWN" - The teardown policy isn't specified, or
7760	// is unknown.
7761	//   "TEARDOWN_ALWAYS" - Always teardown the resource.
7762	//   "TEARDOWN_ON_SUCCESS" - Teardown the resource on success. This is
7763	// useful for debugging failures.
7764	//   "TEARDOWN_NEVER" - Never teardown the resource. This is useful for
7765	// debugging and development.
7766	TeardownPolicy string `json:"teardownPolicy,omitempty"`
7767
7768	// WorkerHarnessContainerImage: Required. Docker container image that
7769	// executes the Cloud Dataflow worker harness, residing in Google
7770	// Container Registry. Deprecated for the Fn API path. Use
7771	// sdk_harness_container_images instead.
7772	WorkerHarnessContainerImage string `json:"workerHarnessContainerImage,omitempty"`
7773
7774	// Zone: Zone to run the worker pools in. If empty or unspecified, the
7775	// service will attempt to choose a reasonable default.
7776	Zone string `json:"zone,omitempty"`
7777
7778	// ForceSendFields is a list of field names (e.g. "AutoscalingSettings")
7779	// to unconditionally include in API requests. By default, fields with
7780	// empty values are omitted from API requests. However, any non-pointer,
7781	// non-interface field appearing in ForceSendFields will be sent to the
7782	// server regardless of whether the field is empty or not. This may be
7783	// used to include empty fields in Patch requests.
7784	ForceSendFields []string `json:"-"`
7785
7786	// NullFields is a list of field names (e.g. "AutoscalingSettings") to
7787	// include in API requests with the JSON null value. By default, fields
7788	// with empty values are omitted from API requests. However, any field
7789	// with an empty value appearing in NullFields will be sent to the
7790	// server as null. It is an error if a field in this list has a
7791	// non-empty value. This may be used to include null fields in Patch
7792	// requests.
7793	NullFields []string `json:"-"`
7794}
7795
7796func (s *WorkerPool) MarshalJSON() ([]byte, error) {
7797	type NoMethod WorkerPool
7798	raw := NoMethod(*s)
7799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7800}
7801
7802// WorkerSettings: Provides data to pass through to the worker harness.
7803type WorkerSettings struct {
7804	// BaseUrl: The base URL for accessing Google Cloud APIs. When workers
7805	// access Google Cloud APIs, they logically do so via relative URLs. If
7806	// this field is specified, it supplies the base URL to use for
7807	// resolving these relative URLs. The normative algorithm used is
7808	// defined by RFC 1808, "Relative Uniform Resource Locators". If not
7809	// specified, the default value is "http://www.googleapis.com/"
7810	BaseUrl string `json:"baseUrl,omitempty"`
7811
7812	// ReportingEnabled: Whether to send work progress updates to the
7813	// service.
7814	ReportingEnabled bool `json:"reportingEnabled,omitempty"`
7815
7816	// ServicePath: The Cloud Dataflow service path relative to the root
7817	// URL, for example, "dataflow/v1b3/projects".
7818	ServicePath string `json:"servicePath,omitempty"`
7819
7820	// ShuffleServicePath: The Shuffle service path relative to the root
7821	// URL, for example, "shuffle/v1beta1".
7822	ShuffleServicePath string `json:"shuffleServicePath,omitempty"`
7823
7824	// TempStoragePrefix: The prefix of the resources the system should use
7825	// for temporary storage. The supported resource type is: Google Cloud
7826	// Storage: storage.googleapis.com/{bucket}/{object}
7827	// bucket.storage.googleapis.com/{object}
7828	TempStoragePrefix string `json:"tempStoragePrefix,omitempty"`
7829
7830	// WorkerId: The ID of the worker running this pipeline.
7831	WorkerId string `json:"workerId,omitempty"`
7832
7833	// ForceSendFields is a list of field names (e.g. "BaseUrl") to
7834	// unconditionally include in API requests. By default, fields with
7835	// empty values are omitted from API requests. However, any non-pointer,
7836	// non-interface field appearing in ForceSendFields will be sent to the
7837	// server regardless of whether the field is empty or not. This may be
7838	// used to include empty fields in Patch requests.
7839	ForceSendFields []string `json:"-"`
7840
7841	// NullFields is a list of field names (e.g. "BaseUrl") to include in
7842	// API requests with the JSON null value. By default, fields with empty
7843	// values are omitted from API requests. However, any field with an
7844	// empty value appearing in NullFields will be sent to the server as
7845	// null. It is an error if a field in this list has a non-empty value.
7846	// This may be used to include null fields in Patch requests.
7847	NullFields []string `json:"-"`
7848}
7849
7850func (s *WorkerSettings) MarshalJSON() ([]byte, error) {
7851	type NoMethod WorkerSettings
7852	raw := NoMethod(*s)
7853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7854}
7855
7856// WorkerShutdownNotice: Shutdown notification from workers. This is to
7857// be sent by the shutdown script of the worker VM so that the backend
7858// knows that the VM is being shut down.
7859type WorkerShutdownNotice struct {
7860	// Reason: The reason for the worker shutdown. Current possible values
7861	// are: "UNKNOWN": shutdown reason is unknown. "PREEMPTION": shutdown
7862	// reason is preemption. Other possible reasons may be added in the
7863	// future.
7864	Reason string `json:"reason,omitempty"`
7865
7866	// ForceSendFields is a list of field names (e.g. "Reason") to
7867	// unconditionally include in API requests. By default, fields with
7868	// empty values are omitted from API requests. However, any non-pointer,
7869	// non-interface field appearing in ForceSendFields will be sent to the
7870	// server regardless of whether the field is empty or not. This may be
7871	// used to include empty fields in Patch requests.
7872	ForceSendFields []string `json:"-"`
7873
7874	// NullFields is a list of field names (e.g. "Reason") to include in API
7875	// requests with the JSON null value. By default, fields with empty
7876	// values are omitted from API requests. However, any field with an
7877	// empty value appearing in NullFields will be sent to the server as
7878	// null. It is an error if a field in this list has a non-empty value.
7879	// This may be used to include null fields in Patch requests.
7880	NullFields []string `json:"-"`
7881}
7882
7883func (s *WorkerShutdownNotice) MarshalJSON() ([]byte, error) {
7884	type NoMethod WorkerShutdownNotice
7885	raw := NoMethod(*s)
7886	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7887}
7888
7889// WorkerShutdownNoticeResponse: Service-side response to WorkerMessage
7890// issuing shutdown notice.
7891type WorkerShutdownNoticeResponse struct {
7892}
7893
7894// WriteInstruction: An instruction that writes records. Takes one
7895// input, produces no outputs.
7896type WriteInstruction struct {
7897	// Input: The input.
7898	Input *InstructionInput `json:"input,omitempty"`
7899
7900	// Sink: The sink to write to.
7901	Sink *Sink `json:"sink,omitempty"`
7902
7903	// ForceSendFields is a list of field names (e.g. "Input") to
7904	// unconditionally include in API requests. By default, fields with
7905	// empty values are omitted from API requests. However, any non-pointer,
7906	// non-interface field appearing in ForceSendFields will be sent to the
7907	// server regardless of whether the field is empty or not. This may be
7908	// used to include empty fields in Patch requests.
7909	ForceSendFields []string `json:"-"`
7910
7911	// NullFields is a list of field names (e.g. "Input") to include in API
7912	// requests with the JSON null value. By default, fields with empty
7913	// values are omitted from API requests. However, any field with an
7914	// empty value appearing in NullFields will be sent to the server as
7915	// null. It is an error if a field in this list has a non-empty value.
7916	// This may be used to include null fields in Patch requests.
7917	NullFields []string `json:"-"`
7918}
7919
7920func (s *WriteInstruction) MarshalJSON() ([]byte, error) {
7921	type NoMethod WriteInstruction
7922	raw := NoMethod(*s)
7923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7924}
7925
7926// method id "dataflow.projects.deleteSnapshots":
7927
7928type ProjectsDeleteSnapshotsCall struct {
7929	s          *Service
7930	projectId  string
7931	urlParams_ gensupport.URLParams
7932	ctx_       context.Context
7933	header_    http.Header
7934}
7935
7936// DeleteSnapshots: Deletes a snapshot.
7937func (r *ProjectsService) DeleteSnapshots(projectId string) *ProjectsDeleteSnapshotsCall {
7938	c := &ProjectsDeleteSnapshotsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7939	c.projectId = projectId
7940	return c
7941}
7942
7943// Location sets the optional parameter "location": The location that
7944// contains this snapshot.
7945func (c *ProjectsDeleteSnapshotsCall) Location(location string) *ProjectsDeleteSnapshotsCall {
7946	c.urlParams_.Set("location", location)
7947	return c
7948}
7949
7950// SnapshotId sets the optional parameter "snapshotId": The ID of the
7951// snapshot.
7952func (c *ProjectsDeleteSnapshotsCall) SnapshotId(snapshotId string) *ProjectsDeleteSnapshotsCall {
7953	c.urlParams_.Set("snapshotId", snapshotId)
7954	return c
7955}
7956
7957// Fields allows partial responses to be retrieved. See
7958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7959// for more information.
7960func (c *ProjectsDeleteSnapshotsCall) Fields(s ...googleapi.Field) *ProjectsDeleteSnapshotsCall {
7961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7962	return c
7963}
7964
7965// Context sets the context to be used in this call's Do method. Any
7966// pending HTTP request will be aborted if the provided context is
7967// canceled.
7968func (c *ProjectsDeleteSnapshotsCall) Context(ctx context.Context) *ProjectsDeleteSnapshotsCall {
7969	c.ctx_ = ctx
7970	return c
7971}
7972
7973// Header returns an http.Header that can be modified by the caller to
7974// add HTTP headers to the request.
7975func (c *ProjectsDeleteSnapshotsCall) Header() http.Header {
7976	if c.header_ == nil {
7977		c.header_ = make(http.Header)
7978	}
7979	return c.header_
7980}
7981
7982func (c *ProjectsDeleteSnapshotsCall) doRequest(alt string) (*http.Response, error) {
7983	reqHeaders := make(http.Header)
7984	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
7985	for k, v := range c.header_ {
7986		reqHeaders[k] = v
7987	}
7988	reqHeaders.Set("User-Agent", c.s.userAgent())
7989	var body io.Reader = nil
7990	c.urlParams_.Set("alt", alt)
7991	c.urlParams_.Set("prettyPrint", "false")
7992	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/snapshots")
7993	urls += "?" + c.urlParams_.Encode()
7994	req, err := http.NewRequest("DELETE", urls, body)
7995	if err != nil {
7996		return nil, err
7997	}
7998	req.Header = reqHeaders
7999	googleapi.Expand(req.URL, map[string]string{
8000		"projectId": c.projectId,
8001	})
8002	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8003}
8004
8005// Do executes the "dataflow.projects.deleteSnapshots" call.
8006// Exactly one of *DeleteSnapshotResponse or error will be non-nil. Any
8007// non-2xx status code is an error. Response headers are in either
8008// *DeleteSnapshotResponse.ServerResponse.Header or (if a response was
8009// returned at all) in error.(*googleapi.Error).Header. Use
8010// googleapi.IsNotModified to check whether the returned error was
8011// because http.StatusNotModified was returned.
8012func (c *ProjectsDeleteSnapshotsCall) Do(opts ...googleapi.CallOption) (*DeleteSnapshotResponse, error) {
8013	gensupport.SetOptions(c.urlParams_, opts...)
8014	res, err := c.doRequest("json")
8015	if res != nil && res.StatusCode == http.StatusNotModified {
8016		if res.Body != nil {
8017			res.Body.Close()
8018		}
8019		return nil, &googleapi.Error{
8020			Code:   res.StatusCode,
8021			Header: res.Header,
8022		}
8023	}
8024	if err != nil {
8025		return nil, err
8026	}
8027	defer googleapi.CloseBody(res)
8028	if err := googleapi.CheckResponse(res); err != nil {
8029		return nil, err
8030	}
8031	ret := &DeleteSnapshotResponse{
8032		ServerResponse: googleapi.ServerResponse{
8033			Header:         res.Header,
8034			HTTPStatusCode: res.StatusCode,
8035		},
8036	}
8037	target := &ret
8038	if err := gensupport.DecodeResponse(target, res); err != nil {
8039		return nil, err
8040	}
8041	return ret, nil
8042	// {
8043	//   "description": "Deletes a snapshot.",
8044	//   "flatPath": "v1b3/projects/{projectId}/snapshots",
8045	//   "httpMethod": "DELETE",
8046	//   "id": "dataflow.projects.deleteSnapshots",
8047	//   "parameterOrder": [
8048	//     "projectId"
8049	//   ],
8050	//   "parameters": {
8051	//     "location": {
8052	//       "description": "The location that contains this snapshot.",
8053	//       "location": "query",
8054	//       "type": "string"
8055	//     },
8056	//     "projectId": {
8057	//       "description": "The ID of the Cloud Platform project that the snapshot belongs to.",
8058	//       "location": "path",
8059	//       "required": true,
8060	//       "type": "string"
8061	//     },
8062	//     "snapshotId": {
8063	//       "description": "The ID of the snapshot.",
8064	//       "location": "query",
8065	//       "type": "string"
8066	//     }
8067	//   },
8068	//   "path": "v1b3/projects/{projectId}/snapshots",
8069	//   "response": {
8070	//     "$ref": "DeleteSnapshotResponse"
8071	//   },
8072	//   "scopes": [
8073	//     "https://www.googleapis.com/auth/cloud-platform",
8074	//     "https://www.googleapis.com/auth/compute",
8075	//     "https://www.googleapis.com/auth/compute.readonly",
8076	//     "https://www.googleapis.com/auth/userinfo.email"
8077	//   ]
8078	// }
8079
8080}
8081
8082// method id "dataflow.projects.workerMessages":
8083
8084type ProjectsWorkerMessagesCall struct {
8085	s                         *Service
8086	projectId                 string
8087	sendworkermessagesrequest *SendWorkerMessagesRequest
8088	urlParams_                gensupport.URLParams
8089	ctx_                      context.Context
8090	header_                   http.Header
8091}
8092
8093// WorkerMessages: Send a worker_message to the service.
8094func (r *ProjectsService) WorkerMessages(projectId string, sendworkermessagesrequest *SendWorkerMessagesRequest) *ProjectsWorkerMessagesCall {
8095	c := &ProjectsWorkerMessagesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8096	c.projectId = projectId
8097	c.sendworkermessagesrequest = sendworkermessagesrequest
8098	return c
8099}
8100
8101// Fields allows partial responses to be retrieved. See
8102// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8103// for more information.
8104func (c *ProjectsWorkerMessagesCall) Fields(s ...googleapi.Field) *ProjectsWorkerMessagesCall {
8105	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8106	return c
8107}
8108
8109// Context sets the context to be used in this call's Do method. Any
8110// pending HTTP request will be aborted if the provided context is
8111// canceled.
8112func (c *ProjectsWorkerMessagesCall) Context(ctx context.Context) *ProjectsWorkerMessagesCall {
8113	c.ctx_ = ctx
8114	return c
8115}
8116
8117// Header returns an http.Header that can be modified by the caller to
8118// add HTTP headers to the request.
8119func (c *ProjectsWorkerMessagesCall) Header() http.Header {
8120	if c.header_ == nil {
8121		c.header_ = make(http.Header)
8122	}
8123	return c.header_
8124}
8125
8126func (c *ProjectsWorkerMessagesCall) doRequest(alt string) (*http.Response, error) {
8127	reqHeaders := make(http.Header)
8128	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
8129	for k, v := range c.header_ {
8130		reqHeaders[k] = v
8131	}
8132	reqHeaders.Set("User-Agent", c.s.userAgent())
8133	var body io.Reader = nil
8134	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sendworkermessagesrequest)
8135	if err != nil {
8136		return nil, err
8137	}
8138	reqHeaders.Set("Content-Type", "application/json")
8139	c.urlParams_.Set("alt", alt)
8140	c.urlParams_.Set("prettyPrint", "false")
8141	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/WorkerMessages")
8142	urls += "?" + c.urlParams_.Encode()
8143	req, err := http.NewRequest("POST", urls, body)
8144	if err != nil {
8145		return nil, err
8146	}
8147	req.Header = reqHeaders
8148	googleapi.Expand(req.URL, map[string]string{
8149		"projectId": c.projectId,
8150	})
8151	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8152}
8153
8154// Do executes the "dataflow.projects.workerMessages" call.
8155// Exactly one of *SendWorkerMessagesResponse or error will be non-nil.
8156// Any non-2xx status code is an error. Response headers are in either
8157// *SendWorkerMessagesResponse.ServerResponse.Header or (if a response
8158// was returned at all) in error.(*googleapi.Error).Header. Use
8159// googleapi.IsNotModified to check whether the returned error was
8160// because http.StatusNotModified was returned.
8161func (c *ProjectsWorkerMessagesCall) Do(opts ...googleapi.CallOption) (*SendWorkerMessagesResponse, error) {
8162	gensupport.SetOptions(c.urlParams_, opts...)
8163	res, err := c.doRequest("json")
8164	if res != nil && res.StatusCode == http.StatusNotModified {
8165		if res.Body != nil {
8166			res.Body.Close()
8167		}
8168		return nil, &googleapi.Error{
8169			Code:   res.StatusCode,
8170			Header: res.Header,
8171		}
8172	}
8173	if err != nil {
8174		return nil, err
8175	}
8176	defer googleapi.CloseBody(res)
8177	if err := googleapi.CheckResponse(res); err != nil {
8178		return nil, err
8179	}
8180	ret := &SendWorkerMessagesResponse{
8181		ServerResponse: googleapi.ServerResponse{
8182			Header:         res.Header,
8183			HTTPStatusCode: res.StatusCode,
8184		},
8185	}
8186	target := &ret
8187	if err := gensupport.DecodeResponse(target, res); err != nil {
8188		return nil, err
8189	}
8190	return ret, nil
8191	// {
8192	//   "description": "Send a worker_message to the service.",
8193	//   "flatPath": "v1b3/projects/{projectId}/WorkerMessages",
8194	//   "httpMethod": "POST",
8195	//   "id": "dataflow.projects.workerMessages",
8196	//   "parameterOrder": [
8197	//     "projectId"
8198	//   ],
8199	//   "parameters": {
8200	//     "projectId": {
8201	//       "description": "The project to send the WorkerMessages to.",
8202	//       "location": "path",
8203	//       "required": true,
8204	//       "type": "string"
8205	//     }
8206	//   },
8207	//   "path": "v1b3/projects/{projectId}/WorkerMessages",
8208	//   "request": {
8209	//     "$ref": "SendWorkerMessagesRequest"
8210	//   },
8211	//   "response": {
8212	//     "$ref": "SendWorkerMessagesResponse"
8213	//   },
8214	//   "scopes": [
8215	//     "https://www.googleapis.com/auth/cloud-platform",
8216	//     "https://www.googleapis.com/auth/compute",
8217	//     "https://www.googleapis.com/auth/compute.readonly",
8218	//     "https://www.googleapis.com/auth/userinfo.email"
8219	//   ]
8220	// }
8221
8222}
8223
8224// method id "dataflow.projects.jobs.aggregated":
8225
8226type ProjectsJobsAggregatedCall struct {
8227	s            *Service
8228	projectId    string
8229	urlParams_   gensupport.URLParams
8230	ifNoneMatch_ string
8231	ctx_         context.Context
8232	header_      http.Header
8233}
8234
8235// Aggregated: List the jobs of a project across all regions.
8236func (r *ProjectsJobsService) Aggregated(projectId string) *ProjectsJobsAggregatedCall {
8237	c := &ProjectsJobsAggregatedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8238	c.projectId = projectId
8239	return c
8240}
8241
8242// Filter sets the optional parameter "filter": The kind of filter to
8243// use.
8244//
8245// Possible values:
8246//   "UNKNOWN" - The filter isn't specified, or is unknown. This returns
8247// all jobs ordered on descending `JobUuid`.
8248//   "ALL" - Returns all running jobs first ordered on creation
8249// timestamp, then returns all terminated jobs ordered on the
8250// termination timestamp.
8251//   "TERMINATED" - Filters the jobs that have a terminated state,
8252// ordered on the termination timestamp. Example terminated states:
8253// `JOB_STATE_STOPPED`, `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.
8254//   "ACTIVE" - Filters the jobs that are running ordered on the
8255// creation timestamp.
8256func (c *ProjectsJobsAggregatedCall) Filter(filter string) *ProjectsJobsAggregatedCall {
8257	c.urlParams_.Set("filter", filter)
8258	return c
8259}
8260
8261// Location sets the optional parameter "location": The [regional
8262// endpoint]
8263// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
8264// that contains this job.
8265func (c *ProjectsJobsAggregatedCall) Location(location string) *ProjectsJobsAggregatedCall {
8266	c.urlParams_.Set("location", location)
8267	return c
8268}
8269
8270// PageSize sets the optional parameter "pageSize": If there are many
8271// jobs, limit response to at most this many. The actual number of jobs
8272// returned will be the lesser of max_responses and an unspecified
8273// server-defined limit.
8274func (c *ProjectsJobsAggregatedCall) PageSize(pageSize int64) *ProjectsJobsAggregatedCall {
8275	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
8276	return c
8277}
8278
8279// PageToken sets the optional parameter "pageToken": Set this to the
8280// 'next_page_token' field of a previous response to request additional
8281// results in a long list.
8282func (c *ProjectsJobsAggregatedCall) PageToken(pageToken string) *ProjectsJobsAggregatedCall {
8283	c.urlParams_.Set("pageToken", pageToken)
8284	return c
8285}
8286
8287// View sets the optional parameter "view": Deprecated. ListJobs always
8288// returns summaries now. Use GetJob for other JobViews.
8289//
8290// Possible values:
8291//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
8292// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
8293// information, and may contain additional information.
8294//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
8295// Job ID, job name, job type, job status, start/end time, and Cloud SDK
8296// version details.
8297//   "JOB_VIEW_ALL" - Request all information available for this job.
8298//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
8299// description data for steps, labels and environment.
8300func (c *ProjectsJobsAggregatedCall) View(view string) *ProjectsJobsAggregatedCall {
8301	c.urlParams_.Set("view", view)
8302	return c
8303}
8304
8305// Fields allows partial responses to be retrieved. See
8306// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8307// for more information.
8308func (c *ProjectsJobsAggregatedCall) Fields(s ...googleapi.Field) *ProjectsJobsAggregatedCall {
8309	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8310	return c
8311}
8312
8313// IfNoneMatch sets the optional parameter which makes the operation
8314// fail if the object's ETag matches the given value. This is useful for
8315// getting updates only after the object has changed since the last
8316// request. Use googleapi.IsNotModified to check whether the response
8317// error from Do is the result of In-None-Match.
8318func (c *ProjectsJobsAggregatedCall) IfNoneMatch(entityTag string) *ProjectsJobsAggregatedCall {
8319	c.ifNoneMatch_ = entityTag
8320	return c
8321}
8322
8323// Context sets the context to be used in this call's Do method. Any
8324// pending HTTP request will be aborted if the provided context is
8325// canceled.
8326func (c *ProjectsJobsAggregatedCall) Context(ctx context.Context) *ProjectsJobsAggregatedCall {
8327	c.ctx_ = ctx
8328	return c
8329}
8330
8331// Header returns an http.Header that can be modified by the caller to
8332// add HTTP headers to the request.
8333func (c *ProjectsJobsAggregatedCall) Header() http.Header {
8334	if c.header_ == nil {
8335		c.header_ = make(http.Header)
8336	}
8337	return c.header_
8338}
8339
8340func (c *ProjectsJobsAggregatedCall) doRequest(alt string) (*http.Response, error) {
8341	reqHeaders := make(http.Header)
8342	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
8343	for k, v := range c.header_ {
8344		reqHeaders[k] = v
8345	}
8346	reqHeaders.Set("User-Agent", c.s.userAgent())
8347	if c.ifNoneMatch_ != "" {
8348		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8349	}
8350	var body io.Reader = nil
8351	c.urlParams_.Set("alt", alt)
8352	c.urlParams_.Set("prettyPrint", "false")
8353	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs:aggregated")
8354	urls += "?" + c.urlParams_.Encode()
8355	req, err := http.NewRequest("GET", urls, body)
8356	if err != nil {
8357		return nil, err
8358	}
8359	req.Header = reqHeaders
8360	googleapi.Expand(req.URL, map[string]string{
8361		"projectId": c.projectId,
8362	})
8363	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8364}
8365
8366// Do executes the "dataflow.projects.jobs.aggregated" call.
8367// Exactly one of *ListJobsResponse or error will be non-nil. Any
8368// non-2xx status code is an error. Response headers are in either
8369// *ListJobsResponse.ServerResponse.Header or (if a response was
8370// returned at all) in error.(*googleapi.Error).Header. Use
8371// googleapi.IsNotModified to check whether the returned error was
8372// because http.StatusNotModified was returned.
8373func (c *ProjectsJobsAggregatedCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
8374	gensupport.SetOptions(c.urlParams_, opts...)
8375	res, err := c.doRequest("json")
8376	if res != nil && res.StatusCode == http.StatusNotModified {
8377		if res.Body != nil {
8378			res.Body.Close()
8379		}
8380		return nil, &googleapi.Error{
8381			Code:   res.StatusCode,
8382			Header: res.Header,
8383		}
8384	}
8385	if err != nil {
8386		return nil, err
8387	}
8388	defer googleapi.CloseBody(res)
8389	if err := googleapi.CheckResponse(res); err != nil {
8390		return nil, err
8391	}
8392	ret := &ListJobsResponse{
8393		ServerResponse: googleapi.ServerResponse{
8394			Header:         res.Header,
8395			HTTPStatusCode: res.StatusCode,
8396		},
8397	}
8398	target := &ret
8399	if err := gensupport.DecodeResponse(target, res); err != nil {
8400		return nil, err
8401	}
8402	return ret, nil
8403	// {
8404	//   "description": "List the jobs of a project across all regions.",
8405	//   "flatPath": "v1b3/projects/{projectId}/jobs:aggregated",
8406	//   "httpMethod": "GET",
8407	//   "id": "dataflow.projects.jobs.aggregated",
8408	//   "parameterOrder": [
8409	//     "projectId"
8410	//   ],
8411	//   "parameters": {
8412	//     "filter": {
8413	//       "description": "The kind of filter to use.",
8414	//       "enum": [
8415	//         "UNKNOWN",
8416	//         "ALL",
8417	//         "TERMINATED",
8418	//         "ACTIVE"
8419	//       ],
8420	//       "enumDescriptions": [
8421	//         "The filter isn't specified, or is unknown. This returns all jobs ordered on descending `JobUuid`.",
8422	//         "Returns all running jobs first ordered on creation timestamp, then returns all terminated jobs ordered on the termination timestamp.",
8423	//         "Filters the jobs that have a terminated state, ordered on the termination timestamp. Example terminated states: `JOB_STATE_STOPPED`, `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.",
8424	//         "Filters the jobs that are running ordered on the creation timestamp."
8425	//       ],
8426	//       "location": "query",
8427	//       "type": "string"
8428	//     },
8429	//     "location": {
8430	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
8431	//       "location": "query",
8432	//       "type": "string"
8433	//     },
8434	//     "pageSize": {
8435	//       "description": "If there are many jobs, limit response to at most this many. The actual number of jobs returned will be the lesser of max_responses and an unspecified server-defined limit.",
8436	//       "format": "int32",
8437	//       "location": "query",
8438	//       "type": "integer"
8439	//     },
8440	//     "pageToken": {
8441	//       "description": "Set this to the 'next_page_token' field of a previous response to request additional results in a long list.",
8442	//       "location": "query",
8443	//       "type": "string"
8444	//     },
8445	//     "projectId": {
8446	//       "description": "The project which owns the jobs.",
8447	//       "location": "path",
8448	//       "required": true,
8449	//       "type": "string"
8450	//     },
8451	//     "view": {
8452	//       "description": "Deprecated. ListJobs always returns summaries now. Use GetJob for other JobViews.",
8453	//       "enum": [
8454	//         "JOB_VIEW_UNKNOWN",
8455	//         "JOB_VIEW_SUMMARY",
8456	//         "JOB_VIEW_ALL",
8457	//         "JOB_VIEW_DESCRIPTION"
8458	//       ],
8459	//       "enumDescriptions": [
8460	//         "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.",
8461	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
8462	//         "Request all information available for this job.",
8463	//         "Request summary info and limited job description data for steps, labels and environment."
8464	//       ],
8465	//       "location": "query",
8466	//       "type": "string"
8467	//     }
8468	//   },
8469	//   "path": "v1b3/projects/{projectId}/jobs:aggregated",
8470	//   "response": {
8471	//     "$ref": "ListJobsResponse"
8472	//   },
8473	//   "scopes": [
8474	//     "https://www.googleapis.com/auth/cloud-platform",
8475	//     "https://www.googleapis.com/auth/compute",
8476	//     "https://www.googleapis.com/auth/compute.readonly",
8477	//     "https://www.googleapis.com/auth/userinfo.email"
8478	//   ]
8479	// }
8480
8481}
8482
8483// Pages invokes f for each page of results.
8484// A non-nil error returned from f will halt the iteration.
8485// The provided context supersedes any context provided to the Context method.
8486func (c *ProjectsJobsAggregatedCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
8487	c.ctx_ = ctx
8488	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
8489	for {
8490		x, err := c.Do()
8491		if err != nil {
8492			return err
8493		}
8494		if err := f(x); err != nil {
8495			return err
8496		}
8497		if x.NextPageToken == "" {
8498			return nil
8499		}
8500		c.PageToken(x.NextPageToken)
8501	}
8502}
8503
8504// method id "dataflow.projects.jobs.create":
8505
8506type ProjectsJobsCreateCall struct {
8507	s          *Service
8508	projectId  string
8509	job        *Job
8510	urlParams_ gensupport.URLParams
8511	ctx_       context.Context
8512	header_    http.Header
8513}
8514
8515// Create: Creates a Cloud Dataflow job. To create a job, we recommend
8516// using `projects.locations.jobs.create` with a [regional endpoint]
8517// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
8518// Using `projects.jobs.create` is not recommended, as your job will
8519// always start in `us-central1`.
8520func (r *ProjectsJobsService) Create(projectId string, job *Job) *ProjectsJobsCreateCall {
8521	c := &ProjectsJobsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8522	c.projectId = projectId
8523	c.job = job
8524	return c
8525}
8526
8527// Location sets the optional parameter "location": The [regional
8528// endpoint]
8529// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
8530// that contains this job.
8531func (c *ProjectsJobsCreateCall) Location(location string) *ProjectsJobsCreateCall {
8532	c.urlParams_.Set("location", location)
8533	return c
8534}
8535
8536// ReplaceJobId sets the optional parameter "replaceJobId": Deprecated.
8537// This field is now in the Job message.
8538func (c *ProjectsJobsCreateCall) ReplaceJobId(replaceJobId string) *ProjectsJobsCreateCall {
8539	c.urlParams_.Set("replaceJobId", replaceJobId)
8540	return c
8541}
8542
8543// View sets the optional parameter "view": The level of information
8544// requested in response.
8545//
8546// Possible values:
8547//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
8548// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
8549// information, and may contain additional information.
8550//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
8551// Job ID, job name, job type, job status, start/end time, and Cloud SDK
8552// version details.
8553//   "JOB_VIEW_ALL" - Request all information available for this job.
8554//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
8555// description data for steps, labels and environment.
8556func (c *ProjectsJobsCreateCall) View(view string) *ProjectsJobsCreateCall {
8557	c.urlParams_.Set("view", view)
8558	return c
8559}
8560
8561// Fields allows partial responses to be retrieved. See
8562// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8563// for more information.
8564func (c *ProjectsJobsCreateCall) Fields(s ...googleapi.Field) *ProjectsJobsCreateCall {
8565	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8566	return c
8567}
8568
8569// Context sets the context to be used in this call's Do method. Any
8570// pending HTTP request will be aborted if the provided context is
8571// canceled.
8572func (c *ProjectsJobsCreateCall) Context(ctx context.Context) *ProjectsJobsCreateCall {
8573	c.ctx_ = ctx
8574	return c
8575}
8576
8577// Header returns an http.Header that can be modified by the caller to
8578// add HTTP headers to the request.
8579func (c *ProjectsJobsCreateCall) Header() http.Header {
8580	if c.header_ == nil {
8581		c.header_ = make(http.Header)
8582	}
8583	return c.header_
8584}
8585
8586func (c *ProjectsJobsCreateCall) doRequest(alt string) (*http.Response, error) {
8587	reqHeaders := make(http.Header)
8588	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
8589	for k, v := range c.header_ {
8590		reqHeaders[k] = v
8591	}
8592	reqHeaders.Set("User-Agent", c.s.userAgent())
8593	var body io.Reader = nil
8594	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
8595	if err != nil {
8596		return nil, err
8597	}
8598	reqHeaders.Set("Content-Type", "application/json")
8599	c.urlParams_.Set("alt", alt)
8600	c.urlParams_.Set("prettyPrint", "false")
8601	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs")
8602	urls += "?" + c.urlParams_.Encode()
8603	req, err := http.NewRequest("POST", urls, body)
8604	if err != nil {
8605		return nil, err
8606	}
8607	req.Header = reqHeaders
8608	googleapi.Expand(req.URL, map[string]string{
8609		"projectId": c.projectId,
8610	})
8611	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8612}
8613
8614// Do executes the "dataflow.projects.jobs.create" call.
8615// Exactly one of *Job or error will be non-nil. Any non-2xx status code
8616// is an error. Response headers are in either
8617// *Job.ServerResponse.Header or (if a response was returned at all) in
8618// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
8619// whether the returned error was because http.StatusNotModified was
8620// returned.
8621func (c *ProjectsJobsCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
8622	gensupport.SetOptions(c.urlParams_, opts...)
8623	res, err := c.doRequest("json")
8624	if res != nil && res.StatusCode == http.StatusNotModified {
8625		if res.Body != nil {
8626			res.Body.Close()
8627		}
8628		return nil, &googleapi.Error{
8629			Code:   res.StatusCode,
8630			Header: res.Header,
8631		}
8632	}
8633	if err != nil {
8634		return nil, err
8635	}
8636	defer googleapi.CloseBody(res)
8637	if err := googleapi.CheckResponse(res); err != nil {
8638		return nil, err
8639	}
8640	ret := &Job{
8641		ServerResponse: googleapi.ServerResponse{
8642			Header:         res.Header,
8643			HTTPStatusCode: res.StatusCode,
8644		},
8645	}
8646	target := &ret
8647	if err := gensupport.DecodeResponse(target, res); err != nil {
8648		return nil, err
8649	}
8650	return ret, nil
8651	// {
8652	//   "description": "Creates a Cloud Dataflow job. To create a job, we recommend using `projects.locations.jobs.create` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.create` is not recommended, as your job will always start in `us-central1`.",
8653	//   "flatPath": "v1b3/projects/{projectId}/jobs",
8654	//   "httpMethod": "POST",
8655	//   "id": "dataflow.projects.jobs.create",
8656	//   "parameterOrder": [
8657	//     "projectId"
8658	//   ],
8659	//   "parameters": {
8660	//     "location": {
8661	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
8662	//       "location": "query",
8663	//       "type": "string"
8664	//     },
8665	//     "projectId": {
8666	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
8667	//       "location": "path",
8668	//       "required": true,
8669	//       "type": "string"
8670	//     },
8671	//     "replaceJobId": {
8672	//       "description": "Deprecated. This field is now in the Job message.",
8673	//       "location": "query",
8674	//       "type": "string"
8675	//     },
8676	//     "view": {
8677	//       "description": "The level of information requested in response.",
8678	//       "enum": [
8679	//         "JOB_VIEW_UNKNOWN",
8680	//         "JOB_VIEW_SUMMARY",
8681	//         "JOB_VIEW_ALL",
8682	//         "JOB_VIEW_DESCRIPTION"
8683	//       ],
8684	//       "enumDescriptions": [
8685	//         "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.",
8686	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
8687	//         "Request all information available for this job.",
8688	//         "Request summary info and limited job description data for steps, labels and environment."
8689	//       ],
8690	//       "location": "query",
8691	//       "type": "string"
8692	//     }
8693	//   },
8694	//   "path": "v1b3/projects/{projectId}/jobs",
8695	//   "request": {
8696	//     "$ref": "Job"
8697	//   },
8698	//   "response": {
8699	//     "$ref": "Job"
8700	//   },
8701	//   "scopes": [
8702	//     "https://www.googleapis.com/auth/cloud-platform",
8703	//     "https://www.googleapis.com/auth/compute",
8704	//     "https://www.googleapis.com/auth/compute.readonly",
8705	//     "https://www.googleapis.com/auth/userinfo.email"
8706	//   ]
8707	// }
8708
8709}
8710
8711// method id "dataflow.projects.jobs.get":
8712
8713type ProjectsJobsGetCall struct {
8714	s            *Service
8715	projectId    string
8716	jobId        string
8717	urlParams_   gensupport.URLParams
8718	ifNoneMatch_ string
8719	ctx_         context.Context
8720	header_      http.Header
8721}
8722
8723// Get: Gets the state of the specified Cloud Dataflow job. To get the
8724// state of a job, we recommend using `projects.locations.jobs.get` with
8725// a [regional endpoint]
8726// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
8727// Using `projects.jobs.get` is not recommended, as you can only get the
8728// state of jobs that are running in `us-central1`.
8729func (r *ProjectsJobsService) Get(projectId string, jobId string) *ProjectsJobsGetCall {
8730	c := &ProjectsJobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8731	c.projectId = projectId
8732	c.jobId = jobId
8733	return c
8734}
8735
8736// Location sets the optional parameter "location": The [regional
8737// endpoint]
8738// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
8739// that contains this job.
8740func (c *ProjectsJobsGetCall) Location(location string) *ProjectsJobsGetCall {
8741	c.urlParams_.Set("location", location)
8742	return c
8743}
8744
8745// View sets the optional parameter "view": The level of information
8746// requested in response.
8747//
8748// Possible values:
8749//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
8750// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
8751// information, and may contain additional information.
8752//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
8753// Job ID, job name, job type, job status, start/end time, and Cloud SDK
8754// version details.
8755//   "JOB_VIEW_ALL" - Request all information available for this job.
8756//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
8757// description data for steps, labels and environment.
8758func (c *ProjectsJobsGetCall) View(view string) *ProjectsJobsGetCall {
8759	c.urlParams_.Set("view", view)
8760	return c
8761}
8762
8763// Fields allows partial responses to be retrieved. See
8764// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8765// for more information.
8766func (c *ProjectsJobsGetCall) Fields(s ...googleapi.Field) *ProjectsJobsGetCall {
8767	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8768	return c
8769}
8770
8771// IfNoneMatch sets the optional parameter which makes the operation
8772// fail if the object's ETag matches the given value. This is useful for
8773// getting updates only after the object has changed since the last
8774// request. Use googleapi.IsNotModified to check whether the response
8775// error from Do is the result of In-None-Match.
8776func (c *ProjectsJobsGetCall) IfNoneMatch(entityTag string) *ProjectsJobsGetCall {
8777	c.ifNoneMatch_ = entityTag
8778	return c
8779}
8780
8781// Context sets the context to be used in this call's Do method. Any
8782// pending HTTP request will be aborted if the provided context is
8783// canceled.
8784func (c *ProjectsJobsGetCall) Context(ctx context.Context) *ProjectsJobsGetCall {
8785	c.ctx_ = ctx
8786	return c
8787}
8788
8789// Header returns an http.Header that can be modified by the caller to
8790// add HTTP headers to the request.
8791func (c *ProjectsJobsGetCall) Header() http.Header {
8792	if c.header_ == nil {
8793		c.header_ = make(http.Header)
8794	}
8795	return c.header_
8796}
8797
8798func (c *ProjectsJobsGetCall) doRequest(alt string) (*http.Response, error) {
8799	reqHeaders := make(http.Header)
8800	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
8801	for k, v := range c.header_ {
8802		reqHeaders[k] = v
8803	}
8804	reqHeaders.Set("User-Agent", c.s.userAgent())
8805	if c.ifNoneMatch_ != "" {
8806		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8807	}
8808	var body io.Reader = nil
8809	c.urlParams_.Set("alt", alt)
8810	c.urlParams_.Set("prettyPrint", "false")
8811	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}")
8812	urls += "?" + c.urlParams_.Encode()
8813	req, err := http.NewRequest("GET", urls, body)
8814	if err != nil {
8815		return nil, err
8816	}
8817	req.Header = reqHeaders
8818	googleapi.Expand(req.URL, map[string]string{
8819		"projectId": c.projectId,
8820		"jobId":     c.jobId,
8821	})
8822	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8823}
8824
8825// Do executes the "dataflow.projects.jobs.get" call.
8826// Exactly one of *Job or error will be non-nil. Any non-2xx status code
8827// is an error. Response headers are in either
8828// *Job.ServerResponse.Header or (if a response was returned at all) in
8829// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
8830// whether the returned error was because http.StatusNotModified was
8831// returned.
8832func (c *ProjectsJobsGetCall) Do(opts ...googleapi.CallOption) (*Job, error) {
8833	gensupport.SetOptions(c.urlParams_, opts...)
8834	res, err := c.doRequest("json")
8835	if res != nil && res.StatusCode == http.StatusNotModified {
8836		if res.Body != nil {
8837			res.Body.Close()
8838		}
8839		return nil, &googleapi.Error{
8840			Code:   res.StatusCode,
8841			Header: res.Header,
8842		}
8843	}
8844	if err != nil {
8845		return nil, err
8846	}
8847	defer googleapi.CloseBody(res)
8848	if err := googleapi.CheckResponse(res); err != nil {
8849		return nil, err
8850	}
8851	ret := &Job{
8852		ServerResponse: googleapi.ServerResponse{
8853			Header:         res.Header,
8854			HTTPStatusCode: res.StatusCode,
8855		},
8856	}
8857	target := &ret
8858	if err := gensupport.DecodeResponse(target, res); err != nil {
8859		return nil, err
8860	}
8861	return ret, nil
8862	// {
8863	//   "description": "Gets the state of the specified Cloud Dataflow job. To get the state of a job, we recommend using `projects.locations.jobs.get` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.get` is not recommended, as you can only get the state of jobs that are running in `us-central1`.",
8864	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}",
8865	//   "httpMethod": "GET",
8866	//   "id": "dataflow.projects.jobs.get",
8867	//   "parameterOrder": [
8868	//     "projectId",
8869	//     "jobId"
8870	//   ],
8871	//   "parameters": {
8872	//     "jobId": {
8873	//       "description": "The job ID.",
8874	//       "location": "path",
8875	//       "required": true,
8876	//       "type": "string"
8877	//     },
8878	//     "location": {
8879	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
8880	//       "location": "query",
8881	//       "type": "string"
8882	//     },
8883	//     "projectId": {
8884	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
8885	//       "location": "path",
8886	//       "required": true,
8887	//       "type": "string"
8888	//     },
8889	//     "view": {
8890	//       "description": "The level of information requested in response.",
8891	//       "enum": [
8892	//         "JOB_VIEW_UNKNOWN",
8893	//         "JOB_VIEW_SUMMARY",
8894	//         "JOB_VIEW_ALL",
8895	//         "JOB_VIEW_DESCRIPTION"
8896	//       ],
8897	//       "enumDescriptions": [
8898	//         "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.",
8899	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
8900	//         "Request all information available for this job.",
8901	//         "Request summary info and limited job description data for steps, labels and environment."
8902	//       ],
8903	//       "location": "query",
8904	//       "type": "string"
8905	//     }
8906	//   },
8907	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}",
8908	//   "response": {
8909	//     "$ref": "Job"
8910	//   },
8911	//   "scopes": [
8912	//     "https://www.googleapis.com/auth/cloud-platform",
8913	//     "https://www.googleapis.com/auth/compute",
8914	//     "https://www.googleapis.com/auth/compute.readonly",
8915	//     "https://www.googleapis.com/auth/userinfo.email"
8916	//   ]
8917	// }
8918
8919}
8920
8921// method id "dataflow.projects.jobs.getMetrics":
8922
8923type ProjectsJobsGetMetricsCall struct {
8924	s            *Service
8925	projectId    string
8926	jobId        string
8927	urlParams_   gensupport.URLParams
8928	ifNoneMatch_ string
8929	ctx_         context.Context
8930	header_      http.Header
8931}
8932
8933// GetMetrics: Request the job status. To request the status of a job,
8934// we recommend using `projects.locations.jobs.getMetrics` with a
8935// [regional endpoint]
8936// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
8937// Using `projects.jobs.getMetrics` is not recommended, as you can only
8938// request the status of jobs that are running in `us-central1`.
8939func (r *ProjectsJobsService) GetMetrics(projectId string, jobId string) *ProjectsJobsGetMetricsCall {
8940	c := &ProjectsJobsGetMetricsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8941	c.projectId = projectId
8942	c.jobId = jobId
8943	return c
8944}
8945
8946// Location sets the optional parameter "location": The [regional
8947// endpoint]
8948// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
8949// that contains the job specified by job_id.
8950func (c *ProjectsJobsGetMetricsCall) Location(location string) *ProjectsJobsGetMetricsCall {
8951	c.urlParams_.Set("location", location)
8952	return c
8953}
8954
8955// StartTime sets the optional parameter "startTime": Return only metric
8956// data that has changed since this time. Default is to return all
8957// information about all metrics for the job.
8958func (c *ProjectsJobsGetMetricsCall) StartTime(startTime string) *ProjectsJobsGetMetricsCall {
8959	c.urlParams_.Set("startTime", startTime)
8960	return c
8961}
8962
8963// Fields allows partial responses to be retrieved. See
8964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8965// for more information.
8966func (c *ProjectsJobsGetMetricsCall) Fields(s ...googleapi.Field) *ProjectsJobsGetMetricsCall {
8967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8968	return c
8969}
8970
8971// IfNoneMatch sets the optional parameter which makes the operation
8972// fail if the object's ETag matches the given value. This is useful for
8973// getting updates only after the object has changed since the last
8974// request. Use googleapi.IsNotModified to check whether the response
8975// error from Do is the result of In-None-Match.
8976func (c *ProjectsJobsGetMetricsCall) IfNoneMatch(entityTag string) *ProjectsJobsGetMetricsCall {
8977	c.ifNoneMatch_ = entityTag
8978	return c
8979}
8980
8981// Context sets the context to be used in this call's Do method. Any
8982// pending HTTP request will be aborted if the provided context is
8983// canceled.
8984func (c *ProjectsJobsGetMetricsCall) Context(ctx context.Context) *ProjectsJobsGetMetricsCall {
8985	c.ctx_ = ctx
8986	return c
8987}
8988
8989// Header returns an http.Header that can be modified by the caller to
8990// add HTTP headers to the request.
8991func (c *ProjectsJobsGetMetricsCall) Header() http.Header {
8992	if c.header_ == nil {
8993		c.header_ = make(http.Header)
8994	}
8995	return c.header_
8996}
8997
8998func (c *ProjectsJobsGetMetricsCall) doRequest(alt string) (*http.Response, error) {
8999	reqHeaders := make(http.Header)
9000	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
9001	for k, v := range c.header_ {
9002		reqHeaders[k] = v
9003	}
9004	reqHeaders.Set("User-Agent", c.s.userAgent())
9005	if c.ifNoneMatch_ != "" {
9006		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9007	}
9008	var body io.Reader = nil
9009	c.urlParams_.Set("alt", alt)
9010	c.urlParams_.Set("prettyPrint", "false")
9011	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/metrics")
9012	urls += "?" + c.urlParams_.Encode()
9013	req, err := http.NewRequest("GET", urls, body)
9014	if err != nil {
9015		return nil, err
9016	}
9017	req.Header = reqHeaders
9018	googleapi.Expand(req.URL, map[string]string{
9019		"projectId": c.projectId,
9020		"jobId":     c.jobId,
9021	})
9022	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9023}
9024
9025// Do executes the "dataflow.projects.jobs.getMetrics" call.
9026// Exactly one of *JobMetrics or error will be non-nil. Any non-2xx
9027// status code is an error. Response headers are in either
9028// *JobMetrics.ServerResponse.Header or (if a response was returned at
9029// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9030// to check whether the returned error was because
9031// http.StatusNotModified was returned.
9032func (c *ProjectsJobsGetMetricsCall) Do(opts ...googleapi.CallOption) (*JobMetrics, error) {
9033	gensupport.SetOptions(c.urlParams_, opts...)
9034	res, err := c.doRequest("json")
9035	if res != nil && res.StatusCode == http.StatusNotModified {
9036		if res.Body != nil {
9037			res.Body.Close()
9038		}
9039		return nil, &googleapi.Error{
9040			Code:   res.StatusCode,
9041			Header: res.Header,
9042		}
9043	}
9044	if err != nil {
9045		return nil, err
9046	}
9047	defer googleapi.CloseBody(res)
9048	if err := googleapi.CheckResponse(res); err != nil {
9049		return nil, err
9050	}
9051	ret := &JobMetrics{
9052		ServerResponse: googleapi.ServerResponse{
9053			Header:         res.Header,
9054			HTTPStatusCode: res.StatusCode,
9055		},
9056	}
9057	target := &ret
9058	if err := gensupport.DecodeResponse(target, res); err != nil {
9059		return nil, err
9060	}
9061	return ret, nil
9062	// {
9063	//   "description": "Request the job status. To request the status of a job, we recommend using `projects.locations.jobs.getMetrics` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.getMetrics` is not recommended, as you can only request the status of jobs that are running in `us-central1`.",
9064	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/metrics",
9065	//   "httpMethod": "GET",
9066	//   "id": "dataflow.projects.jobs.getMetrics",
9067	//   "parameterOrder": [
9068	//     "projectId",
9069	//     "jobId"
9070	//   ],
9071	//   "parameters": {
9072	//     "jobId": {
9073	//       "description": "The job to get metrics for.",
9074	//       "location": "path",
9075	//       "required": true,
9076	//       "type": "string"
9077	//     },
9078	//     "location": {
9079	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
9080	//       "location": "query",
9081	//       "type": "string"
9082	//     },
9083	//     "projectId": {
9084	//       "description": "A project id.",
9085	//       "location": "path",
9086	//       "required": true,
9087	//       "type": "string"
9088	//     },
9089	//     "startTime": {
9090	//       "description": "Return only metric data that has changed since this time. Default is to return all information about all metrics for the job.",
9091	//       "format": "google-datetime",
9092	//       "location": "query",
9093	//       "type": "string"
9094	//     }
9095	//   },
9096	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/metrics",
9097	//   "response": {
9098	//     "$ref": "JobMetrics"
9099	//   },
9100	//   "scopes": [
9101	//     "https://www.googleapis.com/auth/cloud-platform",
9102	//     "https://www.googleapis.com/auth/compute",
9103	//     "https://www.googleapis.com/auth/compute.readonly",
9104	//     "https://www.googleapis.com/auth/userinfo.email"
9105	//   ]
9106	// }
9107
9108}
9109
9110// method id "dataflow.projects.jobs.list":
9111
9112type ProjectsJobsListCall struct {
9113	s            *Service
9114	projectId    string
9115	urlParams_   gensupport.URLParams
9116	ifNoneMatch_ string
9117	ctx_         context.Context
9118	header_      http.Header
9119}
9120
9121// List: List the jobs of a project. To list the jobs of a project in a
9122// region, we recommend using `projects.locations.jobs.list` with a
9123// [regional endpoint]
9124// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
9125// To list the all jobs across all regions, use
9126// `projects.jobs.aggregated`. Using `projects.jobs.list` is not
9127// recommended, as you can only get the list of jobs that are running in
9128// `us-central1`.
9129func (r *ProjectsJobsService) List(projectId string) *ProjectsJobsListCall {
9130	c := &ProjectsJobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9131	c.projectId = projectId
9132	return c
9133}
9134
9135// Filter sets the optional parameter "filter": The kind of filter to
9136// use.
9137//
9138// Possible values:
9139//   "UNKNOWN" - The filter isn't specified, or is unknown. This returns
9140// all jobs ordered on descending `JobUuid`.
9141//   "ALL" - Returns all running jobs first ordered on creation
9142// timestamp, then returns all terminated jobs ordered on the
9143// termination timestamp.
9144//   "TERMINATED" - Filters the jobs that have a terminated state,
9145// ordered on the termination timestamp. Example terminated states:
9146// `JOB_STATE_STOPPED`, `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.
9147//   "ACTIVE" - Filters the jobs that are running ordered on the
9148// creation timestamp.
9149func (c *ProjectsJobsListCall) Filter(filter string) *ProjectsJobsListCall {
9150	c.urlParams_.Set("filter", filter)
9151	return c
9152}
9153
9154// Location sets the optional parameter "location": The [regional
9155// endpoint]
9156// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
9157// that contains this job.
9158func (c *ProjectsJobsListCall) Location(location string) *ProjectsJobsListCall {
9159	c.urlParams_.Set("location", location)
9160	return c
9161}
9162
9163// PageSize sets the optional parameter "pageSize": If there are many
9164// jobs, limit response to at most this many. The actual number of jobs
9165// returned will be the lesser of max_responses and an unspecified
9166// server-defined limit.
9167func (c *ProjectsJobsListCall) PageSize(pageSize int64) *ProjectsJobsListCall {
9168	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
9169	return c
9170}
9171
9172// PageToken sets the optional parameter "pageToken": Set this to the
9173// 'next_page_token' field of a previous response to request additional
9174// results in a long list.
9175func (c *ProjectsJobsListCall) PageToken(pageToken string) *ProjectsJobsListCall {
9176	c.urlParams_.Set("pageToken", pageToken)
9177	return c
9178}
9179
9180// View sets the optional parameter "view": Deprecated. ListJobs always
9181// returns summaries now. Use GetJob for other JobViews.
9182//
9183// Possible values:
9184//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
9185// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
9186// information, and may contain additional information.
9187//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
9188// Job ID, job name, job type, job status, start/end time, and Cloud SDK
9189// version details.
9190//   "JOB_VIEW_ALL" - Request all information available for this job.
9191//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
9192// description data for steps, labels and environment.
9193func (c *ProjectsJobsListCall) View(view string) *ProjectsJobsListCall {
9194	c.urlParams_.Set("view", view)
9195	return c
9196}
9197
9198// Fields allows partial responses to be retrieved. See
9199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9200// for more information.
9201func (c *ProjectsJobsListCall) Fields(s ...googleapi.Field) *ProjectsJobsListCall {
9202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9203	return c
9204}
9205
9206// IfNoneMatch sets the optional parameter which makes the operation
9207// fail if the object's ETag matches the given value. This is useful for
9208// getting updates only after the object has changed since the last
9209// request. Use googleapi.IsNotModified to check whether the response
9210// error from Do is the result of In-None-Match.
9211func (c *ProjectsJobsListCall) IfNoneMatch(entityTag string) *ProjectsJobsListCall {
9212	c.ifNoneMatch_ = entityTag
9213	return c
9214}
9215
9216// Context sets the context to be used in this call's Do method. Any
9217// pending HTTP request will be aborted if the provided context is
9218// canceled.
9219func (c *ProjectsJobsListCall) Context(ctx context.Context) *ProjectsJobsListCall {
9220	c.ctx_ = ctx
9221	return c
9222}
9223
9224// Header returns an http.Header that can be modified by the caller to
9225// add HTTP headers to the request.
9226func (c *ProjectsJobsListCall) Header() http.Header {
9227	if c.header_ == nil {
9228		c.header_ = make(http.Header)
9229	}
9230	return c.header_
9231}
9232
9233func (c *ProjectsJobsListCall) doRequest(alt string) (*http.Response, error) {
9234	reqHeaders := make(http.Header)
9235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
9236	for k, v := range c.header_ {
9237		reqHeaders[k] = v
9238	}
9239	reqHeaders.Set("User-Agent", c.s.userAgent())
9240	if c.ifNoneMatch_ != "" {
9241		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9242	}
9243	var body io.Reader = nil
9244	c.urlParams_.Set("alt", alt)
9245	c.urlParams_.Set("prettyPrint", "false")
9246	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs")
9247	urls += "?" + c.urlParams_.Encode()
9248	req, err := http.NewRequest("GET", urls, body)
9249	if err != nil {
9250		return nil, err
9251	}
9252	req.Header = reqHeaders
9253	googleapi.Expand(req.URL, map[string]string{
9254		"projectId": c.projectId,
9255	})
9256	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9257}
9258
9259// Do executes the "dataflow.projects.jobs.list" call.
9260// Exactly one of *ListJobsResponse or error will be non-nil. Any
9261// non-2xx status code is an error. Response headers are in either
9262// *ListJobsResponse.ServerResponse.Header or (if a response was
9263// returned at all) in error.(*googleapi.Error).Header. Use
9264// googleapi.IsNotModified to check whether the returned error was
9265// because http.StatusNotModified was returned.
9266func (c *ProjectsJobsListCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
9267	gensupport.SetOptions(c.urlParams_, opts...)
9268	res, err := c.doRequest("json")
9269	if res != nil && res.StatusCode == http.StatusNotModified {
9270		if res.Body != nil {
9271			res.Body.Close()
9272		}
9273		return nil, &googleapi.Error{
9274			Code:   res.StatusCode,
9275			Header: res.Header,
9276		}
9277	}
9278	if err != nil {
9279		return nil, err
9280	}
9281	defer googleapi.CloseBody(res)
9282	if err := googleapi.CheckResponse(res); err != nil {
9283		return nil, err
9284	}
9285	ret := &ListJobsResponse{
9286		ServerResponse: googleapi.ServerResponse{
9287			Header:         res.Header,
9288			HTTPStatusCode: res.StatusCode,
9289		},
9290	}
9291	target := &ret
9292	if err := gensupport.DecodeResponse(target, res); err != nil {
9293		return nil, err
9294	}
9295	return ret, nil
9296	// {
9297	//   "description": "List the jobs of a project. To list the jobs of a project in a region, we recommend using `projects.locations.jobs.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To list the all jobs across all regions, use `projects.jobs.aggregated`. Using `projects.jobs.list` is not recommended, as you can only get the list of jobs that are running in `us-central1`.",
9298	//   "flatPath": "v1b3/projects/{projectId}/jobs",
9299	//   "httpMethod": "GET",
9300	//   "id": "dataflow.projects.jobs.list",
9301	//   "parameterOrder": [
9302	//     "projectId"
9303	//   ],
9304	//   "parameters": {
9305	//     "filter": {
9306	//       "description": "The kind of filter to use.",
9307	//       "enum": [
9308	//         "UNKNOWN",
9309	//         "ALL",
9310	//         "TERMINATED",
9311	//         "ACTIVE"
9312	//       ],
9313	//       "enumDescriptions": [
9314	//         "The filter isn't specified, or is unknown. This returns all jobs ordered on descending `JobUuid`.",
9315	//         "Returns all running jobs first ordered on creation timestamp, then returns all terminated jobs ordered on the termination timestamp.",
9316	//         "Filters the jobs that have a terminated state, ordered on the termination timestamp. Example terminated states: `JOB_STATE_STOPPED`, `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.",
9317	//         "Filters the jobs that are running ordered on the creation timestamp."
9318	//       ],
9319	//       "location": "query",
9320	//       "type": "string"
9321	//     },
9322	//     "location": {
9323	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
9324	//       "location": "query",
9325	//       "type": "string"
9326	//     },
9327	//     "pageSize": {
9328	//       "description": "If there are many jobs, limit response to at most this many. The actual number of jobs returned will be the lesser of max_responses and an unspecified server-defined limit.",
9329	//       "format": "int32",
9330	//       "location": "query",
9331	//       "type": "integer"
9332	//     },
9333	//     "pageToken": {
9334	//       "description": "Set this to the 'next_page_token' field of a previous response to request additional results in a long list.",
9335	//       "location": "query",
9336	//       "type": "string"
9337	//     },
9338	//     "projectId": {
9339	//       "description": "The project which owns the jobs.",
9340	//       "location": "path",
9341	//       "required": true,
9342	//       "type": "string"
9343	//     },
9344	//     "view": {
9345	//       "description": "Deprecated. ListJobs always returns summaries now. Use GetJob for other JobViews.",
9346	//       "enum": [
9347	//         "JOB_VIEW_UNKNOWN",
9348	//         "JOB_VIEW_SUMMARY",
9349	//         "JOB_VIEW_ALL",
9350	//         "JOB_VIEW_DESCRIPTION"
9351	//       ],
9352	//       "enumDescriptions": [
9353	//         "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.",
9354	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
9355	//         "Request all information available for this job.",
9356	//         "Request summary info and limited job description data for steps, labels and environment."
9357	//       ],
9358	//       "location": "query",
9359	//       "type": "string"
9360	//     }
9361	//   },
9362	//   "path": "v1b3/projects/{projectId}/jobs",
9363	//   "response": {
9364	//     "$ref": "ListJobsResponse"
9365	//   },
9366	//   "scopes": [
9367	//     "https://www.googleapis.com/auth/cloud-platform",
9368	//     "https://www.googleapis.com/auth/compute",
9369	//     "https://www.googleapis.com/auth/compute.readonly",
9370	//     "https://www.googleapis.com/auth/userinfo.email"
9371	//   ]
9372	// }
9373
9374}
9375
9376// Pages invokes f for each page of results.
9377// A non-nil error returned from f will halt the iteration.
9378// The provided context supersedes any context provided to the Context method.
9379func (c *ProjectsJobsListCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
9380	c.ctx_ = ctx
9381	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9382	for {
9383		x, err := c.Do()
9384		if err != nil {
9385			return err
9386		}
9387		if err := f(x); err != nil {
9388			return err
9389		}
9390		if x.NextPageToken == "" {
9391			return nil
9392		}
9393		c.PageToken(x.NextPageToken)
9394	}
9395}
9396
9397// method id "dataflow.projects.jobs.snapshot":
9398
9399type ProjectsJobsSnapshotCall struct {
9400	s                  *Service
9401	projectId          string
9402	jobId              string
9403	snapshotjobrequest *SnapshotJobRequest
9404	urlParams_         gensupport.URLParams
9405	ctx_               context.Context
9406	header_            http.Header
9407}
9408
9409// Snapshot: Snapshot the state of a streaming job.
9410func (r *ProjectsJobsService) Snapshot(projectId string, jobId string, snapshotjobrequest *SnapshotJobRequest) *ProjectsJobsSnapshotCall {
9411	c := &ProjectsJobsSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9412	c.projectId = projectId
9413	c.jobId = jobId
9414	c.snapshotjobrequest = snapshotjobrequest
9415	return c
9416}
9417
9418// Fields allows partial responses to be retrieved. See
9419// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9420// for more information.
9421func (c *ProjectsJobsSnapshotCall) Fields(s ...googleapi.Field) *ProjectsJobsSnapshotCall {
9422	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9423	return c
9424}
9425
9426// Context sets the context to be used in this call's Do method. Any
9427// pending HTTP request will be aborted if the provided context is
9428// canceled.
9429func (c *ProjectsJobsSnapshotCall) Context(ctx context.Context) *ProjectsJobsSnapshotCall {
9430	c.ctx_ = ctx
9431	return c
9432}
9433
9434// Header returns an http.Header that can be modified by the caller to
9435// add HTTP headers to the request.
9436func (c *ProjectsJobsSnapshotCall) Header() http.Header {
9437	if c.header_ == nil {
9438		c.header_ = make(http.Header)
9439	}
9440	return c.header_
9441}
9442
9443func (c *ProjectsJobsSnapshotCall) doRequest(alt string) (*http.Response, error) {
9444	reqHeaders := make(http.Header)
9445	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
9446	for k, v := range c.header_ {
9447		reqHeaders[k] = v
9448	}
9449	reqHeaders.Set("User-Agent", c.s.userAgent())
9450	var body io.Reader = nil
9451	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshotjobrequest)
9452	if err != nil {
9453		return nil, err
9454	}
9455	reqHeaders.Set("Content-Type", "application/json")
9456	c.urlParams_.Set("alt", alt)
9457	c.urlParams_.Set("prettyPrint", "false")
9458	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}:snapshot")
9459	urls += "?" + c.urlParams_.Encode()
9460	req, err := http.NewRequest("POST", urls, body)
9461	if err != nil {
9462		return nil, err
9463	}
9464	req.Header = reqHeaders
9465	googleapi.Expand(req.URL, map[string]string{
9466		"projectId": c.projectId,
9467		"jobId":     c.jobId,
9468	})
9469	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9470}
9471
9472// Do executes the "dataflow.projects.jobs.snapshot" call.
9473// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
9474// code is an error. Response headers are in either
9475// *Snapshot.ServerResponse.Header or (if a response was returned at
9476// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9477// to check whether the returned error was because
9478// http.StatusNotModified was returned.
9479func (c *ProjectsJobsSnapshotCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
9480	gensupport.SetOptions(c.urlParams_, opts...)
9481	res, err := c.doRequest("json")
9482	if res != nil && res.StatusCode == http.StatusNotModified {
9483		if res.Body != nil {
9484			res.Body.Close()
9485		}
9486		return nil, &googleapi.Error{
9487			Code:   res.StatusCode,
9488			Header: res.Header,
9489		}
9490	}
9491	if err != nil {
9492		return nil, err
9493	}
9494	defer googleapi.CloseBody(res)
9495	if err := googleapi.CheckResponse(res); err != nil {
9496		return nil, err
9497	}
9498	ret := &Snapshot{
9499		ServerResponse: googleapi.ServerResponse{
9500			Header:         res.Header,
9501			HTTPStatusCode: res.StatusCode,
9502		},
9503	}
9504	target := &ret
9505	if err := gensupport.DecodeResponse(target, res); err != nil {
9506		return nil, err
9507	}
9508	return ret, nil
9509	// {
9510	//   "description": "Snapshot the state of a streaming job.",
9511	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}:snapshot",
9512	//   "httpMethod": "POST",
9513	//   "id": "dataflow.projects.jobs.snapshot",
9514	//   "parameterOrder": [
9515	//     "projectId",
9516	//     "jobId"
9517	//   ],
9518	//   "parameters": {
9519	//     "jobId": {
9520	//       "description": "The job to be snapshotted.",
9521	//       "location": "path",
9522	//       "required": true,
9523	//       "type": "string"
9524	//     },
9525	//     "projectId": {
9526	//       "description": "The project which owns the job to be snapshotted.",
9527	//       "location": "path",
9528	//       "required": true,
9529	//       "type": "string"
9530	//     }
9531	//   },
9532	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}:snapshot",
9533	//   "request": {
9534	//     "$ref": "SnapshotJobRequest"
9535	//   },
9536	//   "response": {
9537	//     "$ref": "Snapshot"
9538	//   },
9539	//   "scopes": [
9540	//     "https://www.googleapis.com/auth/cloud-platform",
9541	//     "https://www.googleapis.com/auth/compute",
9542	//     "https://www.googleapis.com/auth/compute.readonly",
9543	//     "https://www.googleapis.com/auth/userinfo.email"
9544	//   ]
9545	// }
9546
9547}
9548
9549// method id "dataflow.projects.jobs.update":
9550
9551type ProjectsJobsUpdateCall struct {
9552	s          *Service
9553	projectId  string
9554	jobId      string
9555	job        *Job
9556	urlParams_ gensupport.URLParams
9557	ctx_       context.Context
9558	header_    http.Header
9559}
9560
9561// Update: Updates the state of an existing Cloud Dataflow job. To
9562// update the state of an existing job, we recommend using
9563// `projects.locations.jobs.update` with a [regional endpoint]
9564// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
9565// Using `projects.jobs.update` is not recommended, as you can only
9566// update the state of jobs that are running in `us-central1`.
9567func (r *ProjectsJobsService) Update(projectId string, jobId string, job *Job) *ProjectsJobsUpdateCall {
9568	c := &ProjectsJobsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9569	c.projectId = projectId
9570	c.jobId = jobId
9571	c.job = job
9572	return c
9573}
9574
9575// Location sets the optional parameter "location": The [regional
9576// endpoint]
9577// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
9578// that contains this job.
9579func (c *ProjectsJobsUpdateCall) Location(location string) *ProjectsJobsUpdateCall {
9580	c.urlParams_.Set("location", location)
9581	return c
9582}
9583
9584// Fields allows partial responses to be retrieved. See
9585// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9586// for more information.
9587func (c *ProjectsJobsUpdateCall) Fields(s ...googleapi.Field) *ProjectsJobsUpdateCall {
9588	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9589	return c
9590}
9591
9592// Context sets the context to be used in this call's Do method. Any
9593// pending HTTP request will be aborted if the provided context is
9594// canceled.
9595func (c *ProjectsJobsUpdateCall) Context(ctx context.Context) *ProjectsJobsUpdateCall {
9596	c.ctx_ = ctx
9597	return c
9598}
9599
9600// Header returns an http.Header that can be modified by the caller to
9601// add HTTP headers to the request.
9602func (c *ProjectsJobsUpdateCall) Header() http.Header {
9603	if c.header_ == nil {
9604		c.header_ = make(http.Header)
9605	}
9606	return c.header_
9607}
9608
9609func (c *ProjectsJobsUpdateCall) doRequest(alt string) (*http.Response, error) {
9610	reqHeaders := make(http.Header)
9611	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
9612	for k, v := range c.header_ {
9613		reqHeaders[k] = v
9614	}
9615	reqHeaders.Set("User-Agent", c.s.userAgent())
9616	var body io.Reader = nil
9617	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
9618	if err != nil {
9619		return nil, err
9620	}
9621	reqHeaders.Set("Content-Type", "application/json")
9622	c.urlParams_.Set("alt", alt)
9623	c.urlParams_.Set("prettyPrint", "false")
9624	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}")
9625	urls += "?" + c.urlParams_.Encode()
9626	req, err := http.NewRequest("PUT", urls, body)
9627	if err != nil {
9628		return nil, err
9629	}
9630	req.Header = reqHeaders
9631	googleapi.Expand(req.URL, map[string]string{
9632		"projectId": c.projectId,
9633		"jobId":     c.jobId,
9634	})
9635	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9636}
9637
9638// Do executes the "dataflow.projects.jobs.update" call.
9639// Exactly one of *Job or error will be non-nil. Any non-2xx status code
9640// is an error. Response headers are in either
9641// *Job.ServerResponse.Header or (if a response was returned at all) in
9642// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
9643// whether the returned error was because http.StatusNotModified was
9644// returned.
9645func (c *ProjectsJobsUpdateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
9646	gensupport.SetOptions(c.urlParams_, opts...)
9647	res, err := c.doRequest("json")
9648	if res != nil && res.StatusCode == http.StatusNotModified {
9649		if res.Body != nil {
9650			res.Body.Close()
9651		}
9652		return nil, &googleapi.Error{
9653			Code:   res.StatusCode,
9654			Header: res.Header,
9655		}
9656	}
9657	if err != nil {
9658		return nil, err
9659	}
9660	defer googleapi.CloseBody(res)
9661	if err := googleapi.CheckResponse(res); err != nil {
9662		return nil, err
9663	}
9664	ret := &Job{
9665		ServerResponse: googleapi.ServerResponse{
9666			Header:         res.Header,
9667			HTTPStatusCode: res.StatusCode,
9668		},
9669	}
9670	target := &ret
9671	if err := gensupport.DecodeResponse(target, res); err != nil {
9672		return nil, err
9673	}
9674	return ret, nil
9675	// {
9676	//   "description": "Updates the state of an existing Cloud Dataflow job. To update the state of an existing job, we recommend using `projects.locations.jobs.update` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.update` is not recommended, as you can only update the state of jobs that are running in `us-central1`.",
9677	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}",
9678	//   "httpMethod": "PUT",
9679	//   "id": "dataflow.projects.jobs.update",
9680	//   "parameterOrder": [
9681	//     "projectId",
9682	//     "jobId"
9683	//   ],
9684	//   "parameters": {
9685	//     "jobId": {
9686	//       "description": "The job ID.",
9687	//       "location": "path",
9688	//       "required": true,
9689	//       "type": "string"
9690	//     },
9691	//     "location": {
9692	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
9693	//       "location": "query",
9694	//       "type": "string"
9695	//     },
9696	//     "projectId": {
9697	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
9698	//       "location": "path",
9699	//       "required": true,
9700	//       "type": "string"
9701	//     }
9702	//   },
9703	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}",
9704	//   "request": {
9705	//     "$ref": "Job"
9706	//   },
9707	//   "response": {
9708	//     "$ref": "Job"
9709	//   },
9710	//   "scopes": [
9711	//     "https://www.googleapis.com/auth/cloud-platform",
9712	//     "https://www.googleapis.com/auth/compute",
9713	//     "https://www.googleapis.com/auth/compute.readonly",
9714	//     "https://www.googleapis.com/auth/userinfo.email"
9715	//   ]
9716	// }
9717
9718}
9719
9720// method id "dataflow.projects.jobs.debug.getConfig":
9721
9722type ProjectsJobsDebugGetConfigCall struct {
9723	s                     *Service
9724	projectId             string
9725	jobId                 string
9726	getdebugconfigrequest *GetDebugConfigRequest
9727	urlParams_            gensupport.URLParams
9728	ctx_                  context.Context
9729	header_               http.Header
9730}
9731
9732// GetConfig: Get encoded debug configuration for component. Not
9733// cacheable.
9734func (r *ProjectsJobsDebugService) GetConfig(projectId string, jobId string, getdebugconfigrequest *GetDebugConfigRequest) *ProjectsJobsDebugGetConfigCall {
9735	c := &ProjectsJobsDebugGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9736	c.projectId = projectId
9737	c.jobId = jobId
9738	c.getdebugconfigrequest = getdebugconfigrequest
9739	return c
9740}
9741
9742// Fields allows partial responses to be retrieved. See
9743// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9744// for more information.
9745func (c *ProjectsJobsDebugGetConfigCall) Fields(s ...googleapi.Field) *ProjectsJobsDebugGetConfigCall {
9746	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9747	return c
9748}
9749
9750// Context sets the context to be used in this call's Do method. Any
9751// pending HTTP request will be aborted if the provided context is
9752// canceled.
9753func (c *ProjectsJobsDebugGetConfigCall) Context(ctx context.Context) *ProjectsJobsDebugGetConfigCall {
9754	c.ctx_ = ctx
9755	return c
9756}
9757
9758// Header returns an http.Header that can be modified by the caller to
9759// add HTTP headers to the request.
9760func (c *ProjectsJobsDebugGetConfigCall) Header() http.Header {
9761	if c.header_ == nil {
9762		c.header_ = make(http.Header)
9763	}
9764	return c.header_
9765}
9766
9767func (c *ProjectsJobsDebugGetConfigCall) doRequest(alt string) (*http.Response, error) {
9768	reqHeaders := make(http.Header)
9769	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
9770	for k, v := range c.header_ {
9771		reqHeaders[k] = v
9772	}
9773	reqHeaders.Set("User-Agent", c.s.userAgent())
9774	var body io.Reader = nil
9775	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getdebugconfigrequest)
9776	if err != nil {
9777		return nil, err
9778	}
9779	reqHeaders.Set("Content-Type", "application/json")
9780	c.urlParams_.Set("alt", alt)
9781	c.urlParams_.Set("prettyPrint", "false")
9782	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig")
9783	urls += "?" + c.urlParams_.Encode()
9784	req, err := http.NewRequest("POST", urls, body)
9785	if err != nil {
9786		return nil, err
9787	}
9788	req.Header = reqHeaders
9789	googleapi.Expand(req.URL, map[string]string{
9790		"projectId": c.projectId,
9791		"jobId":     c.jobId,
9792	})
9793	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9794}
9795
9796// Do executes the "dataflow.projects.jobs.debug.getConfig" call.
9797// Exactly one of *GetDebugConfigResponse or error will be non-nil. Any
9798// non-2xx status code is an error. Response headers are in either
9799// *GetDebugConfigResponse.ServerResponse.Header or (if a response was
9800// returned at all) in error.(*googleapi.Error).Header. Use
9801// googleapi.IsNotModified to check whether the returned error was
9802// because http.StatusNotModified was returned.
9803func (c *ProjectsJobsDebugGetConfigCall) Do(opts ...googleapi.CallOption) (*GetDebugConfigResponse, error) {
9804	gensupport.SetOptions(c.urlParams_, opts...)
9805	res, err := c.doRequest("json")
9806	if res != nil && res.StatusCode == http.StatusNotModified {
9807		if res.Body != nil {
9808			res.Body.Close()
9809		}
9810		return nil, &googleapi.Error{
9811			Code:   res.StatusCode,
9812			Header: res.Header,
9813		}
9814	}
9815	if err != nil {
9816		return nil, err
9817	}
9818	defer googleapi.CloseBody(res)
9819	if err := googleapi.CheckResponse(res); err != nil {
9820		return nil, err
9821	}
9822	ret := &GetDebugConfigResponse{
9823		ServerResponse: googleapi.ServerResponse{
9824			Header:         res.Header,
9825			HTTPStatusCode: res.StatusCode,
9826		},
9827	}
9828	target := &ret
9829	if err := gensupport.DecodeResponse(target, res); err != nil {
9830		return nil, err
9831	}
9832	return ret, nil
9833	// {
9834	//   "description": "Get encoded debug configuration for component. Not cacheable.",
9835	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig",
9836	//   "httpMethod": "POST",
9837	//   "id": "dataflow.projects.jobs.debug.getConfig",
9838	//   "parameterOrder": [
9839	//     "projectId",
9840	//     "jobId"
9841	//   ],
9842	//   "parameters": {
9843	//     "jobId": {
9844	//       "description": "The job id.",
9845	//       "location": "path",
9846	//       "required": true,
9847	//       "type": "string"
9848	//     },
9849	//     "projectId": {
9850	//       "description": "The project id.",
9851	//       "location": "path",
9852	//       "required": true,
9853	//       "type": "string"
9854	//     }
9855	//   },
9856	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig",
9857	//   "request": {
9858	//     "$ref": "GetDebugConfigRequest"
9859	//   },
9860	//   "response": {
9861	//     "$ref": "GetDebugConfigResponse"
9862	//   },
9863	//   "scopes": [
9864	//     "https://www.googleapis.com/auth/cloud-platform",
9865	//     "https://www.googleapis.com/auth/compute",
9866	//     "https://www.googleapis.com/auth/compute.readonly",
9867	//     "https://www.googleapis.com/auth/userinfo.email"
9868	//   ]
9869	// }
9870
9871}
9872
9873// method id "dataflow.projects.jobs.debug.sendCapture":
9874
9875type ProjectsJobsDebugSendCaptureCall struct {
9876	s                       *Service
9877	projectId               string
9878	jobId                   string
9879	senddebugcapturerequest *SendDebugCaptureRequest
9880	urlParams_              gensupport.URLParams
9881	ctx_                    context.Context
9882	header_                 http.Header
9883}
9884
9885// SendCapture: Send encoded debug capture data for component.
9886func (r *ProjectsJobsDebugService) SendCapture(projectId string, jobId string, senddebugcapturerequest *SendDebugCaptureRequest) *ProjectsJobsDebugSendCaptureCall {
9887	c := &ProjectsJobsDebugSendCaptureCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9888	c.projectId = projectId
9889	c.jobId = jobId
9890	c.senddebugcapturerequest = senddebugcapturerequest
9891	return c
9892}
9893
9894// Fields allows partial responses to be retrieved. See
9895// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9896// for more information.
9897func (c *ProjectsJobsDebugSendCaptureCall) Fields(s ...googleapi.Field) *ProjectsJobsDebugSendCaptureCall {
9898	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9899	return c
9900}
9901
9902// Context sets the context to be used in this call's Do method. Any
9903// pending HTTP request will be aborted if the provided context is
9904// canceled.
9905func (c *ProjectsJobsDebugSendCaptureCall) Context(ctx context.Context) *ProjectsJobsDebugSendCaptureCall {
9906	c.ctx_ = ctx
9907	return c
9908}
9909
9910// Header returns an http.Header that can be modified by the caller to
9911// add HTTP headers to the request.
9912func (c *ProjectsJobsDebugSendCaptureCall) Header() http.Header {
9913	if c.header_ == nil {
9914		c.header_ = make(http.Header)
9915	}
9916	return c.header_
9917}
9918
9919func (c *ProjectsJobsDebugSendCaptureCall) doRequest(alt string) (*http.Response, error) {
9920	reqHeaders := make(http.Header)
9921	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
9922	for k, v := range c.header_ {
9923		reqHeaders[k] = v
9924	}
9925	reqHeaders.Set("User-Agent", c.s.userAgent())
9926	var body io.Reader = nil
9927	body, err := googleapi.WithoutDataWrapper.JSONReader(c.senddebugcapturerequest)
9928	if err != nil {
9929		return nil, err
9930	}
9931	reqHeaders.Set("Content-Type", "application/json")
9932	c.urlParams_.Set("alt", alt)
9933	c.urlParams_.Set("prettyPrint", "false")
9934	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture")
9935	urls += "?" + c.urlParams_.Encode()
9936	req, err := http.NewRequest("POST", urls, body)
9937	if err != nil {
9938		return nil, err
9939	}
9940	req.Header = reqHeaders
9941	googleapi.Expand(req.URL, map[string]string{
9942		"projectId": c.projectId,
9943		"jobId":     c.jobId,
9944	})
9945	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9946}
9947
9948// Do executes the "dataflow.projects.jobs.debug.sendCapture" call.
9949// Exactly one of *SendDebugCaptureResponse or error will be non-nil.
9950// Any non-2xx status code is an error. Response headers are in either
9951// *SendDebugCaptureResponse.ServerResponse.Header or (if a response was
9952// returned at all) in error.(*googleapi.Error).Header. Use
9953// googleapi.IsNotModified to check whether the returned error was
9954// because http.StatusNotModified was returned.
9955func (c *ProjectsJobsDebugSendCaptureCall) Do(opts ...googleapi.CallOption) (*SendDebugCaptureResponse, error) {
9956	gensupport.SetOptions(c.urlParams_, opts...)
9957	res, err := c.doRequest("json")
9958	if res != nil && res.StatusCode == http.StatusNotModified {
9959		if res.Body != nil {
9960			res.Body.Close()
9961		}
9962		return nil, &googleapi.Error{
9963			Code:   res.StatusCode,
9964			Header: res.Header,
9965		}
9966	}
9967	if err != nil {
9968		return nil, err
9969	}
9970	defer googleapi.CloseBody(res)
9971	if err := googleapi.CheckResponse(res); err != nil {
9972		return nil, err
9973	}
9974	ret := &SendDebugCaptureResponse{
9975		ServerResponse: googleapi.ServerResponse{
9976			Header:         res.Header,
9977			HTTPStatusCode: res.StatusCode,
9978		},
9979	}
9980	target := &ret
9981	if err := gensupport.DecodeResponse(target, res); err != nil {
9982		return nil, err
9983	}
9984	return ret, nil
9985	// {
9986	//   "description": "Send encoded debug capture data for component.",
9987	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture",
9988	//   "httpMethod": "POST",
9989	//   "id": "dataflow.projects.jobs.debug.sendCapture",
9990	//   "parameterOrder": [
9991	//     "projectId",
9992	//     "jobId"
9993	//   ],
9994	//   "parameters": {
9995	//     "jobId": {
9996	//       "description": "The job id.",
9997	//       "location": "path",
9998	//       "required": true,
9999	//       "type": "string"
10000	//     },
10001	//     "projectId": {
10002	//       "description": "The project id.",
10003	//       "location": "path",
10004	//       "required": true,
10005	//       "type": "string"
10006	//     }
10007	//   },
10008	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture",
10009	//   "request": {
10010	//     "$ref": "SendDebugCaptureRequest"
10011	//   },
10012	//   "response": {
10013	//     "$ref": "SendDebugCaptureResponse"
10014	//   },
10015	//   "scopes": [
10016	//     "https://www.googleapis.com/auth/cloud-platform",
10017	//     "https://www.googleapis.com/auth/compute",
10018	//     "https://www.googleapis.com/auth/compute.readonly",
10019	//     "https://www.googleapis.com/auth/userinfo.email"
10020	//   ]
10021	// }
10022
10023}
10024
10025// method id "dataflow.projects.jobs.messages.list":
10026
10027type ProjectsJobsMessagesListCall struct {
10028	s            *Service
10029	projectId    string
10030	jobId        string
10031	urlParams_   gensupport.URLParams
10032	ifNoneMatch_ string
10033	ctx_         context.Context
10034	header_      http.Header
10035}
10036
10037// List: Request the job status. To request the status of a job, we
10038// recommend using `projects.locations.jobs.messages.list` with a
10039// [regional endpoint]
10040// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
10041// Using `projects.jobs.messages.list` is not recommended, as you can
10042// only request the status of jobs that are running in `us-central1`.
10043func (r *ProjectsJobsMessagesService) List(projectId string, jobId string) *ProjectsJobsMessagesListCall {
10044	c := &ProjectsJobsMessagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10045	c.projectId = projectId
10046	c.jobId = jobId
10047	return c
10048}
10049
10050// EndTime sets the optional parameter "endTime": Return only messages
10051// with timestamps < end_time. The default is now (i.e. return up to the
10052// latest messages available).
10053func (c *ProjectsJobsMessagesListCall) EndTime(endTime string) *ProjectsJobsMessagesListCall {
10054	c.urlParams_.Set("endTime", endTime)
10055	return c
10056}
10057
10058// Location sets the optional parameter "location": The [regional
10059// endpoint]
10060// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
10061// that contains the job specified by job_id.
10062func (c *ProjectsJobsMessagesListCall) Location(location string) *ProjectsJobsMessagesListCall {
10063	c.urlParams_.Set("location", location)
10064	return c
10065}
10066
10067// MinimumImportance sets the optional parameter "minimumImportance":
10068// Filter to only get messages with importance >= level
10069//
10070// Possible values:
10071//   "JOB_MESSAGE_IMPORTANCE_UNKNOWN" - The message importance isn't
10072// specified, or is unknown.
10073//   "JOB_MESSAGE_DEBUG" - The message is at the 'debug' level:
10074// typically only useful for software engineers working on the code the
10075// job is running. Typically, Dataflow pipeline runners do not display
10076// log messages at this level by default.
10077//   "JOB_MESSAGE_DETAILED" - The message is at the 'detailed' level:
10078// somewhat verbose, but potentially useful to users. Typically,
10079// Dataflow pipeline runners do not display log messages at this level
10080// by default. These messages are displayed by default in the Dataflow
10081// monitoring UI.
10082//   "JOB_MESSAGE_BASIC" - The message is at the 'basic' level: useful
10083// for keeping track of the execution of a Dataflow pipeline. Typically,
10084// Dataflow pipeline runners display log messages at this level by
10085// default, and these messages are displayed by default in the Dataflow
10086// monitoring UI.
10087//   "JOB_MESSAGE_WARNING" - The message is at the 'warning' level:
10088// indicating a condition pertaining to a job which may require human
10089// intervention. Typically, Dataflow pipeline runners display log
10090// messages at this level by default, and these messages are displayed
10091// by default in the Dataflow monitoring UI.
10092//   "JOB_MESSAGE_ERROR" - The message is at the 'error' level:
10093// indicating a condition preventing a job from succeeding. Typically,
10094// Dataflow pipeline runners display log messages at this level by
10095// default, and these messages are displayed by default in the Dataflow
10096// monitoring UI.
10097func (c *ProjectsJobsMessagesListCall) MinimumImportance(minimumImportance string) *ProjectsJobsMessagesListCall {
10098	c.urlParams_.Set("minimumImportance", minimumImportance)
10099	return c
10100}
10101
10102// PageSize sets the optional parameter "pageSize": If specified,
10103// determines the maximum number of messages to return. If unspecified,
10104// the service may choose an appropriate default, or may return an
10105// arbitrarily large number of results.
10106func (c *ProjectsJobsMessagesListCall) PageSize(pageSize int64) *ProjectsJobsMessagesListCall {
10107	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
10108	return c
10109}
10110
10111// PageToken sets the optional parameter "pageToken": If supplied, this
10112// should be the value of next_page_token returned by an earlier call.
10113// This will cause the next page of results to be returned.
10114func (c *ProjectsJobsMessagesListCall) PageToken(pageToken string) *ProjectsJobsMessagesListCall {
10115	c.urlParams_.Set("pageToken", pageToken)
10116	return c
10117}
10118
10119// StartTime sets the optional parameter "startTime": If specified,
10120// return only messages with timestamps >= start_time. The default is
10121// the job creation time (i.e. beginning of messages).
10122func (c *ProjectsJobsMessagesListCall) StartTime(startTime string) *ProjectsJobsMessagesListCall {
10123	c.urlParams_.Set("startTime", startTime)
10124	return c
10125}
10126
10127// Fields allows partial responses to be retrieved. See
10128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10129// for more information.
10130func (c *ProjectsJobsMessagesListCall) Fields(s ...googleapi.Field) *ProjectsJobsMessagesListCall {
10131	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10132	return c
10133}
10134
10135// IfNoneMatch sets the optional parameter which makes the operation
10136// fail if the object's ETag matches the given value. This is useful for
10137// getting updates only after the object has changed since the last
10138// request. Use googleapi.IsNotModified to check whether the response
10139// error from Do is the result of In-None-Match.
10140func (c *ProjectsJobsMessagesListCall) IfNoneMatch(entityTag string) *ProjectsJobsMessagesListCall {
10141	c.ifNoneMatch_ = entityTag
10142	return c
10143}
10144
10145// Context sets the context to be used in this call's Do method. Any
10146// pending HTTP request will be aborted if the provided context is
10147// canceled.
10148func (c *ProjectsJobsMessagesListCall) Context(ctx context.Context) *ProjectsJobsMessagesListCall {
10149	c.ctx_ = ctx
10150	return c
10151}
10152
10153// Header returns an http.Header that can be modified by the caller to
10154// add HTTP headers to the request.
10155func (c *ProjectsJobsMessagesListCall) Header() http.Header {
10156	if c.header_ == nil {
10157		c.header_ = make(http.Header)
10158	}
10159	return c.header_
10160}
10161
10162func (c *ProjectsJobsMessagesListCall) doRequest(alt string) (*http.Response, error) {
10163	reqHeaders := make(http.Header)
10164	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
10165	for k, v := range c.header_ {
10166		reqHeaders[k] = v
10167	}
10168	reqHeaders.Set("User-Agent", c.s.userAgent())
10169	if c.ifNoneMatch_ != "" {
10170		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10171	}
10172	var body io.Reader = nil
10173	c.urlParams_.Set("alt", alt)
10174	c.urlParams_.Set("prettyPrint", "false")
10175	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/messages")
10176	urls += "?" + c.urlParams_.Encode()
10177	req, err := http.NewRequest("GET", urls, body)
10178	if err != nil {
10179		return nil, err
10180	}
10181	req.Header = reqHeaders
10182	googleapi.Expand(req.URL, map[string]string{
10183		"projectId": c.projectId,
10184		"jobId":     c.jobId,
10185	})
10186	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10187}
10188
10189// Do executes the "dataflow.projects.jobs.messages.list" call.
10190// Exactly one of *ListJobMessagesResponse or error will be non-nil. Any
10191// non-2xx status code is an error. Response headers are in either
10192// *ListJobMessagesResponse.ServerResponse.Header or (if a response was
10193// returned at all) in error.(*googleapi.Error).Header. Use
10194// googleapi.IsNotModified to check whether the returned error was
10195// because http.StatusNotModified was returned.
10196func (c *ProjectsJobsMessagesListCall) Do(opts ...googleapi.CallOption) (*ListJobMessagesResponse, error) {
10197	gensupport.SetOptions(c.urlParams_, opts...)
10198	res, err := c.doRequest("json")
10199	if res != nil && res.StatusCode == http.StatusNotModified {
10200		if res.Body != nil {
10201			res.Body.Close()
10202		}
10203		return nil, &googleapi.Error{
10204			Code:   res.StatusCode,
10205			Header: res.Header,
10206		}
10207	}
10208	if err != nil {
10209		return nil, err
10210	}
10211	defer googleapi.CloseBody(res)
10212	if err := googleapi.CheckResponse(res); err != nil {
10213		return nil, err
10214	}
10215	ret := &ListJobMessagesResponse{
10216		ServerResponse: googleapi.ServerResponse{
10217			Header:         res.Header,
10218			HTTPStatusCode: res.StatusCode,
10219		},
10220	}
10221	target := &ret
10222	if err := gensupport.DecodeResponse(target, res); err != nil {
10223		return nil, err
10224	}
10225	return ret, nil
10226	// {
10227	//   "description": "Request the job status. To request the status of a job, we recommend using `projects.locations.jobs.messages.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.messages.list` is not recommended, as you can only request the status of jobs that are running in `us-central1`.",
10228	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/messages",
10229	//   "httpMethod": "GET",
10230	//   "id": "dataflow.projects.jobs.messages.list",
10231	//   "parameterOrder": [
10232	//     "projectId",
10233	//     "jobId"
10234	//   ],
10235	//   "parameters": {
10236	//     "endTime": {
10237	//       "description": "Return only messages with timestamps \u003c end_time. The default is now (i.e. return up to the latest messages available).",
10238	//       "format": "google-datetime",
10239	//       "location": "query",
10240	//       "type": "string"
10241	//     },
10242	//     "jobId": {
10243	//       "description": "The job to get messages about.",
10244	//       "location": "path",
10245	//       "required": true,
10246	//       "type": "string"
10247	//     },
10248	//     "location": {
10249	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
10250	//       "location": "query",
10251	//       "type": "string"
10252	//     },
10253	//     "minimumImportance": {
10254	//       "description": "Filter to only get messages with importance \u003e= level",
10255	//       "enum": [
10256	//         "JOB_MESSAGE_IMPORTANCE_UNKNOWN",
10257	//         "JOB_MESSAGE_DEBUG",
10258	//         "JOB_MESSAGE_DETAILED",
10259	//         "JOB_MESSAGE_BASIC",
10260	//         "JOB_MESSAGE_WARNING",
10261	//         "JOB_MESSAGE_ERROR"
10262	//       ],
10263	//       "enumDescriptions": [
10264	//         "The message importance isn't specified, or is unknown.",
10265	//         "The message is at the 'debug' level: typically only useful for software engineers working on the code the job is running. Typically, Dataflow pipeline runners do not display log messages at this level by default.",
10266	//         "The message is at the 'detailed' level: somewhat verbose, but potentially useful to users. Typically, Dataflow pipeline runners do not display log messages at this level by default. These messages are displayed by default in the Dataflow monitoring UI.",
10267	//         "The message is at the 'basic' level: useful for keeping track of the execution of a Dataflow pipeline. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.",
10268	//         "The message is at the 'warning' level: indicating a condition pertaining to a job which may require human intervention. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.",
10269	//         "The message is at the 'error' level: indicating a condition preventing a job from succeeding. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI."
10270	//       ],
10271	//       "location": "query",
10272	//       "type": "string"
10273	//     },
10274	//     "pageSize": {
10275	//       "description": "If specified, determines the maximum number of messages to return. If unspecified, the service may choose an appropriate default, or may return an arbitrarily large number of results.",
10276	//       "format": "int32",
10277	//       "location": "query",
10278	//       "type": "integer"
10279	//     },
10280	//     "pageToken": {
10281	//       "description": "If supplied, this should be the value of next_page_token returned by an earlier call. This will cause the next page of results to be returned.",
10282	//       "location": "query",
10283	//       "type": "string"
10284	//     },
10285	//     "projectId": {
10286	//       "description": "A project id.",
10287	//       "location": "path",
10288	//       "required": true,
10289	//       "type": "string"
10290	//     },
10291	//     "startTime": {
10292	//       "description": "If specified, return only messages with timestamps \u003e= start_time. The default is the job creation time (i.e. beginning of messages).",
10293	//       "format": "google-datetime",
10294	//       "location": "query",
10295	//       "type": "string"
10296	//     }
10297	//   },
10298	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/messages",
10299	//   "response": {
10300	//     "$ref": "ListJobMessagesResponse"
10301	//   },
10302	//   "scopes": [
10303	//     "https://www.googleapis.com/auth/cloud-platform",
10304	//     "https://www.googleapis.com/auth/compute",
10305	//     "https://www.googleapis.com/auth/compute.readonly",
10306	//     "https://www.googleapis.com/auth/userinfo.email"
10307	//   ]
10308	// }
10309
10310}
10311
10312// Pages invokes f for each page of results.
10313// A non-nil error returned from f will halt the iteration.
10314// The provided context supersedes any context provided to the Context method.
10315func (c *ProjectsJobsMessagesListCall) Pages(ctx context.Context, f func(*ListJobMessagesResponse) error) error {
10316	c.ctx_ = ctx
10317	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
10318	for {
10319		x, err := c.Do()
10320		if err != nil {
10321			return err
10322		}
10323		if err := f(x); err != nil {
10324			return err
10325		}
10326		if x.NextPageToken == "" {
10327			return nil
10328		}
10329		c.PageToken(x.NextPageToken)
10330	}
10331}
10332
10333// method id "dataflow.projects.jobs.workItems.lease":
10334
10335type ProjectsJobsWorkItemsLeaseCall struct {
10336	s                    *Service
10337	projectId            string
10338	jobId                string
10339	leaseworkitemrequest *LeaseWorkItemRequest
10340	urlParams_           gensupport.URLParams
10341	ctx_                 context.Context
10342	header_              http.Header
10343}
10344
10345// Lease: Leases a dataflow WorkItem to run.
10346func (r *ProjectsJobsWorkItemsService) Lease(projectId string, jobId string, leaseworkitemrequest *LeaseWorkItemRequest) *ProjectsJobsWorkItemsLeaseCall {
10347	c := &ProjectsJobsWorkItemsLeaseCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10348	c.projectId = projectId
10349	c.jobId = jobId
10350	c.leaseworkitemrequest = leaseworkitemrequest
10351	return c
10352}
10353
10354// Fields allows partial responses to be retrieved. See
10355// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10356// for more information.
10357func (c *ProjectsJobsWorkItemsLeaseCall) Fields(s ...googleapi.Field) *ProjectsJobsWorkItemsLeaseCall {
10358	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10359	return c
10360}
10361
10362// Context sets the context to be used in this call's Do method. Any
10363// pending HTTP request will be aborted if the provided context is
10364// canceled.
10365func (c *ProjectsJobsWorkItemsLeaseCall) Context(ctx context.Context) *ProjectsJobsWorkItemsLeaseCall {
10366	c.ctx_ = ctx
10367	return c
10368}
10369
10370// Header returns an http.Header that can be modified by the caller to
10371// add HTTP headers to the request.
10372func (c *ProjectsJobsWorkItemsLeaseCall) Header() http.Header {
10373	if c.header_ == nil {
10374		c.header_ = make(http.Header)
10375	}
10376	return c.header_
10377}
10378
10379func (c *ProjectsJobsWorkItemsLeaseCall) doRequest(alt string) (*http.Response, error) {
10380	reqHeaders := make(http.Header)
10381	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
10382	for k, v := range c.header_ {
10383		reqHeaders[k] = v
10384	}
10385	reqHeaders.Set("User-Agent", c.s.userAgent())
10386	var body io.Reader = nil
10387	body, err := googleapi.WithoutDataWrapper.JSONReader(c.leaseworkitemrequest)
10388	if err != nil {
10389		return nil, err
10390	}
10391	reqHeaders.Set("Content-Type", "application/json")
10392	c.urlParams_.Set("alt", alt)
10393	c.urlParams_.Set("prettyPrint", "false")
10394	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease")
10395	urls += "?" + c.urlParams_.Encode()
10396	req, err := http.NewRequest("POST", urls, body)
10397	if err != nil {
10398		return nil, err
10399	}
10400	req.Header = reqHeaders
10401	googleapi.Expand(req.URL, map[string]string{
10402		"projectId": c.projectId,
10403		"jobId":     c.jobId,
10404	})
10405	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10406}
10407
10408// Do executes the "dataflow.projects.jobs.workItems.lease" call.
10409// Exactly one of *LeaseWorkItemResponse or error will be non-nil. Any
10410// non-2xx status code is an error. Response headers are in either
10411// *LeaseWorkItemResponse.ServerResponse.Header or (if a response was
10412// returned at all) in error.(*googleapi.Error).Header. Use
10413// googleapi.IsNotModified to check whether the returned error was
10414// because http.StatusNotModified was returned.
10415func (c *ProjectsJobsWorkItemsLeaseCall) Do(opts ...googleapi.CallOption) (*LeaseWorkItemResponse, error) {
10416	gensupport.SetOptions(c.urlParams_, opts...)
10417	res, err := c.doRequest("json")
10418	if res != nil && res.StatusCode == http.StatusNotModified {
10419		if res.Body != nil {
10420			res.Body.Close()
10421		}
10422		return nil, &googleapi.Error{
10423			Code:   res.StatusCode,
10424			Header: res.Header,
10425		}
10426	}
10427	if err != nil {
10428		return nil, err
10429	}
10430	defer googleapi.CloseBody(res)
10431	if err := googleapi.CheckResponse(res); err != nil {
10432		return nil, err
10433	}
10434	ret := &LeaseWorkItemResponse{
10435		ServerResponse: googleapi.ServerResponse{
10436			Header:         res.Header,
10437			HTTPStatusCode: res.StatusCode,
10438		},
10439	}
10440	target := &ret
10441	if err := gensupport.DecodeResponse(target, res); err != nil {
10442		return nil, err
10443	}
10444	return ret, nil
10445	// {
10446	//   "description": "Leases a dataflow WorkItem to run.",
10447	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease",
10448	//   "httpMethod": "POST",
10449	//   "id": "dataflow.projects.jobs.workItems.lease",
10450	//   "parameterOrder": [
10451	//     "projectId",
10452	//     "jobId"
10453	//   ],
10454	//   "parameters": {
10455	//     "jobId": {
10456	//       "description": "Identifies the workflow job this worker belongs to.",
10457	//       "location": "path",
10458	//       "required": true,
10459	//       "type": "string"
10460	//     },
10461	//     "projectId": {
10462	//       "description": "Identifies the project this worker belongs to.",
10463	//       "location": "path",
10464	//       "required": true,
10465	//       "type": "string"
10466	//     }
10467	//   },
10468	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease",
10469	//   "request": {
10470	//     "$ref": "LeaseWorkItemRequest"
10471	//   },
10472	//   "response": {
10473	//     "$ref": "LeaseWorkItemResponse"
10474	//   },
10475	//   "scopes": [
10476	//     "https://www.googleapis.com/auth/cloud-platform",
10477	//     "https://www.googleapis.com/auth/compute",
10478	//     "https://www.googleapis.com/auth/compute.readonly",
10479	//     "https://www.googleapis.com/auth/userinfo.email"
10480	//   ]
10481	// }
10482
10483}
10484
10485// method id "dataflow.projects.jobs.workItems.reportStatus":
10486
10487type ProjectsJobsWorkItemsReportStatusCall struct {
10488	s                           *Service
10489	projectId                   string
10490	jobId                       string
10491	reportworkitemstatusrequest *ReportWorkItemStatusRequest
10492	urlParams_                  gensupport.URLParams
10493	ctx_                        context.Context
10494	header_                     http.Header
10495}
10496
10497// ReportStatus: Reports the status of dataflow WorkItems leased by a
10498// worker.
10499func (r *ProjectsJobsWorkItemsService) ReportStatus(projectId string, jobId string, reportworkitemstatusrequest *ReportWorkItemStatusRequest) *ProjectsJobsWorkItemsReportStatusCall {
10500	c := &ProjectsJobsWorkItemsReportStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10501	c.projectId = projectId
10502	c.jobId = jobId
10503	c.reportworkitemstatusrequest = reportworkitemstatusrequest
10504	return c
10505}
10506
10507// Fields allows partial responses to be retrieved. See
10508// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10509// for more information.
10510func (c *ProjectsJobsWorkItemsReportStatusCall) Fields(s ...googleapi.Field) *ProjectsJobsWorkItemsReportStatusCall {
10511	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10512	return c
10513}
10514
10515// Context sets the context to be used in this call's Do method. Any
10516// pending HTTP request will be aborted if the provided context is
10517// canceled.
10518func (c *ProjectsJobsWorkItemsReportStatusCall) Context(ctx context.Context) *ProjectsJobsWorkItemsReportStatusCall {
10519	c.ctx_ = ctx
10520	return c
10521}
10522
10523// Header returns an http.Header that can be modified by the caller to
10524// add HTTP headers to the request.
10525func (c *ProjectsJobsWorkItemsReportStatusCall) Header() http.Header {
10526	if c.header_ == nil {
10527		c.header_ = make(http.Header)
10528	}
10529	return c.header_
10530}
10531
10532func (c *ProjectsJobsWorkItemsReportStatusCall) doRequest(alt string) (*http.Response, error) {
10533	reqHeaders := make(http.Header)
10534	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
10535	for k, v := range c.header_ {
10536		reqHeaders[k] = v
10537	}
10538	reqHeaders.Set("User-Agent", c.s.userAgent())
10539	var body io.Reader = nil
10540	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reportworkitemstatusrequest)
10541	if err != nil {
10542		return nil, err
10543	}
10544	reqHeaders.Set("Content-Type", "application/json")
10545	c.urlParams_.Set("alt", alt)
10546	c.urlParams_.Set("prettyPrint", "false")
10547	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus")
10548	urls += "?" + c.urlParams_.Encode()
10549	req, err := http.NewRequest("POST", urls, body)
10550	if err != nil {
10551		return nil, err
10552	}
10553	req.Header = reqHeaders
10554	googleapi.Expand(req.URL, map[string]string{
10555		"projectId": c.projectId,
10556		"jobId":     c.jobId,
10557	})
10558	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10559}
10560
10561// Do executes the "dataflow.projects.jobs.workItems.reportStatus" call.
10562// Exactly one of *ReportWorkItemStatusResponse or error will be
10563// non-nil. Any non-2xx status code is an error. Response headers are in
10564// either *ReportWorkItemStatusResponse.ServerResponse.Header or (if a
10565// response was returned at all) in error.(*googleapi.Error).Header. Use
10566// googleapi.IsNotModified to check whether the returned error was
10567// because http.StatusNotModified was returned.
10568func (c *ProjectsJobsWorkItemsReportStatusCall) Do(opts ...googleapi.CallOption) (*ReportWorkItemStatusResponse, error) {
10569	gensupport.SetOptions(c.urlParams_, opts...)
10570	res, err := c.doRequest("json")
10571	if res != nil && res.StatusCode == http.StatusNotModified {
10572		if res.Body != nil {
10573			res.Body.Close()
10574		}
10575		return nil, &googleapi.Error{
10576			Code:   res.StatusCode,
10577			Header: res.Header,
10578		}
10579	}
10580	if err != nil {
10581		return nil, err
10582	}
10583	defer googleapi.CloseBody(res)
10584	if err := googleapi.CheckResponse(res); err != nil {
10585		return nil, err
10586	}
10587	ret := &ReportWorkItemStatusResponse{
10588		ServerResponse: googleapi.ServerResponse{
10589			Header:         res.Header,
10590			HTTPStatusCode: res.StatusCode,
10591		},
10592	}
10593	target := &ret
10594	if err := gensupport.DecodeResponse(target, res); err != nil {
10595		return nil, err
10596	}
10597	return ret, nil
10598	// {
10599	//   "description": "Reports the status of dataflow WorkItems leased by a worker.",
10600	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus",
10601	//   "httpMethod": "POST",
10602	//   "id": "dataflow.projects.jobs.workItems.reportStatus",
10603	//   "parameterOrder": [
10604	//     "projectId",
10605	//     "jobId"
10606	//   ],
10607	//   "parameters": {
10608	//     "jobId": {
10609	//       "description": "The job which the WorkItem is part of.",
10610	//       "location": "path",
10611	//       "required": true,
10612	//       "type": "string"
10613	//     },
10614	//     "projectId": {
10615	//       "description": "The project which owns the WorkItem's job.",
10616	//       "location": "path",
10617	//       "required": true,
10618	//       "type": "string"
10619	//     }
10620	//   },
10621	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus",
10622	//   "request": {
10623	//     "$ref": "ReportWorkItemStatusRequest"
10624	//   },
10625	//   "response": {
10626	//     "$ref": "ReportWorkItemStatusResponse"
10627	//   },
10628	//   "scopes": [
10629	//     "https://www.googleapis.com/auth/cloud-platform",
10630	//     "https://www.googleapis.com/auth/compute",
10631	//     "https://www.googleapis.com/auth/compute.readonly",
10632	//     "https://www.googleapis.com/auth/userinfo.email"
10633	//   ]
10634	// }
10635
10636}
10637
10638// method id "dataflow.projects.locations.workerMessages":
10639
10640type ProjectsLocationsWorkerMessagesCall struct {
10641	s                         *Service
10642	projectId                 string
10643	location                  string
10644	sendworkermessagesrequest *SendWorkerMessagesRequest
10645	urlParams_                gensupport.URLParams
10646	ctx_                      context.Context
10647	header_                   http.Header
10648}
10649
10650// WorkerMessages: Send a worker_message to the service.
10651func (r *ProjectsLocationsService) WorkerMessages(projectId string, location string, sendworkermessagesrequest *SendWorkerMessagesRequest) *ProjectsLocationsWorkerMessagesCall {
10652	c := &ProjectsLocationsWorkerMessagesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10653	c.projectId = projectId
10654	c.location = location
10655	c.sendworkermessagesrequest = sendworkermessagesrequest
10656	return c
10657}
10658
10659// Fields allows partial responses to be retrieved. See
10660// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10661// for more information.
10662func (c *ProjectsLocationsWorkerMessagesCall) Fields(s ...googleapi.Field) *ProjectsLocationsWorkerMessagesCall {
10663	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10664	return c
10665}
10666
10667// Context sets the context to be used in this call's Do method. Any
10668// pending HTTP request will be aborted if the provided context is
10669// canceled.
10670func (c *ProjectsLocationsWorkerMessagesCall) Context(ctx context.Context) *ProjectsLocationsWorkerMessagesCall {
10671	c.ctx_ = ctx
10672	return c
10673}
10674
10675// Header returns an http.Header that can be modified by the caller to
10676// add HTTP headers to the request.
10677func (c *ProjectsLocationsWorkerMessagesCall) Header() http.Header {
10678	if c.header_ == nil {
10679		c.header_ = make(http.Header)
10680	}
10681	return c.header_
10682}
10683
10684func (c *ProjectsLocationsWorkerMessagesCall) doRequest(alt string) (*http.Response, error) {
10685	reqHeaders := make(http.Header)
10686	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
10687	for k, v := range c.header_ {
10688		reqHeaders[k] = v
10689	}
10690	reqHeaders.Set("User-Agent", c.s.userAgent())
10691	var body io.Reader = nil
10692	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sendworkermessagesrequest)
10693	if err != nil {
10694		return nil, err
10695	}
10696	reqHeaders.Set("Content-Type", "application/json")
10697	c.urlParams_.Set("alt", alt)
10698	c.urlParams_.Set("prettyPrint", "false")
10699	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/WorkerMessages")
10700	urls += "?" + c.urlParams_.Encode()
10701	req, err := http.NewRequest("POST", urls, body)
10702	if err != nil {
10703		return nil, err
10704	}
10705	req.Header = reqHeaders
10706	googleapi.Expand(req.URL, map[string]string{
10707		"projectId": c.projectId,
10708		"location":  c.location,
10709	})
10710	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10711}
10712
10713// Do executes the "dataflow.projects.locations.workerMessages" call.
10714// Exactly one of *SendWorkerMessagesResponse or error will be non-nil.
10715// Any non-2xx status code is an error. Response headers are in either
10716// *SendWorkerMessagesResponse.ServerResponse.Header or (if a response
10717// was returned at all) in error.(*googleapi.Error).Header. Use
10718// googleapi.IsNotModified to check whether the returned error was
10719// because http.StatusNotModified was returned.
10720func (c *ProjectsLocationsWorkerMessagesCall) Do(opts ...googleapi.CallOption) (*SendWorkerMessagesResponse, error) {
10721	gensupport.SetOptions(c.urlParams_, opts...)
10722	res, err := c.doRequest("json")
10723	if res != nil && res.StatusCode == http.StatusNotModified {
10724		if res.Body != nil {
10725			res.Body.Close()
10726		}
10727		return nil, &googleapi.Error{
10728			Code:   res.StatusCode,
10729			Header: res.Header,
10730		}
10731	}
10732	if err != nil {
10733		return nil, err
10734	}
10735	defer googleapi.CloseBody(res)
10736	if err := googleapi.CheckResponse(res); err != nil {
10737		return nil, err
10738	}
10739	ret := &SendWorkerMessagesResponse{
10740		ServerResponse: googleapi.ServerResponse{
10741			Header:         res.Header,
10742			HTTPStatusCode: res.StatusCode,
10743		},
10744	}
10745	target := &ret
10746	if err := gensupport.DecodeResponse(target, res); err != nil {
10747		return nil, err
10748	}
10749	return ret, nil
10750	// {
10751	//   "description": "Send a worker_message to the service.",
10752	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/WorkerMessages",
10753	//   "httpMethod": "POST",
10754	//   "id": "dataflow.projects.locations.workerMessages",
10755	//   "parameterOrder": [
10756	//     "projectId",
10757	//     "location"
10758	//   ],
10759	//   "parameters": {
10760	//     "location": {
10761	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job.",
10762	//       "location": "path",
10763	//       "required": true,
10764	//       "type": "string"
10765	//     },
10766	//     "projectId": {
10767	//       "description": "The project to send the WorkerMessages to.",
10768	//       "location": "path",
10769	//       "required": true,
10770	//       "type": "string"
10771	//     }
10772	//   },
10773	//   "path": "v1b3/projects/{projectId}/locations/{location}/WorkerMessages",
10774	//   "request": {
10775	//     "$ref": "SendWorkerMessagesRequest"
10776	//   },
10777	//   "response": {
10778	//     "$ref": "SendWorkerMessagesResponse"
10779	//   },
10780	//   "scopes": [
10781	//     "https://www.googleapis.com/auth/cloud-platform",
10782	//     "https://www.googleapis.com/auth/compute",
10783	//     "https://www.googleapis.com/auth/compute.readonly",
10784	//     "https://www.googleapis.com/auth/userinfo.email"
10785	//   ]
10786	// }
10787
10788}
10789
10790// method id "dataflow.projects.locations.flexTemplates.launch":
10791
10792type ProjectsLocationsFlexTemplatesLaunchCall struct {
10793	s                         *Service
10794	projectId                 string
10795	location                  string
10796	launchflextemplaterequest *LaunchFlexTemplateRequest
10797	urlParams_                gensupport.URLParams
10798	ctx_                      context.Context
10799	header_                   http.Header
10800}
10801
10802// Launch: Launch a job with a FlexTemplate.
10803func (r *ProjectsLocationsFlexTemplatesService) Launch(projectId string, location string, launchflextemplaterequest *LaunchFlexTemplateRequest) *ProjectsLocationsFlexTemplatesLaunchCall {
10804	c := &ProjectsLocationsFlexTemplatesLaunchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10805	c.projectId = projectId
10806	c.location = location
10807	c.launchflextemplaterequest = launchflextemplaterequest
10808	return c
10809}
10810
10811// Fields allows partial responses to be retrieved. See
10812// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10813// for more information.
10814func (c *ProjectsLocationsFlexTemplatesLaunchCall) Fields(s ...googleapi.Field) *ProjectsLocationsFlexTemplatesLaunchCall {
10815	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10816	return c
10817}
10818
10819// Context sets the context to be used in this call's Do method. Any
10820// pending HTTP request will be aborted if the provided context is
10821// canceled.
10822func (c *ProjectsLocationsFlexTemplatesLaunchCall) Context(ctx context.Context) *ProjectsLocationsFlexTemplatesLaunchCall {
10823	c.ctx_ = ctx
10824	return c
10825}
10826
10827// Header returns an http.Header that can be modified by the caller to
10828// add HTTP headers to the request.
10829func (c *ProjectsLocationsFlexTemplatesLaunchCall) Header() http.Header {
10830	if c.header_ == nil {
10831		c.header_ = make(http.Header)
10832	}
10833	return c.header_
10834}
10835
10836func (c *ProjectsLocationsFlexTemplatesLaunchCall) doRequest(alt string) (*http.Response, error) {
10837	reqHeaders := make(http.Header)
10838	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
10839	for k, v := range c.header_ {
10840		reqHeaders[k] = v
10841	}
10842	reqHeaders.Set("User-Agent", c.s.userAgent())
10843	var body io.Reader = nil
10844	body, err := googleapi.WithoutDataWrapper.JSONReader(c.launchflextemplaterequest)
10845	if err != nil {
10846		return nil, err
10847	}
10848	reqHeaders.Set("Content-Type", "application/json")
10849	c.urlParams_.Set("alt", alt)
10850	c.urlParams_.Set("prettyPrint", "false")
10851	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/flexTemplates:launch")
10852	urls += "?" + c.urlParams_.Encode()
10853	req, err := http.NewRequest("POST", urls, body)
10854	if err != nil {
10855		return nil, err
10856	}
10857	req.Header = reqHeaders
10858	googleapi.Expand(req.URL, map[string]string{
10859		"projectId": c.projectId,
10860		"location":  c.location,
10861	})
10862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10863}
10864
10865// Do executes the "dataflow.projects.locations.flexTemplates.launch" call.
10866// Exactly one of *LaunchFlexTemplateResponse or error will be non-nil.
10867// Any non-2xx status code is an error. Response headers are in either
10868// *LaunchFlexTemplateResponse.ServerResponse.Header or (if a response
10869// was returned at all) in error.(*googleapi.Error).Header. Use
10870// googleapi.IsNotModified to check whether the returned error was
10871// because http.StatusNotModified was returned.
10872func (c *ProjectsLocationsFlexTemplatesLaunchCall) Do(opts ...googleapi.CallOption) (*LaunchFlexTemplateResponse, error) {
10873	gensupport.SetOptions(c.urlParams_, opts...)
10874	res, err := c.doRequest("json")
10875	if res != nil && res.StatusCode == http.StatusNotModified {
10876		if res.Body != nil {
10877			res.Body.Close()
10878		}
10879		return nil, &googleapi.Error{
10880			Code:   res.StatusCode,
10881			Header: res.Header,
10882		}
10883	}
10884	if err != nil {
10885		return nil, err
10886	}
10887	defer googleapi.CloseBody(res)
10888	if err := googleapi.CheckResponse(res); err != nil {
10889		return nil, err
10890	}
10891	ret := &LaunchFlexTemplateResponse{
10892		ServerResponse: googleapi.ServerResponse{
10893			Header:         res.Header,
10894			HTTPStatusCode: res.StatusCode,
10895		},
10896	}
10897	target := &ret
10898	if err := gensupport.DecodeResponse(target, res); err != nil {
10899		return nil, err
10900	}
10901	return ret, nil
10902	// {
10903	//   "description": "Launch a job with a FlexTemplate.",
10904	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/flexTemplates:launch",
10905	//   "httpMethod": "POST",
10906	//   "id": "dataflow.projects.locations.flexTemplates.launch",
10907	//   "parameterOrder": [
10908	//     "projectId",
10909	//     "location"
10910	//   ],
10911	//   "parameters": {
10912	//     "location": {
10913	//       "description": "Required. The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request. E.g., us-central1, us-west1.",
10914	//       "location": "path",
10915	//       "required": true,
10916	//       "type": "string"
10917	//     },
10918	//     "projectId": {
10919	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
10920	//       "location": "path",
10921	//       "required": true,
10922	//       "type": "string"
10923	//     }
10924	//   },
10925	//   "path": "v1b3/projects/{projectId}/locations/{location}/flexTemplates:launch",
10926	//   "request": {
10927	//     "$ref": "LaunchFlexTemplateRequest"
10928	//   },
10929	//   "response": {
10930	//     "$ref": "LaunchFlexTemplateResponse"
10931	//   },
10932	//   "scopes": [
10933	//     "https://www.googleapis.com/auth/cloud-platform",
10934	//     "https://www.googleapis.com/auth/compute",
10935	//     "https://www.googleapis.com/auth/compute.readonly",
10936	//     "https://www.googleapis.com/auth/userinfo.email"
10937	//   ]
10938	// }
10939
10940}
10941
10942// method id "dataflow.projects.locations.jobs.create":
10943
10944type ProjectsLocationsJobsCreateCall struct {
10945	s          *Service
10946	projectId  string
10947	location   string
10948	job        *Job
10949	urlParams_ gensupport.URLParams
10950	ctx_       context.Context
10951	header_    http.Header
10952}
10953
10954// Create: Creates a Cloud Dataflow job. To create a job, we recommend
10955// using `projects.locations.jobs.create` with a [regional endpoint]
10956// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
10957// Using `projects.jobs.create` is not recommended, as your job will
10958// always start in `us-central1`.
10959func (r *ProjectsLocationsJobsService) Create(projectId string, location string, job *Job) *ProjectsLocationsJobsCreateCall {
10960	c := &ProjectsLocationsJobsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10961	c.projectId = projectId
10962	c.location = location
10963	c.job = job
10964	return c
10965}
10966
10967// ReplaceJobId sets the optional parameter "replaceJobId": Deprecated.
10968// This field is now in the Job message.
10969func (c *ProjectsLocationsJobsCreateCall) ReplaceJobId(replaceJobId string) *ProjectsLocationsJobsCreateCall {
10970	c.urlParams_.Set("replaceJobId", replaceJobId)
10971	return c
10972}
10973
10974// View sets the optional parameter "view": The level of information
10975// requested in response.
10976//
10977// Possible values:
10978//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
10979// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
10980// information, and may contain additional information.
10981//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
10982// Job ID, job name, job type, job status, start/end time, and Cloud SDK
10983// version details.
10984//   "JOB_VIEW_ALL" - Request all information available for this job.
10985//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
10986// description data for steps, labels and environment.
10987func (c *ProjectsLocationsJobsCreateCall) View(view string) *ProjectsLocationsJobsCreateCall {
10988	c.urlParams_.Set("view", view)
10989	return c
10990}
10991
10992// Fields allows partial responses to be retrieved. See
10993// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10994// for more information.
10995func (c *ProjectsLocationsJobsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsCreateCall {
10996	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10997	return c
10998}
10999
11000// Context sets the context to be used in this call's Do method. Any
11001// pending HTTP request will be aborted if the provided context is
11002// canceled.
11003func (c *ProjectsLocationsJobsCreateCall) Context(ctx context.Context) *ProjectsLocationsJobsCreateCall {
11004	c.ctx_ = ctx
11005	return c
11006}
11007
11008// Header returns an http.Header that can be modified by the caller to
11009// add HTTP headers to the request.
11010func (c *ProjectsLocationsJobsCreateCall) Header() http.Header {
11011	if c.header_ == nil {
11012		c.header_ = make(http.Header)
11013	}
11014	return c.header_
11015}
11016
11017func (c *ProjectsLocationsJobsCreateCall) doRequest(alt string) (*http.Response, error) {
11018	reqHeaders := make(http.Header)
11019	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
11020	for k, v := range c.header_ {
11021		reqHeaders[k] = v
11022	}
11023	reqHeaders.Set("User-Agent", c.s.userAgent())
11024	var body io.Reader = nil
11025	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
11026	if err != nil {
11027		return nil, err
11028	}
11029	reqHeaders.Set("Content-Type", "application/json")
11030	c.urlParams_.Set("alt", alt)
11031	c.urlParams_.Set("prettyPrint", "false")
11032	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs")
11033	urls += "?" + c.urlParams_.Encode()
11034	req, err := http.NewRequest("POST", urls, body)
11035	if err != nil {
11036		return nil, err
11037	}
11038	req.Header = reqHeaders
11039	googleapi.Expand(req.URL, map[string]string{
11040		"projectId": c.projectId,
11041		"location":  c.location,
11042	})
11043	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11044}
11045
11046// Do executes the "dataflow.projects.locations.jobs.create" call.
11047// Exactly one of *Job or error will be non-nil. Any non-2xx status code
11048// is an error. Response headers are in either
11049// *Job.ServerResponse.Header or (if a response was returned at all) in
11050// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
11051// whether the returned error was because http.StatusNotModified was
11052// returned.
11053func (c *ProjectsLocationsJobsCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
11054	gensupport.SetOptions(c.urlParams_, opts...)
11055	res, err := c.doRequest("json")
11056	if res != nil && res.StatusCode == http.StatusNotModified {
11057		if res.Body != nil {
11058			res.Body.Close()
11059		}
11060		return nil, &googleapi.Error{
11061			Code:   res.StatusCode,
11062			Header: res.Header,
11063		}
11064	}
11065	if err != nil {
11066		return nil, err
11067	}
11068	defer googleapi.CloseBody(res)
11069	if err := googleapi.CheckResponse(res); err != nil {
11070		return nil, err
11071	}
11072	ret := &Job{
11073		ServerResponse: googleapi.ServerResponse{
11074			Header:         res.Header,
11075			HTTPStatusCode: res.StatusCode,
11076		},
11077	}
11078	target := &ret
11079	if err := gensupport.DecodeResponse(target, res); err != nil {
11080		return nil, err
11081	}
11082	return ret, nil
11083	// {
11084	//   "description": "Creates a Cloud Dataflow job. To create a job, we recommend using `projects.locations.jobs.create` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.create` is not recommended, as your job will always start in `us-central1`.",
11085	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs",
11086	//   "httpMethod": "POST",
11087	//   "id": "dataflow.projects.locations.jobs.create",
11088	//   "parameterOrder": [
11089	//     "projectId",
11090	//     "location"
11091	//   ],
11092	//   "parameters": {
11093	//     "location": {
11094	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
11095	//       "location": "path",
11096	//       "required": true,
11097	//       "type": "string"
11098	//     },
11099	//     "projectId": {
11100	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
11101	//       "location": "path",
11102	//       "required": true,
11103	//       "type": "string"
11104	//     },
11105	//     "replaceJobId": {
11106	//       "description": "Deprecated. This field is now in the Job message.",
11107	//       "location": "query",
11108	//       "type": "string"
11109	//     },
11110	//     "view": {
11111	//       "description": "The level of information requested in response.",
11112	//       "enum": [
11113	//         "JOB_VIEW_UNKNOWN",
11114	//         "JOB_VIEW_SUMMARY",
11115	//         "JOB_VIEW_ALL",
11116	//         "JOB_VIEW_DESCRIPTION"
11117	//       ],
11118	//       "enumDescriptions": [
11119	//         "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.",
11120	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
11121	//         "Request all information available for this job.",
11122	//         "Request summary info and limited job description data for steps, labels and environment."
11123	//       ],
11124	//       "location": "query",
11125	//       "type": "string"
11126	//     }
11127	//   },
11128	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs",
11129	//   "request": {
11130	//     "$ref": "Job"
11131	//   },
11132	//   "response": {
11133	//     "$ref": "Job"
11134	//   },
11135	//   "scopes": [
11136	//     "https://www.googleapis.com/auth/cloud-platform",
11137	//     "https://www.googleapis.com/auth/compute",
11138	//     "https://www.googleapis.com/auth/compute.readonly",
11139	//     "https://www.googleapis.com/auth/userinfo.email"
11140	//   ]
11141	// }
11142
11143}
11144
11145// method id "dataflow.projects.locations.jobs.get":
11146
11147type ProjectsLocationsJobsGetCall struct {
11148	s            *Service
11149	projectId    string
11150	location     string
11151	jobId        string
11152	urlParams_   gensupport.URLParams
11153	ifNoneMatch_ string
11154	ctx_         context.Context
11155	header_      http.Header
11156}
11157
11158// Get: Gets the state of the specified Cloud Dataflow job. To get the
11159// state of a job, we recommend using `projects.locations.jobs.get` with
11160// a [regional endpoint]
11161// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
11162// Using `projects.jobs.get` is not recommended, as you can only get the
11163// state of jobs that are running in `us-central1`.
11164func (r *ProjectsLocationsJobsService) Get(projectId string, location string, jobId string) *ProjectsLocationsJobsGetCall {
11165	c := &ProjectsLocationsJobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11166	c.projectId = projectId
11167	c.location = location
11168	c.jobId = jobId
11169	return c
11170}
11171
11172// View sets the optional parameter "view": The level of information
11173// requested in response.
11174//
11175// Possible values:
11176//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
11177// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
11178// information, and may contain additional information.
11179//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
11180// Job ID, job name, job type, job status, start/end time, and Cloud SDK
11181// version details.
11182//   "JOB_VIEW_ALL" - Request all information available for this job.
11183//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
11184// description data for steps, labels and environment.
11185func (c *ProjectsLocationsJobsGetCall) View(view string) *ProjectsLocationsJobsGetCall {
11186	c.urlParams_.Set("view", view)
11187	return c
11188}
11189
11190// Fields allows partial responses to be retrieved. See
11191// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11192// for more information.
11193func (c *ProjectsLocationsJobsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsGetCall {
11194	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11195	return c
11196}
11197
11198// IfNoneMatch sets the optional parameter which makes the operation
11199// fail if the object's ETag matches the given value. This is useful for
11200// getting updates only after the object has changed since the last
11201// request. Use googleapi.IsNotModified to check whether the response
11202// error from Do is the result of In-None-Match.
11203func (c *ProjectsLocationsJobsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsGetCall {
11204	c.ifNoneMatch_ = entityTag
11205	return c
11206}
11207
11208// Context sets the context to be used in this call's Do method. Any
11209// pending HTTP request will be aborted if the provided context is
11210// canceled.
11211func (c *ProjectsLocationsJobsGetCall) Context(ctx context.Context) *ProjectsLocationsJobsGetCall {
11212	c.ctx_ = ctx
11213	return c
11214}
11215
11216// Header returns an http.Header that can be modified by the caller to
11217// add HTTP headers to the request.
11218func (c *ProjectsLocationsJobsGetCall) Header() http.Header {
11219	if c.header_ == nil {
11220		c.header_ = make(http.Header)
11221	}
11222	return c.header_
11223}
11224
11225func (c *ProjectsLocationsJobsGetCall) doRequest(alt string) (*http.Response, error) {
11226	reqHeaders := make(http.Header)
11227	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
11228	for k, v := range c.header_ {
11229		reqHeaders[k] = v
11230	}
11231	reqHeaders.Set("User-Agent", c.s.userAgent())
11232	if c.ifNoneMatch_ != "" {
11233		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11234	}
11235	var body io.Reader = nil
11236	c.urlParams_.Set("alt", alt)
11237	c.urlParams_.Set("prettyPrint", "false")
11238	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}")
11239	urls += "?" + c.urlParams_.Encode()
11240	req, err := http.NewRequest("GET", urls, body)
11241	if err != nil {
11242		return nil, err
11243	}
11244	req.Header = reqHeaders
11245	googleapi.Expand(req.URL, map[string]string{
11246		"projectId": c.projectId,
11247		"location":  c.location,
11248		"jobId":     c.jobId,
11249	})
11250	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11251}
11252
11253// Do executes the "dataflow.projects.locations.jobs.get" call.
11254// Exactly one of *Job or error will be non-nil. Any non-2xx status code
11255// is an error. Response headers are in either
11256// *Job.ServerResponse.Header or (if a response was returned at all) in
11257// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
11258// whether the returned error was because http.StatusNotModified was
11259// returned.
11260func (c *ProjectsLocationsJobsGetCall) Do(opts ...googleapi.CallOption) (*Job, error) {
11261	gensupport.SetOptions(c.urlParams_, opts...)
11262	res, err := c.doRequest("json")
11263	if res != nil && res.StatusCode == http.StatusNotModified {
11264		if res.Body != nil {
11265			res.Body.Close()
11266		}
11267		return nil, &googleapi.Error{
11268			Code:   res.StatusCode,
11269			Header: res.Header,
11270		}
11271	}
11272	if err != nil {
11273		return nil, err
11274	}
11275	defer googleapi.CloseBody(res)
11276	if err := googleapi.CheckResponse(res); err != nil {
11277		return nil, err
11278	}
11279	ret := &Job{
11280		ServerResponse: googleapi.ServerResponse{
11281			Header:         res.Header,
11282			HTTPStatusCode: res.StatusCode,
11283		},
11284	}
11285	target := &ret
11286	if err := gensupport.DecodeResponse(target, res); err != nil {
11287		return nil, err
11288	}
11289	return ret, nil
11290	// {
11291	//   "description": "Gets the state of the specified Cloud Dataflow job. To get the state of a job, we recommend using `projects.locations.jobs.get` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.get` is not recommended, as you can only get the state of jobs that are running in `us-central1`.",
11292	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
11293	//   "httpMethod": "GET",
11294	//   "id": "dataflow.projects.locations.jobs.get",
11295	//   "parameterOrder": [
11296	//     "projectId",
11297	//     "location",
11298	//     "jobId"
11299	//   ],
11300	//   "parameters": {
11301	//     "jobId": {
11302	//       "description": "The job ID.",
11303	//       "location": "path",
11304	//       "required": true,
11305	//       "type": "string"
11306	//     },
11307	//     "location": {
11308	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
11309	//       "location": "path",
11310	//       "required": true,
11311	//       "type": "string"
11312	//     },
11313	//     "projectId": {
11314	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
11315	//       "location": "path",
11316	//       "required": true,
11317	//       "type": "string"
11318	//     },
11319	//     "view": {
11320	//       "description": "The level of information requested in response.",
11321	//       "enum": [
11322	//         "JOB_VIEW_UNKNOWN",
11323	//         "JOB_VIEW_SUMMARY",
11324	//         "JOB_VIEW_ALL",
11325	//         "JOB_VIEW_DESCRIPTION"
11326	//       ],
11327	//       "enumDescriptions": [
11328	//         "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.",
11329	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
11330	//         "Request all information available for this job.",
11331	//         "Request summary info and limited job description data for steps, labels and environment."
11332	//       ],
11333	//       "location": "query",
11334	//       "type": "string"
11335	//     }
11336	//   },
11337	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
11338	//   "response": {
11339	//     "$ref": "Job"
11340	//   },
11341	//   "scopes": [
11342	//     "https://www.googleapis.com/auth/cloud-platform",
11343	//     "https://www.googleapis.com/auth/compute",
11344	//     "https://www.googleapis.com/auth/compute.readonly",
11345	//     "https://www.googleapis.com/auth/userinfo.email"
11346	//   ]
11347	// }
11348
11349}
11350
11351// method id "dataflow.projects.locations.jobs.getExecutionDetails":
11352
11353type ProjectsLocationsJobsGetExecutionDetailsCall struct {
11354	s            *Service
11355	projectId    string
11356	location     string
11357	jobId        string
11358	urlParams_   gensupport.URLParams
11359	ifNoneMatch_ string
11360	ctx_         context.Context
11361	header_      http.Header
11362}
11363
11364// GetExecutionDetails: Request detailed information about the execution
11365// status of the job. EXPERIMENTAL. This API is subject to change or
11366// removal without notice.
11367func (r *ProjectsLocationsJobsService) GetExecutionDetails(projectId string, location string, jobId string) *ProjectsLocationsJobsGetExecutionDetailsCall {
11368	c := &ProjectsLocationsJobsGetExecutionDetailsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11369	c.projectId = projectId
11370	c.location = location
11371	c.jobId = jobId
11372	return c
11373}
11374
11375// PageSize sets the optional parameter "pageSize": If specified,
11376// determines the maximum number of stages to return. If unspecified,
11377// the service may choose an appropriate default, or may return an
11378// arbitrarily large number of results.
11379func (c *ProjectsLocationsJobsGetExecutionDetailsCall) PageSize(pageSize int64) *ProjectsLocationsJobsGetExecutionDetailsCall {
11380	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
11381	return c
11382}
11383
11384// PageToken sets the optional parameter "pageToken": If supplied, this
11385// should be the value of next_page_token returned by an earlier call.
11386// This will cause the next page of results to be returned.
11387func (c *ProjectsLocationsJobsGetExecutionDetailsCall) PageToken(pageToken string) *ProjectsLocationsJobsGetExecutionDetailsCall {
11388	c.urlParams_.Set("pageToken", pageToken)
11389	return c
11390}
11391
11392// Fields allows partial responses to be retrieved. See
11393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11394// for more information.
11395func (c *ProjectsLocationsJobsGetExecutionDetailsCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsGetExecutionDetailsCall {
11396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11397	return c
11398}
11399
11400// IfNoneMatch sets the optional parameter which makes the operation
11401// fail if the object's ETag matches the given value. This is useful for
11402// getting updates only after the object has changed since the last
11403// request. Use googleapi.IsNotModified to check whether the response
11404// error from Do is the result of In-None-Match.
11405func (c *ProjectsLocationsJobsGetExecutionDetailsCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsGetExecutionDetailsCall {
11406	c.ifNoneMatch_ = entityTag
11407	return c
11408}
11409
11410// Context sets the context to be used in this call's Do method. Any
11411// pending HTTP request will be aborted if the provided context is
11412// canceled.
11413func (c *ProjectsLocationsJobsGetExecutionDetailsCall) Context(ctx context.Context) *ProjectsLocationsJobsGetExecutionDetailsCall {
11414	c.ctx_ = ctx
11415	return c
11416}
11417
11418// Header returns an http.Header that can be modified by the caller to
11419// add HTTP headers to the request.
11420func (c *ProjectsLocationsJobsGetExecutionDetailsCall) Header() http.Header {
11421	if c.header_ == nil {
11422		c.header_ = make(http.Header)
11423	}
11424	return c.header_
11425}
11426
11427func (c *ProjectsLocationsJobsGetExecutionDetailsCall) doRequest(alt string) (*http.Response, error) {
11428	reqHeaders := make(http.Header)
11429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
11430	for k, v := range c.header_ {
11431		reqHeaders[k] = v
11432	}
11433	reqHeaders.Set("User-Agent", c.s.userAgent())
11434	if c.ifNoneMatch_ != "" {
11435		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11436	}
11437	var body io.Reader = nil
11438	c.urlParams_.Set("alt", alt)
11439	c.urlParams_.Set("prettyPrint", "false")
11440	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/executionDetails")
11441	urls += "?" + c.urlParams_.Encode()
11442	req, err := http.NewRequest("GET", urls, body)
11443	if err != nil {
11444		return nil, err
11445	}
11446	req.Header = reqHeaders
11447	googleapi.Expand(req.URL, map[string]string{
11448		"projectId": c.projectId,
11449		"location":  c.location,
11450		"jobId":     c.jobId,
11451	})
11452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11453}
11454
11455// Do executes the "dataflow.projects.locations.jobs.getExecutionDetails" call.
11456// Exactly one of *JobExecutionDetails or error will be non-nil. Any
11457// non-2xx status code is an error. Response headers are in either
11458// *JobExecutionDetails.ServerResponse.Header or (if a response was
11459// returned at all) in error.(*googleapi.Error).Header. Use
11460// googleapi.IsNotModified to check whether the returned error was
11461// because http.StatusNotModified was returned.
11462func (c *ProjectsLocationsJobsGetExecutionDetailsCall) Do(opts ...googleapi.CallOption) (*JobExecutionDetails, error) {
11463	gensupport.SetOptions(c.urlParams_, opts...)
11464	res, err := c.doRequest("json")
11465	if res != nil && res.StatusCode == http.StatusNotModified {
11466		if res.Body != nil {
11467			res.Body.Close()
11468		}
11469		return nil, &googleapi.Error{
11470			Code:   res.StatusCode,
11471			Header: res.Header,
11472		}
11473	}
11474	if err != nil {
11475		return nil, err
11476	}
11477	defer googleapi.CloseBody(res)
11478	if err := googleapi.CheckResponse(res); err != nil {
11479		return nil, err
11480	}
11481	ret := &JobExecutionDetails{
11482		ServerResponse: googleapi.ServerResponse{
11483			Header:         res.Header,
11484			HTTPStatusCode: res.StatusCode,
11485		},
11486	}
11487	target := &ret
11488	if err := gensupport.DecodeResponse(target, res); err != nil {
11489		return nil, err
11490	}
11491	return ret, nil
11492	// {
11493	//   "description": "Request detailed information about the execution status of the job. EXPERIMENTAL. This API is subject to change or removal without notice.",
11494	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/executionDetails",
11495	//   "httpMethod": "GET",
11496	//   "id": "dataflow.projects.locations.jobs.getExecutionDetails",
11497	//   "parameterOrder": [
11498	//     "projectId",
11499	//     "location",
11500	//     "jobId"
11501	//   ],
11502	//   "parameters": {
11503	//     "jobId": {
11504	//       "description": "The job to get execution details for.",
11505	//       "location": "path",
11506	//       "required": true,
11507	//       "type": "string"
11508	//     },
11509	//     "location": {
11510	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
11511	//       "location": "path",
11512	//       "required": true,
11513	//       "type": "string"
11514	//     },
11515	//     "pageSize": {
11516	//       "description": "If specified, determines the maximum number of stages to return. If unspecified, the service may choose an appropriate default, or may return an arbitrarily large number of results.",
11517	//       "format": "int32",
11518	//       "location": "query",
11519	//       "type": "integer"
11520	//     },
11521	//     "pageToken": {
11522	//       "description": "If supplied, this should be the value of next_page_token returned by an earlier call. This will cause the next page of results to be returned.",
11523	//       "location": "query",
11524	//       "type": "string"
11525	//     },
11526	//     "projectId": {
11527	//       "description": "A project id.",
11528	//       "location": "path",
11529	//       "required": true,
11530	//       "type": "string"
11531	//     }
11532	//   },
11533	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/executionDetails",
11534	//   "response": {
11535	//     "$ref": "JobExecutionDetails"
11536	//   },
11537	//   "scopes": [
11538	//     "https://www.googleapis.com/auth/cloud-platform",
11539	//     "https://www.googleapis.com/auth/compute",
11540	//     "https://www.googleapis.com/auth/compute.readonly",
11541	//     "https://www.googleapis.com/auth/userinfo.email"
11542	//   ]
11543	// }
11544
11545}
11546
11547// Pages invokes f for each page of results.
11548// A non-nil error returned from f will halt the iteration.
11549// The provided context supersedes any context provided to the Context method.
11550func (c *ProjectsLocationsJobsGetExecutionDetailsCall) Pages(ctx context.Context, f func(*JobExecutionDetails) error) error {
11551	c.ctx_ = ctx
11552	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
11553	for {
11554		x, err := c.Do()
11555		if err != nil {
11556			return err
11557		}
11558		if err := f(x); err != nil {
11559			return err
11560		}
11561		if x.NextPageToken == "" {
11562			return nil
11563		}
11564		c.PageToken(x.NextPageToken)
11565	}
11566}
11567
11568// method id "dataflow.projects.locations.jobs.getMetrics":
11569
11570type ProjectsLocationsJobsGetMetricsCall struct {
11571	s            *Service
11572	projectId    string
11573	location     string
11574	jobId        string
11575	urlParams_   gensupport.URLParams
11576	ifNoneMatch_ string
11577	ctx_         context.Context
11578	header_      http.Header
11579}
11580
11581// GetMetrics: Request the job status. To request the status of a job,
11582// we recommend using `projects.locations.jobs.getMetrics` with a
11583// [regional endpoint]
11584// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
11585// Using `projects.jobs.getMetrics` is not recommended, as you can only
11586// request the status of jobs that are running in `us-central1`.
11587func (r *ProjectsLocationsJobsService) GetMetrics(projectId string, location string, jobId string) *ProjectsLocationsJobsGetMetricsCall {
11588	c := &ProjectsLocationsJobsGetMetricsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11589	c.projectId = projectId
11590	c.location = location
11591	c.jobId = jobId
11592	return c
11593}
11594
11595// StartTime sets the optional parameter "startTime": Return only metric
11596// data that has changed since this time. Default is to return all
11597// information about all metrics for the job.
11598func (c *ProjectsLocationsJobsGetMetricsCall) StartTime(startTime string) *ProjectsLocationsJobsGetMetricsCall {
11599	c.urlParams_.Set("startTime", startTime)
11600	return c
11601}
11602
11603// Fields allows partial responses to be retrieved. See
11604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11605// for more information.
11606func (c *ProjectsLocationsJobsGetMetricsCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsGetMetricsCall {
11607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11608	return c
11609}
11610
11611// IfNoneMatch sets the optional parameter which makes the operation
11612// fail if the object's ETag matches the given value. This is useful for
11613// getting updates only after the object has changed since the last
11614// request. Use googleapi.IsNotModified to check whether the response
11615// error from Do is the result of In-None-Match.
11616func (c *ProjectsLocationsJobsGetMetricsCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsGetMetricsCall {
11617	c.ifNoneMatch_ = entityTag
11618	return c
11619}
11620
11621// Context sets the context to be used in this call's Do method. Any
11622// pending HTTP request will be aborted if the provided context is
11623// canceled.
11624func (c *ProjectsLocationsJobsGetMetricsCall) Context(ctx context.Context) *ProjectsLocationsJobsGetMetricsCall {
11625	c.ctx_ = ctx
11626	return c
11627}
11628
11629// Header returns an http.Header that can be modified by the caller to
11630// add HTTP headers to the request.
11631func (c *ProjectsLocationsJobsGetMetricsCall) Header() http.Header {
11632	if c.header_ == nil {
11633		c.header_ = make(http.Header)
11634	}
11635	return c.header_
11636}
11637
11638func (c *ProjectsLocationsJobsGetMetricsCall) doRequest(alt string) (*http.Response, error) {
11639	reqHeaders := make(http.Header)
11640	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
11641	for k, v := range c.header_ {
11642		reqHeaders[k] = v
11643	}
11644	reqHeaders.Set("User-Agent", c.s.userAgent())
11645	if c.ifNoneMatch_ != "" {
11646		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11647	}
11648	var body io.Reader = nil
11649	c.urlParams_.Set("alt", alt)
11650	c.urlParams_.Set("prettyPrint", "false")
11651	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/metrics")
11652	urls += "?" + c.urlParams_.Encode()
11653	req, err := http.NewRequest("GET", urls, body)
11654	if err != nil {
11655		return nil, err
11656	}
11657	req.Header = reqHeaders
11658	googleapi.Expand(req.URL, map[string]string{
11659		"projectId": c.projectId,
11660		"location":  c.location,
11661		"jobId":     c.jobId,
11662	})
11663	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11664}
11665
11666// Do executes the "dataflow.projects.locations.jobs.getMetrics" call.
11667// Exactly one of *JobMetrics or error will be non-nil. Any non-2xx
11668// status code is an error. Response headers are in either
11669// *JobMetrics.ServerResponse.Header or (if a response was returned at
11670// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11671// to check whether the returned error was because
11672// http.StatusNotModified was returned.
11673func (c *ProjectsLocationsJobsGetMetricsCall) Do(opts ...googleapi.CallOption) (*JobMetrics, error) {
11674	gensupport.SetOptions(c.urlParams_, opts...)
11675	res, err := c.doRequest("json")
11676	if res != nil && res.StatusCode == http.StatusNotModified {
11677		if res.Body != nil {
11678			res.Body.Close()
11679		}
11680		return nil, &googleapi.Error{
11681			Code:   res.StatusCode,
11682			Header: res.Header,
11683		}
11684	}
11685	if err != nil {
11686		return nil, err
11687	}
11688	defer googleapi.CloseBody(res)
11689	if err := googleapi.CheckResponse(res); err != nil {
11690		return nil, err
11691	}
11692	ret := &JobMetrics{
11693		ServerResponse: googleapi.ServerResponse{
11694			Header:         res.Header,
11695			HTTPStatusCode: res.StatusCode,
11696		},
11697	}
11698	target := &ret
11699	if err := gensupport.DecodeResponse(target, res); err != nil {
11700		return nil, err
11701	}
11702	return ret, nil
11703	// {
11704	//   "description": "Request the job status. To request the status of a job, we recommend using `projects.locations.jobs.getMetrics` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.getMetrics` is not recommended, as you can only request the status of jobs that are running in `us-central1`.",
11705	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/metrics",
11706	//   "httpMethod": "GET",
11707	//   "id": "dataflow.projects.locations.jobs.getMetrics",
11708	//   "parameterOrder": [
11709	//     "projectId",
11710	//     "location",
11711	//     "jobId"
11712	//   ],
11713	//   "parameters": {
11714	//     "jobId": {
11715	//       "description": "The job to get metrics for.",
11716	//       "location": "path",
11717	//       "required": true,
11718	//       "type": "string"
11719	//     },
11720	//     "location": {
11721	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
11722	//       "location": "path",
11723	//       "required": true,
11724	//       "type": "string"
11725	//     },
11726	//     "projectId": {
11727	//       "description": "A project id.",
11728	//       "location": "path",
11729	//       "required": true,
11730	//       "type": "string"
11731	//     },
11732	//     "startTime": {
11733	//       "description": "Return only metric data that has changed since this time. Default is to return all information about all metrics for the job.",
11734	//       "format": "google-datetime",
11735	//       "location": "query",
11736	//       "type": "string"
11737	//     }
11738	//   },
11739	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/metrics",
11740	//   "response": {
11741	//     "$ref": "JobMetrics"
11742	//   },
11743	//   "scopes": [
11744	//     "https://www.googleapis.com/auth/cloud-platform",
11745	//     "https://www.googleapis.com/auth/compute",
11746	//     "https://www.googleapis.com/auth/compute.readonly",
11747	//     "https://www.googleapis.com/auth/userinfo.email"
11748	//   ]
11749	// }
11750
11751}
11752
11753// method id "dataflow.projects.locations.jobs.list":
11754
11755type ProjectsLocationsJobsListCall struct {
11756	s            *Service
11757	projectId    string
11758	location     string
11759	urlParams_   gensupport.URLParams
11760	ifNoneMatch_ string
11761	ctx_         context.Context
11762	header_      http.Header
11763}
11764
11765// List: List the jobs of a project. To list the jobs of a project in a
11766// region, we recommend using `projects.locations.jobs.list` with a
11767// [regional endpoint]
11768// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
11769// To list the all jobs across all regions, use
11770// `projects.jobs.aggregated`. Using `projects.jobs.list` is not
11771// recommended, as you can only get the list of jobs that are running in
11772// `us-central1`.
11773func (r *ProjectsLocationsJobsService) List(projectId string, location string) *ProjectsLocationsJobsListCall {
11774	c := &ProjectsLocationsJobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11775	c.projectId = projectId
11776	c.location = location
11777	return c
11778}
11779
11780// Filter sets the optional parameter "filter": The kind of filter to
11781// use.
11782//
11783// Possible values:
11784//   "UNKNOWN" - The filter isn't specified, or is unknown. This returns
11785// all jobs ordered on descending `JobUuid`.
11786//   "ALL" - Returns all running jobs first ordered on creation
11787// timestamp, then returns all terminated jobs ordered on the
11788// termination timestamp.
11789//   "TERMINATED" - Filters the jobs that have a terminated state,
11790// ordered on the termination timestamp. Example terminated states:
11791// `JOB_STATE_STOPPED`, `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.
11792//   "ACTIVE" - Filters the jobs that are running ordered on the
11793// creation timestamp.
11794func (c *ProjectsLocationsJobsListCall) Filter(filter string) *ProjectsLocationsJobsListCall {
11795	c.urlParams_.Set("filter", filter)
11796	return c
11797}
11798
11799// PageSize sets the optional parameter "pageSize": If there are many
11800// jobs, limit response to at most this many. The actual number of jobs
11801// returned will be the lesser of max_responses and an unspecified
11802// server-defined limit.
11803func (c *ProjectsLocationsJobsListCall) PageSize(pageSize int64) *ProjectsLocationsJobsListCall {
11804	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
11805	return c
11806}
11807
11808// PageToken sets the optional parameter "pageToken": Set this to the
11809// 'next_page_token' field of a previous response to request additional
11810// results in a long list.
11811func (c *ProjectsLocationsJobsListCall) PageToken(pageToken string) *ProjectsLocationsJobsListCall {
11812	c.urlParams_.Set("pageToken", pageToken)
11813	return c
11814}
11815
11816// View sets the optional parameter "view": Deprecated. ListJobs always
11817// returns summaries now. Use GetJob for other JobViews.
11818//
11819// Possible values:
11820//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
11821// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
11822// information, and may contain additional information.
11823//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
11824// Job ID, job name, job type, job status, start/end time, and Cloud SDK
11825// version details.
11826//   "JOB_VIEW_ALL" - Request all information available for this job.
11827//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
11828// description data for steps, labels and environment.
11829func (c *ProjectsLocationsJobsListCall) View(view string) *ProjectsLocationsJobsListCall {
11830	c.urlParams_.Set("view", view)
11831	return c
11832}
11833
11834// Fields allows partial responses to be retrieved. See
11835// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11836// for more information.
11837func (c *ProjectsLocationsJobsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsListCall {
11838	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11839	return c
11840}
11841
11842// IfNoneMatch sets the optional parameter which makes the operation
11843// fail if the object's ETag matches the given value. This is useful for
11844// getting updates only after the object has changed since the last
11845// request. Use googleapi.IsNotModified to check whether the response
11846// error from Do is the result of In-None-Match.
11847func (c *ProjectsLocationsJobsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsListCall {
11848	c.ifNoneMatch_ = entityTag
11849	return c
11850}
11851
11852// Context sets the context to be used in this call's Do method. Any
11853// pending HTTP request will be aborted if the provided context is
11854// canceled.
11855func (c *ProjectsLocationsJobsListCall) Context(ctx context.Context) *ProjectsLocationsJobsListCall {
11856	c.ctx_ = ctx
11857	return c
11858}
11859
11860// Header returns an http.Header that can be modified by the caller to
11861// add HTTP headers to the request.
11862func (c *ProjectsLocationsJobsListCall) Header() http.Header {
11863	if c.header_ == nil {
11864		c.header_ = make(http.Header)
11865	}
11866	return c.header_
11867}
11868
11869func (c *ProjectsLocationsJobsListCall) doRequest(alt string) (*http.Response, error) {
11870	reqHeaders := make(http.Header)
11871	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
11872	for k, v := range c.header_ {
11873		reqHeaders[k] = v
11874	}
11875	reqHeaders.Set("User-Agent", c.s.userAgent())
11876	if c.ifNoneMatch_ != "" {
11877		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11878	}
11879	var body io.Reader = nil
11880	c.urlParams_.Set("alt", alt)
11881	c.urlParams_.Set("prettyPrint", "false")
11882	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs")
11883	urls += "?" + c.urlParams_.Encode()
11884	req, err := http.NewRequest("GET", urls, body)
11885	if err != nil {
11886		return nil, err
11887	}
11888	req.Header = reqHeaders
11889	googleapi.Expand(req.URL, map[string]string{
11890		"projectId": c.projectId,
11891		"location":  c.location,
11892	})
11893	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11894}
11895
11896// Do executes the "dataflow.projects.locations.jobs.list" call.
11897// Exactly one of *ListJobsResponse or error will be non-nil. Any
11898// non-2xx status code is an error. Response headers are in either
11899// *ListJobsResponse.ServerResponse.Header or (if a response was
11900// returned at all) in error.(*googleapi.Error).Header. Use
11901// googleapi.IsNotModified to check whether the returned error was
11902// because http.StatusNotModified was returned.
11903func (c *ProjectsLocationsJobsListCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
11904	gensupport.SetOptions(c.urlParams_, opts...)
11905	res, err := c.doRequest("json")
11906	if res != nil && res.StatusCode == http.StatusNotModified {
11907		if res.Body != nil {
11908			res.Body.Close()
11909		}
11910		return nil, &googleapi.Error{
11911			Code:   res.StatusCode,
11912			Header: res.Header,
11913		}
11914	}
11915	if err != nil {
11916		return nil, err
11917	}
11918	defer googleapi.CloseBody(res)
11919	if err := googleapi.CheckResponse(res); err != nil {
11920		return nil, err
11921	}
11922	ret := &ListJobsResponse{
11923		ServerResponse: googleapi.ServerResponse{
11924			Header:         res.Header,
11925			HTTPStatusCode: res.StatusCode,
11926		},
11927	}
11928	target := &ret
11929	if err := gensupport.DecodeResponse(target, res); err != nil {
11930		return nil, err
11931	}
11932	return ret, nil
11933	// {
11934	//   "description": "List the jobs of a project. To list the jobs of a project in a region, we recommend using `projects.locations.jobs.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To list the all jobs across all regions, use `projects.jobs.aggregated`. Using `projects.jobs.list` is not recommended, as you can only get the list of jobs that are running in `us-central1`.",
11935	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs",
11936	//   "httpMethod": "GET",
11937	//   "id": "dataflow.projects.locations.jobs.list",
11938	//   "parameterOrder": [
11939	//     "projectId",
11940	//     "location"
11941	//   ],
11942	//   "parameters": {
11943	//     "filter": {
11944	//       "description": "The kind of filter to use.",
11945	//       "enum": [
11946	//         "UNKNOWN",
11947	//         "ALL",
11948	//         "TERMINATED",
11949	//         "ACTIVE"
11950	//       ],
11951	//       "enumDescriptions": [
11952	//         "The filter isn't specified, or is unknown. This returns all jobs ordered on descending `JobUuid`.",
11953	//         "Returns all running jobs first ordered on creation timestamp, then returns all terminated jobs ordered on the termination timestamp.",
11954	//         "Filters the jobs that have a terminated state, ordered on the termination timestamp. Example terminated states: `JOB_STATE_STOPPED`, `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.",
11955	//         "Filters the jobs that are running ordered on the creation timestamp."
11956	//       ],
11957	//       "location": "query",
11958	//       "type": "string"
11959	//     },
11960	//     "location": {
11961	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
11962	//       "location": "path",
11963	//       "required": true,
11964	//       "type": "string"
11965	//     },
11966	//     "pageSize": {
11967	//       "description": "If there are many jobs, limit response to at most this many. The actual number of jobs returned will be the lesser of max_responses and an unspecified server-defined limit.",
11968	//       "format": "int32",
11969	//       "location": "query",
11970	//       "type": "integer"
11971	//     },
11972	//     "pageToken": {
11973	//       "description": "Set this to the 'next_page_token' field of a previous response to request additional results in a long list.",
11974	//       "location": "query",
11975	//       "type": "string"
11976	//     },
11977	//     "projectId": {
11978	//       "description": "The project which owns the jobs.",
11979	//       "location": "path",
11980	//       "required": true,
11981	//       "type": "string"
11982	//     },
11983	//     "view": {
11984	//       "description": "Deprecated. ListJobs always returns summaries now. Use GetJob for other JobViews.",
11985	//       "enum": [
11986	//         "JOB_VIEW_UNKNOWN",
11987	//         "JOB_VIEW_SUMMARY",
11988	//         "JOB_VIEW_ALL",
11989	//         "JOB_VIEW_DESCRIPTION"
11990	//       ],
11991	//       "enumDescriptions": [
11992	//         "The job view to return isn't specified, or is unknown. Responses will contain at least the `JOB_VIEW_SUMMARY` information, and may contain additional information.",
11993	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
11994	//         "Request all information available for this job.",
11995	//         "Request summary info and limited job description data for steps, labels and environment."
11996	//       ],
11997	//       "location": "query",
11998	//       "type": "string"
11999	//     }
12000	//   },
12001	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs",
12002	//   "response": {
12003	//     "$ref": "ListJobsResponse"
12004	//   },
12005	//   "scopes": [
12006	//     "https://www.googleapis.com/auth/cloud-platform",
12007	//     "https://www.googleapis.com/auth/compute",
12008	//     "https://www.googleapis.com/auth/compute.readonly",
12009	//     "https://www.googleapis.com/auth/userinfo.email"
12010	//   ]
12011	// }
12012
12013}
12014
12015// Pages invokes f for each page of results.
12016// A non-nil error returned from f will halt the iteration.
12017// The provided context supersedes any context provided to the Context method.
12018func (c *ProjectsLocationsJobsListCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
12019	c.ctx_ = ctx
12020	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
12021	for {
12022		x, err := c.Do()
12023		if err != nil {
12024			return err
12025		}
12026		if err := f(x); err != nil {
12027			return err
12028		}
12029		if x.NextPageToken == "" {
12030			return nil
12031		}
12032		c.PageToken(x.NextPageToken)
12033	}
12034}
12035
12036// method id "dataflow.projects.locations.jobs.snapshot":
12037
12038type ProjectsLocationsJobsSnapshotCall struct {
12039	s                  *Service
12040	projectId          string
12041	location           string
12042	jobId              string
12043	snapshotjobrequest *SnapshotJobRequest
12044	urlParams_         gensupport.URLParams
12045	ctx_               context.Context
12046	header_            http.Header
12047}
12048
12049// Snapshot: Snapshot the state of a streaming job.
12050func (r *ProjectsLocationsJobsService) Snapshot(projectId string, location string, jobId string, snapshotjobrequest *SnapshotJobRequest) *ProjectsLocationsJobsSnapshotCall {
12051	c := &ProjectsLocationsJobsSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12052	c.projectId = projectId
12053	c.location = location
12054	c.jobId = jobId
12055	c.snapshotjobrequest = snapshotjobrequest
12056	return c
12057}
12058
12059// Fields allows partial responses to be retrieved. See
12060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12061// for more information.
12062func (c *ProjectsLocationsJobsSnapshotCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsSnapshotCall {
12063	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12064	return c
12065}
12066
12067// Context sets the context to be used in this call's Do method. Any
12068// pending HTTP request will be aborted if the provided context is
12069// canceled.
12070func (c *ProjectsLocationsJobsSnapshotCall) Context(ctx context.Context) *ProjectsLocationsJobsSnapshotCall {
12071	c.ctx_ = ctx
12072	return c
12073}
12074
12075// Header returns an http.Header that can be modified by the caller to
12076// add HTTP headers to the request.
12077func (c *ProjectsLocationsJobsSnapshotCall) Header() http.Header {
12078	if c.header_ == nil {
12079		c.header_ = make(http.Header)
12080	}
12081	return c.header_
12082}
12083
12084func (c *ProjectsLocationsJobsSnapshotCall) doRequest(alt string) (*http.Response, error) {
12085	reqHeaders := make(http.Header)
12086	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
12087	for k, v := range c.header_ {
12088		reqHeaders[k] = v
12089	}
12090	reqHeaders.Set("User-Agent", c.s.userAgent())
12091	var body io.Reader = nil
12092	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshotjobrequest)
12093	if err != nil {
12094		return nil, err
12095	}
12096	reqHeaders.Set("Content-Type", "application/json")
12097	c.urlParams_.Set("alt", alt)
12098	c.urlParams_.Set("prettyPrint", "false")
12099	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}:snapshot")
12100	urls += "?" + c.urlParams_.Encode()
12101	req, err := http.NewRequest("POST", urls, body)
12102	if err != nil {
12103		return nil, err
12104	}
12105	req.Header = reqHeaders
12106	googleapi.Expand(req.URL, map[string]string{
12107		"projectId": c.projectId,
12108		"location":  c.location,
12109		"jobId":     c.jobId,
12110	})
12111	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12112}
12113
12114// Do executes the "dataflow.projects.locations.jobs.snapshot" call.
12115// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
12116// code is an error. Response headers are in either
12117// *Snapshot.ServerResponse.Header or (if a response was returned at
12118// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
12119// to check whether the returned error was because
12120// http.StatusNotModified was returned.
12121func (c *ProjectsLocationsJobsSnapshotCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
12122	gensupport.SetOptions(c.urlParams_, opts...)
12123	res, err := c.doRequest("json")
12124	if res != nil && res.StatusCode == http.StatusNotModified {
12125		if res.Body != nil {
12126			res.Body.Close()
12127		}
12128		return nil, &googleapi.Error{
12129			Code:   res.StatusCode,
12130			Header: res.Header,
12131		}
12132	}
12133	if err != nil {
12134		return nil, err
12135	}
12136	defer googleapi.CloseBody(res)
12137	if err := googleapi.CheckResponse(res); err != nil {
12138		return nil, err
12139	}
12140	ret := &Snapshot{
12141		ServerResponse: googleapi.ServerResponse{
12142			Header:         res.Header,
12143			HTTPStatusCode: res.StatusCode,
12144		},
12145	}
12146	target := &ret
12147	if err := gensupport.DecodeResponse(target, res); err != nil {
12148		return nil, err
12149	}
12150	return ret, nil
12151	// {
12152	//   "description": "Snapshot the state of a streaming job.",
12153	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}:snapshot",
12154	//   "httpMethod": "POST",
12155	//   "id": "dataflow.projects.locations.jobs.snapshot",
12156	//   "parameterOrder": [
12157	//     "projectId",
12158	//     "location",
12159	//     "jobId"
12160	//   ],
12161	//   "parameters": {
12162	//     "jobId": {
12163	//       "description": "The job to be snapshotted.",
12164	//       "location": "path",
12165	//       "required": true,
12166	//       "type": "string"
12167	//     },
12168	//     "location": {
12169	//       "description": "The location that contains this job.",
12170	//       "location": "path",
12171	//       "required": true,
12172	//       "type": "string"
12173	//     },
12174	//     "projectId": {
12175	//       "description": "The project which owns the job to be snapshotted.",
12176	//       "location": "path",
12177	//       "required": true,
12178	//       "type": "string"
12179	//     }
12180	//   },
12181	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}:snapshot",
12182	//   "request": {
12183	//     "$ref": "SnapshotJobRequest"
12184	//   },
12185	//   "response": {
12186	//     "$ref": "Snapshot"
12187	//   },
12188	//   "scopes": [
12189	//     "https://www.googleapis.com/auth/cloud-platform",
12190	//     "https://www.googleapis.com/auth/compute",
12191	//     "https://www.googleapis.com/auth/compute.readonly",
12192	//     "https://www.googleapis.com/auth/userinfo.email"
12193	//   ]
12194	// }
12195
12196}
12197
12198// method id "dataflow.projects.locations.jobs.update":
12199
12200type ProjectsLocationsJobsUpdateCall struct {
12201	s          *Service
12202	projectId  string
12203	location   string
12204	jobId      string
12205	job        *Job
12206	urlParams_ gensupport.URLParams
12207	ctx_       context.Context
12208	header_    http.Header
12209}
12210
12211// Update: Updates the state of an existing Cloud Dataflow job. To
12212// update the state of an existing job, we recommend using
12213// `projects.locations.jobs.update` with a [regional endpoint]
12214// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
12215// Using `projects.jobs.update` is not recommended, as you can only
12216// update the state of jobs that are running in `us-central1`.
12217func (r *ProjectsLocationsJobsService) Update(projectId string, location string, jobId string, job *Job) *ProjectsLocationsJobsUpdateCall {
12218	c := &ProjectsLocationsJobsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12219	c.projectId = projectId
12220	c.location = location
12221	c.jobId = jobId
12222	c.job = job
12223	return c
12224}
12225
12226// Fields allows partial responses to be retrieved. See
12227// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12228// for more information.
12229func (c *ProjectsLocationsJobsUpdateCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsUpdateCall {
12230	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12231	return c
12232}
12233
12234// Context sets the context to be used in this call's Do method. Any
12235// pending HTTP request will be aborted if the provided context is
12236// canceled.
12237func (c *ProjectsLocationsJobsUpdateCall) Context(ctx context.Context) *ProjectsLocationsJobsUpdateCall {
12238	c.ctx_ = ctx
12239	return c
12240}
12241
12242// Header returns an http.Header that can be modified by the caller to
12243// add HTTP headers to the request.
12244func (c *ProjectsLocationsJobsUpdateCall) Header() http.Header {
12245	if c.header_ == nil {
12246		c.header_ = make(http.Header)
12247	}
12248	return c.header_
12249}
12250
12251func (c *ProjectsLocationsJobsUpdateCall) doRequest(alt string) (*http.Response, error) {
12252	reqHeaders := make(http.Header)
12253	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
12254	for k, v := range c.header_ {
12255		reqHeaders[k] = v
12256	}
12257	reqHeaders.Set("User-Agent", c.s.userAgent())
12258	var body io.Reader = nil
12259	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
12260	if err != nil {
12261		return nil, err
12262	}
12263	reqHeaders.Set("Content-Type", "application/json")
12264	c.urlParams_.Set("alt", alt)
12265	c.urlParams_.Set("prettyPrint", "false")
12266	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}")
12267	urls += "?" + c.urlParams_.Encode()
12268	req, err := http.NewRequest("PUT", urls, body)
12269	if err != nil {
12270		return nil, err
12271	}
12272	req.Header = reqHeaders
12273	googleapi.Expand(req.URL, map[string]string{
12274		"projectId": c.projectId,
12275		"location":  c.location,
12276		"jobId":     c.jobId,
12277	})
12278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12279}
12280
12281// Do executes the "dataflow.projects.locations.jobs.update" call.
12282// Exactly one of *Job or error will be non-nil. Any non-2xx status code
12283// is an error. Response headers are in either
12284// *Job.ServerResponse.Header or (if a response was returned at all) in
12285// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
12286// whether the returned error was because http.StatusNotModified was
12287// returned.
12288func (c *ProjectsLocationsJobsUpdateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
12289	gensupport.SetOptions(c.urlParams_, opts...)
12290	res, err := c.doRequest("json")
12291	if res != nil && res.StatusCode == http.StatusNotModified {
12292		if res.Body != nil {
12293			res.Body.Close()
12294		}
12295		return nil, &googleapi.Error{
12296			Code:   res.StatusCode,
12297			Header: res.Header,
12298		}
12299	}
12300	if err != nil {
12301		return nil, err
12302	}
12303	defer googleapi.CloseBody(res)
12304	if err := googleapi.CheckResponse(res); err != nil {
12305		return nil, err
12306	}
12307	ret := &Job{
12308		ServerResponse: googleapi.ServerResponse{
12309			Header:         res.Header,
12310			HTTPStatusCode: res.StatusCode,
12311		},
12312	}
12313	target := &ret
12314	if err := gensupport.DecodeResponse(target, res); err != nil {
12315		return nil, err
12316	}
12317	return ret, nil
12318	// {
12319	//   "description": "Updates the state of an existing Cloud Dataflow job. To update the state of an existing job, we recommend using `projects.locations.jobs.update` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.update` is not recommended, as you can only update the state of jobs that are running in `us-central1`.",
12320	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
12321	//   "httpMethod": "PUT",
12322	//   "id": "dataflow.projects.locations.jobs.update",
12323	//   "parameterOrder": [
12324	//     "projectId",
12325	//     "location",
12326	//     "jobId"
12327	//   ],
12328	//   "parameters": {
12329	//     "jobId": {
12330	//       "description": "The job ID.",
12331	//       "location": "path",
12332	//       "required": true,
12333	//       "type": "string"
12334	//     },
12335	//     "location": {
12336	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
12337	//       "location": "path",
12338	//       "required": true,
12339	//       "type": "string"
12340	//     },
12341	//     "projectId": {
12342	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
12343	//       "location": "path",
12344	//       "required": true,
12345	//       "type": "string"
12346	//     }
12347	//   },
12348	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
12349	//   "request": {
12350	//     "$ref": "Job"
12351	//   },
12352	//   "response": {
12353	//     "$ref": "Job"
12354	//   },
12355	//   "scopes": [
12356	//     "https://www.googleapis.com/auth/cloud-platform",
12357	//     "https://www.googleapis.com/auth/compute",
12358	//     "https://www.googleapis.com/auth/compute.readonly",
12359	//     "https://www.googleapis.com/auth/userinfo.email"
12360	//   ]
12361	// }
12362
12363}
12364
12365// method id "dataflow.projects.locations.jobs.debug.getConfig":
12366
12367type ProjectsLocationsJobsDebugGetConfigCall struct {
12368	s                     *Service
12369	projectId             string
12370	location              string
12371	jobId                 string
12372	getdebugconfigrequest *GetDebugConfigRequest
12373	urlParams_            gensupport.URLParams
12374	ctx_                  context.Context
12375	header_               http.Header
12376}
12377
12378// GetConfig: Get encoded debug configuration for component. Not
12379// cacheable.
12380func (r *ProjectsLocationsJobsDebugService) GetConfig(projectId string, location string, jobId string, getdebugconfigrequest *GetDebugConfigRequest) *ProjectsLocationsJobsDebugGetConfigCall {
12381	c := &ProjectsLocationsJobsDebugGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12382	c.projectId = projectId
12383	c.location = location
12384	c.jobId = jobId
12385	c.getdebugconfigrequest = getdebugconfigrequest
12386	return c
12387}
12388
12389// Fields allows partial responses to be retrieved. See
12390// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12391// for more information.
12392func (c *ProjectsLocationsJobsDebugGetConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsDebugGetConfigCall {
12393	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12394	return c
12395}
12396
12397// Context sets the context to be used in this call's Do method. Any
12398// pending HTTP request will be aborted if the provided context is
12399// canceled.
12400func (c *ProjectsLocationsJobsDebugGetConfigCall) Context(ctx context.Context) *ProjectsLocationsJobsDebugGetConfigCall {
12401	c.ctx_ = ctx
12402	return c
12403}
12404
12405// Header returns an http.Header that can be modified by the caller to
12406// add HTTP headers to the request.
12407func (c *ProjectsLocationsJobsDebugGetConfigCall) Header() http.Header {
12408	if c.header_ == nil {
12409		c.header_ = make(http.Header)
12410	}
12411	return c.header_
12412}
12413
12414func (c *ProjectsLocationsJobsDebugGetConfigCall) doRequest(alt string) (*http.Response, error) {
12415	reqHeaders := make(http.Header)
12416	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
12417	for k, v := range c.header_ {
12418		reqHeaders[k] = v
12419	}
12420	reqHeaders.Set("User-Agent", c.s.userAgent())
12421	var body io.Reader = nil
12422	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getdebugconfigrequest)
12423	if err != nil {
12424		return nil, err
12425	}
12426	reqHeaders.Set("Content-Type", "application/json")
12427	c.urlParams_.Set("alt", alt)
12428	c.urlParams_.Set("prettyPrint", "false")
12429	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig")
12430	urls += "?" + c.urlParams_.Encode()
12431	req, err := http.NewRequest("POST", urls, body)
12432	if err != nil {
12433		return nil, err
12434	}
12435	req.Header = reqHeaders
12436	googleapi.Expand(req.URL, map[string]string{
12437		"projectId": c.projectId,
12438		"location":  c.location,
12439		"jobId":     c.jobId,
12440	})
12441	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12442}
12443
12444// Do executes the "dataflow.projects.locations.jobs.debug.getConfig" call.
12445// Exactly one of *GetDebugConfigResponse or error will be non-nil. Any
12446// non-2xx status code is an error. Response headers are in either
12447// *GetDebugConfigResponse.ServerResponse.Header or (if a response was
12448// returned at all) in error.(*googleapi.Error).Header. Use
12449// googleapi.IsNotModified to check whether the returned error was
12450// because http.StatusNotModified was returned.
12451func (c *ProjectsLocationsJobsDebugGetConfigCall) Do(opts ...googleapi.CallOption) (*GetDebugConfigResponse, error) {
12452	gensupport.SetOptions(c.urlParams_, opts...)
12453	res, err := c.doRequest("json")
12454	if res != nil && res.StatusCode == http.StatusNotModified {
12455		if res.Body != nil {
12456			res.Body.Close()
12457		}
12458		return nil, &googleapi.Error{
12459			Code:   res.StatusCode,
12460			Header: res.Header,
12461		}
12462	}
12463	if err != nil {
12464		return nil, err
12465	}
12466	defer googleapi.CloseBody(res)
12467	if err := googleapi.CheckResponse(res); err != nil {
12468		return nil, err
12469	}
12470	ret := &GetDebugConfigResponse{
12471		ServerResponse: googleapi.ServerResponse{
12472			Header:         res.Header,
12473			HTTPStatusCode: res.StatusCode,
12474		},
12475	}
12476	target := &ret
12477	if err := gensupport.DecodeResponse(target, res); err != nil {
12478		return nil, err
12479	}
12480	return ret, nil
12481	// {
12482	//   "description": "Get encoded debug configuration for component. Not cacheable.",
12483	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig",
12484	//   "httpMethod": "POST",
12485	//   "id": "dataflow.projects.locations.jobs.debug.getConfig",
12486	//   "parameterOrder": [
12487	//     "projectId",
12488	//     "location",
12489	//     "jobId"
12490	//   ],
12491	//   "parameters": {
12492	//     "jobId": {
12493	//       "description": "The job id.",
12494	//       "location": "path",
12495	//       "required": true,
12496	//       "type": "string"
12497	//     },
12498	//     "location": {
12499	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
12500	//       "location": "path",
12501	//       "required": true,
12502	//       "type": "string"
12503	//     },
12504	//     "projectId": {
12505	//       "description": "The project id.",
12506	//       "location": "path",
12507	//       "required": true,
12508	//       "type": "string"
12509	//     }
12510	//   },
12511	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig",
12512	//   "request": {
12513	//     "$ref": "GetDebugConfigRequest"
12514	//   },
12515	//   "response": {
12516	//     "$ref": "GetDebugConfigResponse"
12517	//   },
12518	//   "scopes": [
12519	//     "https://www.googleapis.com/auth/cloud-platform",
12520	//     "https://www.googleapis.com/auth/compute",
12521	//     "https://www.googleapis.com/auth/compute.readonly",
12522	//     "https://www.googleapis.com/auth/userinfo.email"
12523	//   ]
12524	// }
12525
12526}
12527
12528// method id "dataflow.projects.locations.jobs.debug.sendCapture":
12529
12530type ProjectsLocationsJobsDebugSendCaptureCall struct {
12531	s                       *Service
12532	projectId               string
12533	location                string
12534	jobId                   string
12535	senddebugcapturerequest *SendDebugCaptureRequest
12536	urlParams_              gensupport.URLParams
12537	ctx_                    context.Context
12538	header_                 http.Header
12539}
12540
12541// SendCapture: Send encoded debug capture data for component.
12542func (r *ProjectsLocationsJobsDebugService) SendCapture(projectId string, location string, jobId string, senddebugcapturerequest *SendDebugCaptureRequest) *ProjectsLocationsJobsDebugSendCaptureCall {
12543	c := &ProjectsLocationsJobsDebugSendCaptureCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12544	c.projectId = projectId
12545	c.location = location
12546	c.jobId = jobId
12547	c.senddebugcapturerequest = senddebugcapturerequest
12548	return c
12549}
12550
12551// Fields allows partial responses to be retrieved. See
12552// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12553// for more information.
12554func (c *ProjectsLocationsJobsDebugSendCaptureCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsDebugSendCaptureCall {
12555	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12556	return c
12557}
12558
12559// Context sets the context to be used in this call's Do method. Any
12560// pending HTTP request will be aborted if the provided context is
12561// canceled.
12562func (c *ProjectsLocationsJobsDebugSendCaptureCall) Context(ctx context.Context) *ProjectsLocationsJobsDebugSendCaptureCall {
12563	c.ctx_ = ctx
12564	return c
12565}
12566
12567// Header returns an http.Header that can be modified by the caller to
12568// add HTTP headers to the request.
12569func (c *ProjectsLocationsJobsDebugSendCaptureCall) Header() http.Header {
12570	if c.header_ == nil {
12571		c.header_ = make(http.Header)
12572	}
12573	return c.header_
12574}
12575
12576func (c *ProjectsLocationsJobsDebugSendCaptureCall) doRequest(alt string) (*http.Response, error) {
12577	reqHeaders := make(http.Header)
12578	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
12579	for k, v := range c.header_ {
12580		reqHeaders[k] = v
12581	}
12582	reqHeaders.Set("User-Agent", c.s.userAgent())
12583	var body io.Reader = nil
12584	body, err := googleapi.WithoutDataWrapper.JSONReader(c.senddebugcapturerequest)
12585	if err != nil {
12586		return nil, err
12587	}
12588	reqHeaders.Set("Content-Type", "application/json")
12589	c.urlParams_.Set("alt", alt)
12590	c.urlParams_.Set("prettyPrint", "false")
12591	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture")
12592	urls += "?" + c.urlParams_.Encode()
12593	req, err := http.NewRequest("POST", urls, body)
12594	if err != nil {
12595		return nil, err
12596	}
12597	req.Header = reqHeaders
12598	googleapi.Expand(req.URL, map[string]string{
12599		"projectId": c.projectId,
12600		"location":  c.location,
12601		"jobId":     c.jobId,
12602	})
12603	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12604}
12605
12606// Do executes the "dataflow.projects.locations.jobs.debug.sendCapture" call.
12607// Exactly one of *SendDebugCaptureResponse or error will be non-nil.
12608// Any non-2xx status code is an error. Response headers are in either
12609// *SendDebugCaptureResponse.ServerResponse.Header or (if a response was
12610// returned at all) in error.(*googleapi.Error).Header. Use
12611// googleapi.IsNotModified to check whether the returned error was
12612// because http.StatusNotModified was returned.
12613func (c *ProjectsLocationsJobsDebugSendCaptureCall) Do(opts ...googleapi.CallOption) (*SendDebugCaptureResponse, error) {
12614	gensupport.SetOptions(c.urlParams_, opts...)
12615	res, err := c.doRequest("json")
12616	if res != nil && res.StatusCode == http.StatusNotModified {
12617		if res.Body != nil {
12618			res.Body.Close()
12619		}
12620		return nil, &googleapi.Error{
12621			Code:   res.StatusCode,
12622			Header: res.Header,
12623		}
12624	}
12625	if err != nil {
12626		return nil, err
12627	}
12628	defer googleapi.CloseBody(res)
12629	if err := googleapi.CheckResponse(res); err != nil {
12630		return nil, err
12631	}
12632	ret := &SendDebugCaptureResponse{
12633		ServerResponse: googleapi.ServerResponse{
12634			Header:         res.Header,
12635			HTTPStatusCode: res.StatusCode,
12636		},
12637	}
12638	target := &ret
12639	if err := gensupport.DecodeResponse(target, res); err != nil {
12640		return nil, err
12641	}
12642	return ret, nil
12643	// {
12644	//   "description": "Send encoded debug capture data for component.",
12645	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture",
12646	//   "httpMethod": "POST",
12647	//   "id": "dataflow.projects.locations.jobs.debug.sendCapture",
12648	//   "parameterOrder": [
12649	//     "projectId",
12650	//     "location",
12651	//     "jobId"
12652	//   ],
12653	//   "parameters": {
12654	//     "jobId": {
12655	//       "description": "The job id.",
12656	//       "location": "path",
12657	//       "required": true,
12658	//       "type": "string"
12659	//     },
12660	//     "location": {
12661	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
12662	//       "location": "path",
12663	//       "required": true,
12664	//       "type": "string"
12665	//     },
12666	//     "projectId": {
12667	//       "description": "The project id.",
12668	//       "location": "path",
12669	//       "required": true,
12670	//       "type": "string"
12671	//     }
12672	//   },
12673	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture",
12674	//   "request": {
12675	//     "$ref": "SendDebugCaptureRequest"
12676	//   },
12677	//   "response": {
12678	//     "$ref": "SendDebugCaptureResponse"
12679	//   },
12680	//   "scopes": [
12681	//     "https://www.googleapis.com/auth/cloud-platform",
12682	//     "https://www.googleapis.com/auth/compute",
12683	//     "https://www.googleapis.com/auth/compute.readonly",
12684	//     "https://www.googleapis.com/auth/userinfo.email"
12685	//   ]
12686	// }
12687
12688}
12689
12690// method id "dataflow.projects.locations.jobs.messages.list":
12691
12692type ProjectsLocationsJobsMessagesListCall struct {
12693	s            *Service
12694	projectId    string
12695	location     string
12696	jobId        string
12697	urlParams_   gensupport.URLParams
12698	ifNoneMatch_ string
12699	ctx_         context.Context
12700	header_      http.Header
12701}
12702
12703// List: Request the job status. To request the status of a job, we
12704// recommend using `projects.locations.jobs.messages.list` with a
12705// [regional endpoint]
12706// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
12707// Using `projects.jobs.messages.list` is not recommended, as you can
12708// only request the status of jobs that are running in `us-central1`.
12709func (r *ProjectsLocationsJobsMessagesService) List(projectId string, location string, jobId string) *ProjectsLocationsJobsMessagesListCall {
12710	c := &ProjectsLocationsJobsMessagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12711	c.projectId = projectId
12712	c.location = location
12713	c.jobId = jobId
12714	return c
12715}
12716
12717// EndTime sets the optional parameter "endTime": Return only messages
12718// with timestamps < end_time. The default is now (i.e. return up to the
12719// latest messages available).
12720func (c *ProjectsLocationsJobsMessagesListCall) EndTime(endTime string) *ProjectsLocationsJobsMessagesListCall {
12721	c.urlParams_.Set("endTime", endTime)
12722	return c
12723}
12724
12725// MinimumImportance sets the optional parameter "minimumImportance":
12726// Filter to only get messages with importance >= level
12727//
12728// Possible values:
12729//   "JOB_MESSAGE_IMPORTANCE_UNKNOWN" - The message importance isn't
12730// specified, or is unknown.
12731//   "JOB_MESSAGE_DEBUG" - The message is at the 'debug' level:
12732// typically only useful for software engineers working on the code the
12733// job is running. Typically, Dataflow pipeline runners do not display
12734// log messages at this level by default.
12735//   "JOB_MESSAGE_DETAILED" - The message is at the 'detailed' level:
12736// somewhat verbose, but potentially useful to users. Typically,
12737// Dataflow pipeline runners do not display log messages at this level
12738// by default. These messages are displayed by default in the Dataflow
12739// monitoring UI.
12740//   "JOB_MESSAGE_BASIC" - The message is at the 'basic' level: useful
12741// for keeping track of the execution of a Dataflow pipeline. Typically,
12742// Dataflow pipeline runners display log messages at this level by
12743// default, and these messages are displayed by default in the Dataflow
12744// monitoring UI.
12745//   "JOB_MESSAGE_WARNING" - The message is at the 'warning' level:
12746// indicating a condition pertaining to a job which may require human
12747// intervention. Typically, Dataflow pipeline runners display log
12748// messages at this level by default, and these messages are displayed
12749// by default in the Dataflow monitoring UI.
12750//   "JOB_MESSAGE_ERROR" - The message is at the 'error' level:
12751// indicating a condition preventing a job from succeeding. Typically,
12752// Dataflow pipeline runners display log messages at this level by
12753// default, and these messages are displayed by default in the Dataflow
12754// monitoring UI.
12755func (c *ProjectsLocationsJobsMessagesListCall) MinimumImportance(minimumImportance string) *ProjectsLocationsJobsMessagesListCall {
12756	c.urlParams_.Set("minimumImportance", minimumImportance)
12757	return c
12758}
12759
12760// PageSize sets the optional parameter "pageSize": If specified,
12761// determines the maximum number of messages to return. If unspecified,
12762// the service may choose an appropriate default, or may return an
12763// arbitrarily large number of results.
12764func (c *ProjectsLocationsJobsMessagesListCall) PageSize(pageSize int64) *ProjectsLocationsJobsMessagesListCall {
12765	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
12766	return c
12767}
12768
12769// PageToken sets the optional parameter "pageToken": If supplied, this
12770// should be the value of next_page_token returned by an earlier call.
12771// This will cause the next page of results to be returned.
12772func (c *ProjectsLocationsJobsMessagesListCall) PageToken(pageToken string) *ProjectsLocationsJobsMessagesListCall {
12773	c.urlParams_.Set("pageToken", pageToken)
12774	return c
12775}
12776
12777// StartTime sets the optional parameter "startTime": If specified,
12778// return only messages with timestamps >= start_time. The default is
12779// the job creation time (i.e. beginning of messages).
12780func (c *ProjectsLocationsJobsMessagesListCall) StartTime(startTime string) *ProjectsLocationsJobsMessagesListCall {
12781	c.urlParams_.Set("startTime", startTime)
12782	return c
12783}
12784
12785// Fields allows partial responses to be retrieved. See
12786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12787// for more information.
12788func (c *ProjectsLocationsJobsMessagesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsMessagesListCall {
12789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12790	return c
12791}
12792
12793// IfNoneMatch sets the optional parameter which makes the operation
12794// fail if the object's ETag matches the given value. This is useful for
12795// getting updates only after the object has changed since the last
12796// request. Use googleapi.IsNotModified to check whether the response
12797// error from Do is the result of In-None-Match.
12798func (c *ProjectsLocationsJobsMessagesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsMessagesListCall {
12799	c.ifNoneMatch_ = entityTag
12800	return c
12801}
12802
12803// Context sets the context to be used in this call's Do method. Any
12804// pending HTTP request will be aborted if the provided context is
12805// canceled.
12806func (c *ProjectsLocationsJobsMessagesListCall) Context(ctx context.Context) *ProjectsLocationsJobsMessagesListCall {
12807	c.ctx_ = ctx
12808	return c
12809}
12810
12811// Header returns an http.Header that can be modified by the caller to
12812// add HTTP headers to the request.
12813func (c *ProjectsLocationsJobsMessagesListCall) Header() http.Header {
12814	if c.header_ == nil {
12815		c.header_ = make(http.Header)
12816	}
12817	return c.header_
12818}
12819
12820func (c *ProjectsLocationsJobsMessagesListCall) doRequest(alt string) (*http.Response, error) {
12821	reqHeaders := make(http.Header)
12822	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
12823	for k, v := range c.header_ {
12824		reqHeaders[k] = v
12825	}
12826	reqHeaders.Set("User-Agent", c.s.userAgent())
12827	if c.ifNoneMatch_ != "" {
12828		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12829	}
12830	var body io.Reader = nil
12831	c.urlParams_.Set("alt", alt)
12832	c.urlParams_.Set("prettyPrint", "false")
12833	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages")
12834	urls += "?" + c.urlParams_.Encode()
12835	req, err := http.NewRequest("GET", urls, body)
12836	if err != nil {
12837		return nil, err
12838	}
12839	req.Header = reqHeaders
12840	googleapi.Expand(req.URL, map[string]string{
12841		"projectId": c.projectId,
12842		"location":  c.location,
12843		"jobId":     c.jobId,
12844	})
12845	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12846}
12847
12848// Do executes the "dataflow.projects.locations.jobs.messages.list" call.
12849// Exactly one of *ListJobMessagesResponse or error will be non-nil. Any
12850// non-2xx status code is an error. Response headers are in either
12851// *ListJobMessagesResponse.ServerResponse.Header or (if a response was
12852// returned at all) in error.(*googleapi.Error).Header. Use
12853// googleapi.IsNotModified to check whether the returned error was
12854// because http.StatusNotModified was returned.
12855func (c *ProjectsLocationsJobsMessagesListCall) Do(opts ...googleapi.CallOption) (*ListJobMessagesResponse, error) {
12856	gensupport.SetOptions(c.urlParams_, opts...)
12857	res, err := c.doRequest("json")
12858	if res != nil && res.StatusCode == http.StatusNotModified {
12859		if res.Body != nil {
12860			res.Body.Close()
12861		}
12862		return nil, &googleapi.Error{
12863			Code:   res.StatusCode,
12864			Header: res.Header,
12865		}
12866	}
12867	if err != nil {
12868		return nil, err
12869	}
12870	defer googleapi.CloseBody(res)
12871	if err := googleapi.CheckResponse(res); err != nil {
12872		return nil, err
12873	}
12874	ret := &ListJobMessagesResponse{
12875		ServerResponse: googleapi.ServerResponse{
12876			Header:         res.Header,
12877			HTTPStatusCode: res.StatusCode,
12878		},
12879	}
12880	target := &ret
12881	if err := gensupport.DecodeResponse(target, res); err != nil {
12882		return nil, err
12883	}
12884	return ret, nil
12885	// {
12886	//   "description": "Request the job status. To request the status of a job, we recommend using `projects.locations.jobs.messages.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.messages.list` is not recommended, as you can only request the status of jobs that are running in `us-central1`.",
12887	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages",
12888	//   "httpMethod": "GET",
12889	//   "id": "dataflow.projects.locations.jobs.messages.list",
12890	//   "parameterOrder": [
12891	//     "projectId",
12892	//     "location",
12893	//     "jobId"
12894	//   ],
12895	//   "parameters": {
12896	//     "endTime": {
12897	//       "description": "Return only messages with timestamps \u003c end_time. The default is now (i.e. return up to the latest messages available).",
12898	//       "format": "google-datetime",
12899	//       "location": "query",
12900	//       "type": "string"
12901	//     },
12902	//     "jobId": {
12903	//       "description": "The job to get messages about.",
12904	//       "location": "path",
12905	//       "required": true,
12906	//       "type": "string"
12907	//     },
12908	//     "location": {
12909	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
12910	//       "location": "path",
12911	//       "required": true,
12912	//       "type": "string"
12913	//     },
12914	//     "minimumImportance": {
12915	//       "description": "Filter to only get messages with importance \u003e= level",
12916	//       "enum": [
12917	//         "JOB_MESSAGE_IMPORTANCE_UNKNOWN",
12918	//         "JOB_MESSAGE_DEBUG",
12919	//         "JOB_MESSAGE_DETAILED",
12920	//         "JOB_MESSAGE_BASIC",
12921	//         "JOB_MESSAGE_WARNING",
12922	//         "JOB_MESSAGE_ERROR"
12923	//       ],
12924	//       "enumDescriptions": [
12925	//         "The message importance isn't specified, or is unknown.",
12926	//         "The message is at the 'debug' level: typically only useful for software engineers working on the code the job is running. Typically, Dataflow pipeline runners do not display log messages at this level by default.",
12927	//         "The message is at the 'detailed' level: somewhat verbose, but potentially useful to users. Typically, Dataflow pipeline runners do not display log messages at this level by default. These messages are displayed by default in the Dataflow monitoring UI.",
12928	//         "The message is at the 'basic' level: useful for keeping track of the execution of a Dataflow pipeline. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.",
12929	//         "The message is at the 'warning' level: indicating a condition pertaining to a job which may require human intervention. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.",
12930	//         "The message is at the 'error' level: indicating a condition preventing a job from succeeding. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI."
12931	//       ],
12932	//       "location": "query",
12933	//       "type": "string"
12934	//     },
12935	//     "pageSize": {
12936	//       "description": "If specified, determines the maximum number of messages to return. If unspecified, the service may choose an appropriate default, or may return an arbitrarily large number of results.",
12937	//       "format": "int32",
12938	//       "location": "query",
12939	//       "type": "integer"
12940	//     },
12941	//     "pageToken": {
12942	//       "description": "If supplied, this should be the value of next_page_token returned by an earlier call. This will cause the next page of results to be returned.",
12943	//       "location": "query",
12944	//       "type": "string"
12945	//     },
12946	//     "projectId": {
12947	//       "description": "A project id.",
12948	//       "location": "path",
12949	//       "required": true,
12950	//       "type": "string"
12951	//     },
12952	//     "startTime": {
12953	//       "description": "If specified, return only messages with timestamps \u003e= start_time. The default is the job creation time (i.e. beginning of messages).",
12954	//       "format": "google-datetime",
12955	//       "location": "query",
12956	//       "type": "string"
12957	//     }
12958	//   },
12959	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages",
12960	//   "response": {
12961	//     "$ref": "ListJobMessagesResponse"
12962	//   },
12963	//   "scopes": [
12964	//     "https://www.googleapis.com/auth/cloud-platform",
12965	//     "https://www.googleapis.com/auth/compute",
12966	//     "https://www.googleapis.com/auth/compute.readonly",
12967	//     "https://www.googleapis.com/auth/userinfo.email"
12968	//   ]
12969	// }
12970
12971}
12972
12973// Pages invokes f for each page of results.
12974// A non-nil error returned from f will halt the iteration.
12975// The provided context supersedes any context provided to the Context method.
12976func (c *ProjectsLocationsJobsMessagesListCall) Pages(ctx context.Context, f func(*ListJobMessagesResponse) error) error {
12977	c.ctx_ = ctx
12978	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
12979	for {
12980		x, err := c.Do()
12981		if err != nil {
12982			return err
12983		}
12984		if err := f(x); err != nil {
12985			return err
12986		}
12987		if x.NextPageToken == "" {
12988			return nil
12989		}
12990		c.PageToken(x.NextPageToken)
12991	}
12992}
12993
12994// method id "dataflow.projects.locations.jobs.snapshots.list":
12995
12996type ProjectsLocationsJobsSnapshotsListCall struct {
12997	s            *Service
12998	projectId    string
12999	location     string
13000	jobId        string
13001	urlParams_   gensupport.URLParams
13002	ifNoneMatch_ string
13003	ctx_         context.Context
13004	header_      http.Header
13005}
13006
13007// List: Lists snapshots.
13008func (r *ProjectsLocationsJobsSnapshotsService) List(projectId string, location string, jobId string) *ProjectsLocationsJobsSnapshotsListCall {
13009	c := &ProjectsLocationsJobsSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13010	c.projectId = projectId
13011	c.location = location
13012	c.jobId = jobId
13013	return c
13014}
13015
13016// Fields allows partial responses to be retrieved. See
13017// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13018// for more information.
13019func (c *ProjectsLocationsJobsSnapshotsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsSnapshotsListCall {
13020	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13021	return c
13022}
13023
13024// IfNoneMatch sets the optional parameter which makes the operation
13025// fail if the object's ETag matches the given value. This is useful for
13026// getting updates only after the object has changed since the last
13027// request. Use googleapi.IsNotModified to check whether the response
13028// error from Do is the result of In-None-Match.
13029func (c *ProjectsLocationsJobsSnapshotsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsSnapshotsListCall {
13030	c.ifNoneMatch_ = entityTag
13031	return c
13032}
13033
13034// Context sets the context to be used in this call's Do method. Any
13035// pending HTTP request will be aborted if the provided context is
13036// canceled.
13037func (c *ProjectsLocationsJobsSnapshotsListCall) Context(ctx context.Context) *ProjectsLocationsJobsSnapshotsListCall {
13038	c.ctx_ = ctx
13039	return c
13040}
13041
13042// Header returns an http.Header that can be modified by the caller to
13043// add HTTP headers to the request.
13044func (c *ProjectsLocationsJobsSnapshotsListCall) Header() http.Header {
13045	if c.header_ == nil {
13046		c.header_ = make(http.Header)
13047	}
13048	return c.header_
13049}
13050
13051func (c *ProjectsLocationsJobsSnapshotsListCall) doRequest(alt string) (*http.Response, error) {
13052	reqHeaders := make(http.Header)
13053	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
13054	for k, v := range c.header_ {
13055		reqHeaders[k] = v
13056	}
13057	reqHeaders.Set("User-Agent", c.s.userAgent())
13058	if c.ifNoneMatch_ != "" {
13059		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13060	}
13061	var body io.Reader = nil
13062	c.urlParams_.Set("alt", alt)
13063	c.urlParams_.Set("prettyPrint", "false")
13064	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/snapshots")
13065	urls += "?" + c.urlParams_.Encode()
13066	req, err := http.NewRequest("GET", urls, body)
13067	if err != nil {
13068		return nil, err
13069	}
13070	req.Header = reqHeaders
13071	googleapi.Expand(req.URL, map[string]string{
13072		"projectId": c.projectId,
13073		"location":  c.location,
13074		"jobId":     c.jobId,
13075	})
13076	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13077}
13078
13079// Do executes the "dataflow.projects.locations.jobs.snapshots.list" call.
13080// Exactly one of *ListSnapshotsResponse or error will be non-nil. Any
13081// non-2xx status code is an error. Response headers are in either
13082// *ListSnapshotsResponse.ServerResponse.Header or (if a response was
13083// returned at all) in error.(*googleapi.Error).Header. Use
13084// googleapi.IsNotModified to check whether the returned error was
13085// because http.StatusNotModified was returned.
13086func (c *ProjectsLocationsJobsSnapshotsListCall) Do(opts ...googleapi.CallOption) (*ListSnapshotsResponse, error) {
13087	gensupport.SetOptions(c.urlParams_, opts...)
13088	res, err := c.doRequest("json")
13089	if res != nil && res.StatusCode == http.StatusNotModified {
13090		if res.Body != nil {
13091			res.Body.Close()
13092		}
13093		return nil, &googleapi.Error{
13094			Code:   res.StatusCode,
13095			Header: res.Header,
13096		}
13097	}
13098	if err != nil {
13099		return nil, err
13100	}
13101	defer googleapi.CloseBody(res)
13102	if err := googleapi.CheckResponse(res); err != nil {
13103		return nil, err
13104	}
13105	ret := &ListSnapshotsResponse{
13106		ServerResponse: googleapi.ServerResponse{
13107			Header:         res.Header,
13108			HTTPStatusCode: res.StatusCode,
13109		},
13110	}
13111	target := &ret
13112	if err := gensupport.DecodeResponse(target, res); err != nil {
13113		return nil, err
13114	}
13115	return ret, nil
13116	// {
13117	//   "description": "Lists snapshots.",
13118	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/snapshots",
13119	//   "httpMethod": "GET",
13120	//   "id": "dataflow.projects.locations.jobs.snapshots.list",
13121	//   "parameterOrder": [
13122	//     "projectId",
13123	//     "location",
13124	//     "jobId"
13125	//   ],
13126	//   "parameters": {
13127	//     "jobId": {
13128	//       "description": "If specified, list snapshots created from this job.",
13129	//       "location": "path",
13130	//       "required": true,
13131	//       "type": "string"
13132	//     },
13133	//     "location": {
13134	//       "description": "The location to list snapshots in.",
13135	//       "location": "path",
13136	//       "required": true,
13137	//       "type": "string"
13138	//     },
13139	//     "projectId": {
13140	//       "description": "The project ID to list snapshots for.",
13141	//       "location": "path",
13142	//       "required": true,
13143	//       "type": "string"
13144	//     }
13145	//   },
13146	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/snapshots",
13147	//   "response": {
13148	//     "$ref": "ListSnapshotsResponse"
13149	//   },
13150	//   "scopes": [
13151	//     "https://www.googleapis.com/auth/cloud-platform",
13152	//     "https://www.googleapis.com/auth/compute",
13153	//     "https://www.googleapis.com/auth/compute.readonly",
13154	//     "https://www.googleapis.com/auth/userinfo.email"
13155	//   ]
13156	// }
13157
13158}
13159
13160// method id "dataflow.projects.locations.jobs.stages.getExecutionDetails":
13161
13162type ProjectsLocationsJobsStagesGetExecutionDetailsCall struct {
13163	s            *Service
13164	projectId    string
13165	location     string
13166	jobId        string
13167	stageId      string
13168	urlParams_   gensupport.URLParams
13169	ifNoneMatch_ string
13170	ctx_         context.Context
13171	header_      http.Header
13172}
13173
13174// GetExecutionDetails: Request detailed information about the execution
13175// status of a stage of the job. EXPERIMENTAL. This API is subject to
13176// change or removal without notice.
13177func (r *ProjectsLocationsJobsStagesService) GetExecutionDetails(projectId string, location string, jobId string, stageId string) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13178	c := &ProjectsLocationsJobsStagesGetExecutionDetailsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13179	c.projectId = projectId
13180	c.location = location
13181	c.jobId = jobId
13182	c.stageId = stageId
13183	return c
13184}
13185
13186// EndTime sets the optional parameter "endTime": Upper time bound of
13187// work items to include, by start time.
13188func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) EndTime(endTime string) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13189	c.urlParams_.Set("endTime", endTime)
13190	return c
13191}
13192
13193// PageSize sets the optional parameter "pageSize": If specified,
13194// determines the maximum number of work items to return. If
13195// unspecified, the service may choose an appropriate default, or may
13196// return an arbitrarily large number of results.
13197func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) PageSize(pageSize int64) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13198	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
13199	return c
13200}
13201
13202// PageToken sets the optional parameter "pageToken": If supplied, this
13203// should be the value of next_page_token returned by an earlier call.
13204// This will cause the next page of results to be returned.
13205func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) PageToken(pageToken string) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13206	c.urlParams_.Set("pageToken", pageToken)
13207	return c
13208}
13209
13210// StartTime sets the optional parameter "startTime": Lower time bound
13211// of work items to include, by start time.
13212func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) StartTime(startTime string) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13213	c.urlParams_.Set("startTime", startTime)
13214	return c
13215}
13216
13217// Fields allows partial responses to be retrieved. See
13218// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13219// for more information.
13220func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13221	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13222	return c
13223}
13224
13225// IfNoneMatch sets the optional parameter which makes the operation
13226// fail if the object's ETag matches the given value. This is useful for
13227// getting updates only after the object has changed since the last
13228// request. Use googleapi.IsNotModified to check whether the response
13229// error from Do is the result of In-None-Match.
13230func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13231	c.ifNoneMatch_ = entityTag
13232	return c
13233}
13234
13235// Context sets the context to be used in this call's Do method. Any
13236// pending HTTP request will be aborted if the provided context is
13237// canceled.
13238func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) Context(ctx context.Context) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13239	c.ctx_ = ctx
13240	return c
13241}
13242
13243// Header returns an http.Header that can be modified by the caller to
13244// add HTTP headers to the request.
13245func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) Header() http.Header {
13246	if c.header_ == nil {
13247		c.header_ = make(http.Header)
13248	}
13249	return c.header_
13250}
13251
13252func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) doRequest(alt string) (*http.Response, error) {
13253	reqHeaders := make(http.Header)
13254	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
13255	for k, v := range c.header_ {
13256		reqHeaders[k] = v
13257	}
13258	reqHeaders.Set("User-Agent", c.s.userAgent())
13259	if c.ifNoneMatch_ != "" {
13260		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13261	}
13262	var body io.Reader = nil
13263	c.urlParams_.Set("alt", alt)
13264	c.urlParams_.Set("prettyPrint", "false")
13265	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/stages/{stageId}/executionDetails")
13266	urls += "?" + c.urlParams_.Encode()
13267	req, err := http.NewRequest("GET", urls, body)
13268	if err != nil {
13269		return nil, err
13270	}
13271	req.Header = reqHeaders
13272	googleapi.Expand(req.URL, map[string]string{
13273		"projectId": c.projectId,
13274		"location":  c.location,
13275		"jobId":     c.jobId,
13276		"stageId":   c.stageId,
13277	})
13278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13279}
13280
13281// Do executes the "dataflow.projects.locations.jobs.stages.getExecutionDetails" call.
13282// Exactly one of *StageExecutionDetails or error will be non-nil. Any
13283// non-2xx status code is an error. Response headers are in either
13284// *StageExecutionDetails.ServerResponse.Header or (if a response was
13285// returned at all) in error.(*googleapi.Error).Header. Use
13286// googleapi.IsNotModified to check whether the returned error was
13287// because http.StatusNotModified was returned.
13288func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) Do(opts ...googleapi.CallOption) (*StageExecutionDetails, error) {
13289	gensupport.SetOptions(c.urlParams_, opts...)
13290	res, err := c.doRequest("json")
13291	if res != nil && res.StatusCode == http.StatusNotModified {
13292		if res.Body != nil {
13293			res.Body.Close()
13294		}
13295		return nil, &googleapi.Error{
13296			Code:   res.StatusCode,
13297			Header: res.Header,
13298		}
13299	}
13300	if err != nil {
13301		return nil, err
13302	}
13303	defer googleapi.CloseBody(res)
13304	if err := googleapi.CheckResponse(res); err != nil {
13305		return nil, err
13306	}
13307	ret := &StageExecutionDetails{
13308		ServerResponse: googleapi.ServerResponse{
13309			Header:         res.Header,
13310			HTTPStatusCode: res.StatusCode,
13311		},
13312	}
13313	target := &ret
13314	if err := gensupport.DecodeResponse(target, res); err != nil {
13315		return nil, err
13316	}
13317	return ret, nil
13318	// {
13319	//   "description": "Request detailed information about the execution status of a stage of the job. EXPERIMENTAL. This API is subject to change or removal without notice.",
13320	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/stages/{stageId}/executionDetails",
13321	//   "httpMethod": "GET",
13322	//   "id": "dataflow.projects.locations.jobs.stages.getExecutionDetails",
13323	//   "parameterOrder": [
13324	//     "projectId",
13325	//     "location",
13326	//     "jobId",
13327	//     "stageId"
13328	//   ],
13329	//   "parameters": {
13330	//     "endTime": {
13331	//       "description": "Upper time bound of work items to include, by start time.",
13332	//       "format": "google-datetime",
13333	//       "location": "query",
13334	//       "type": "string"
13335	//     },
13336	//     "jobId": {
13337	//       "description": "The job to get execution details for.",
13338	//       "location": "path",
13339	//       "required": true,
13340	//       "type": "string"
13341	//     },
13342	//     "location": {
13343	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
13344	//       "location": "path",
13345	//       "required": true,
13346	//       "type": "string"
13347	//     },
13348	//     "pageSize": {
13349	//       "description": "If specified, determines the maximum number of work items to return. If unspecified, the service may choose an appropriate default, or may return an arbitrarily large number of results.",
13350	//       "format": "int32",
13351	//       "location": "query",
13352	//       "type": "integer"
13353	//     },
13354	//     "pageToken": {
13355	//       "description": "If supplied, this should be the value of next_page_token returned by an earlier call. This will cause the next page of results to be returned.",
13356	//       "location": "query",
13357	//       "type": "string"
13358	//     },
13359	//     "projectId": {
13360	//       "description": "A project id.",
13361	//       "location": "path",
13362	//       "required": true,
13363	//       "type": "string"
13364	//     },
13365	//     "stageId": {
13366	//       "description": "The stage for which to fetch information.",
13367	//       "location": "path",
13368	//       "required": true,
13369	//       "type": "string"
13370	//     },
13371	//     "startTime": {
13372	//       "description": "Lower time bound of work items to include, by start time.",
13373	//       "format": "google-datetime",
13374	//       "location": "query",
13375	//       "type": "string"
13376	//     }
13377	//   },
13378	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/stages/{stageId}/executionDetails",
13379	//   "response": {
13380	//     "$ref": "StageExecutionDetails"
13381	//   },
13382	//   "scopes": [
13383	//     "https://www.googleapis.com/auth/cloud-platform",
13384	//     "https://www.googleapis.com/auth/compute",
13385	//     "https://www.googleapis.com/auth/compute.readonly",
13386	//     "https://www.googleapis.com/auth/userinfo.email"
13387	//   ]
13388	// }
13389
13390}
13391
13392// Pages invokes f for each page of results.
13393// A non-nil error returned from f will halt the iteration.
13394// The provided context supersedes any context provided to the Context method.
13395func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) Pages(ctx context.Context, f func(*StageExecutionDetails) error) error {
13396	c.ctx_ = ctx
13397	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
13398	for {
13399		x, err := c.Do()
13400		if err != nil {
13401			return err
13402		}
13403		if err := f(x); err != nil {
13404			return err
13405		}
13406		if x.NextPageToken == "" {
13407			return nil
13408		}
13409		c.PageToken(x.NextPageToken)
13410	}
13411}
13412
13413// method id "dataflow.projects.locations.jobs.workItems.lease":
13414
13415type ProjectsLocationsJobsWorkItemsLeaseCall struct {
13416	s                    *Service
13417	projectId            string
13418	location             string
13419	jobId                string
13420	leaseworkitemrequest *LeaseWorkItemRequest
13421	urlParams_           gensupport.URLParams
13422	ctx_                 context.Context
13423	header_              http.Header
13424}
13425
13426// Lease: Leases a dataflow WorkItem to run.
13427func (r *ProjectsLocationsJobsWorkItemsService) Lease(projectId string, location string, jobId string, leaseworkitemrequest *LeaseWorkItemRequest) *ProjectsLocationsJobsWorkItemsLeaseCall {
13428	c := &ProjectsLocationsJobsWorkItemsLeaseCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13429	c.projectId = projectId
13430	c.location = location
13431	c.jobId = jobId
13432	c.leaseworkitemrequest = leaseworkitemrequest
13433	return c
13434}
13435
13436// Fields allows partial responses to be retrieved. See
13437// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13438// for more information.
13439func (c *ProjectsLocationsJobsWorkItemsLeaseCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsWorkItemsLeaseCall {
13440	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13441	return c
13442}
13443
13444// Context sets the context to be used in this call's Do method. Any
13445// pending HTTP request will be aborted if the provided context is
13446// canceled.
13447func (c *ProjectsLocationsJobsWorkItemsLeaseCall) Context(ctx context.Context) *ProjectsLocationsJobsWorkItemsLeaseCall {
13448	c.ctx_ = ctx
13449	return c
13450}
13451
13452// Header returns an http.Header that can be modified by the caller to
13453// add HTTP headers to the request.
13454func (c *ProjectsLocationsJobsWorkItemsLeaseCall) Header() http.Header {
13455	if c.header_ == nil {
13456		c.header_ = make(http.Header)
13457	}
13458	return c.header_
13459}
13460
13461func (c *ProjectsLocationsJobsWorkItemsLeaseCall) doRequest(alt string) (*http.Response, error) {
13462	reqHeaders := make(http.Header)
13463	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
13464	for k, v := range c.header_ {
13465		reqHeaders[k] = v
13466	}
13467	reqHeaders.Set("User-Agent", c.s.userAgent())
13468	var body io.Reader = nil
13469	body, err := googleapi.WithoutDataWrapper.JSONReader(c.leaseworkitemrequest)
13470	if err != nil {
13471		return nil, err
13472	}
13473	reqHeaders.Set("Content-Type", "application/json")
13474	c.urlParams_.Set("alt", alt)
13475	c.urlParams_.Set("prettyPrint", "false")
13476	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease")
13477	urls += "?" + c.urlParams_.Encode()
13478	req, err := http.NewRequest("POST", urls, body)
13479	if err != nil {
13480		return nil, err
13481	}
13482	req.Header = reqHeaders
13483	googleapi.Expand(req.URL, map[string]string{
13484		"projectId": c.projectId,
13485		"location":  c.location,
13486		"jobId":     c.jobId,
13487	})
13488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13489}
13490
13491// Do executes the "dataflow.projects.locations.jobs.workItems.lease" call.
13492// Exactly one of *LeaseWorkItemResponse or error will be non-nil. Any
13493// non-2xx status code is an error. Response headers are in either
13494// *LeaseWorkItemResponse.ServerResponse.Header or (if a response was
13495// returned at all) in error.(*googleapi.Error).Header. Use
13496// googleapi.IsNotModified to check whether the returned error was
13497// because http.StatusNotModified was returned.
13498func (c *ProjectsLocationsJobsWorkItemsLeaseCall) Do(opts ...googleapi.CallOption) (*LeaseWorkItemResponse, error) {
13499	gensupport.SetOptions(c.urlParams_, opts...)
13500	res, err := c.doRequest("json")
13501	if res != nil && res.StatusCode == http.StatusNotModified {
13502		if res.Body != nil {
13503			res.Body.Close()
13504		}
13505		return nil, &googleapi.Error{
13506			Code:   res.StatusCode,
13507			Header: res.Header,
13508		}
13509	}
13510	if err != nil {
13511		return nil, err
13512	}
13513	defer googleapi.CloseBody(res)
13514	if err := googleapi.CheckResponse(res); err != nil {
13515		return nil, err
13516	}
13517	ret := &LeaseWorkItemResponse{
13518		ServerResponse: googleapi.ServerResponse{
13519			Header:         res.Header,
13520			HTTPStatusCode: res.StatusCode,
13521		},
13522	}
13523	target := &ret
13524	if err := gensupport.DecodeResponse(target, res); err != nil {
13525		return nil, err
13526	}
13527	return ret, nil
13528	// {
13529	//   "description": "Leases a dataflow WorkItem to run.",
13530	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease",
13531	//   "httpMethod": "POST",
13532	//   "id": "dataflow.projects.locations.jobs.workItems.lease",
13533	//   "parameterOrder": [
13534	//     "projectId",
13535	//     "location",
13536	//     "jobId"
13537	//   ],
13538	//   "parameters": {
13539	//     "jobId": {
13540	//       "description": "Identifies the workflow job this worker belongs to.",
13541	//       "location": "path",
13542	//       "required": true,
13543	//       "type": "string"
13544	//     },
13545	//     "location": {
13546	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the WorkItem's job.",
13547	//       "location": "path",
13548	//       "required": true,
13549	//       "type": "string"
13550	//     },
13551	//     "projectId": {
13552	//       "description": "Identifies the project this worker belongs to.",
13553	//       "location": "path",
13554	//       "required": true,
13555	//       "type": "string"
13556	//     }
13557	//   },
13558	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease",
13559	//   "request": {
13560	//     "$ref": "LeaseWorkItemRequest"
13561	//   },
13562	//   "response": {
13563	//     "$ref": "LeaseWorkItemResponse"
13564	//   },
13565	//   "scopes": [
13566	//     "https://www.googleapis.com/auth/cloud-platform",
13567	//     "https://www.googleapis.com/auth/compute",
13568	//     "https://www.googleapis.com/auth/compute.readonly",
13569	//     "https://www.googleapis.com/auth/userinfo.email"
13570	//   ]
13571	// }
13572
13573}
13574
13575// method id "dataflow.projects.locations.jobs.workItems.reportStatus":
13576
13577type ProjectsLocationsJobsWorkItemsReportStatusCall struct {
13578	s                           *Service
13579	projectId                   string
13580	location                    string
13581	jobId                       string
13582	reportworkitemstatusrequest *ReportWorkItemStatusRequest
13583	urlParams_                  gensupport.URLParams
13584	ctx_                        context.Context
13585	header_                     http.Header
13586}
13587
13588// ReportStatus: Reports the status of dataflow WorkItems leased by a
13589// worker.
13590func (r *ProjectsLocationsJobsWorkItemsService) ReportStatus(projectId string, location string, jobId string, reportworkitemstatusrequest *ReportWorkItemStatusRequest) *ProjectsLocationsJobsWorkItemsReportStatusCall {
13591	c := &ProjectsLocationsJobsWorkItemsReportStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13592	c.projectId = projectId
13593	c.location = location
13594	c.jobId = jobId
13595	c.reportworkitemstatusrequest = reportworkitemstatusrequest
13596	return c
13597}
13598
13599// Fields allows partial responses to be retrieved. See
13600// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13601// for more information.
13602func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsWorkItemsReportStatusCall {
13603	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13604	return c
13605}
13606
13607// Context sets the context to be used in this call's Do method. Any
13608// pending HTTP request will be aborted if the provided context is
13609// canceled.
13610func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) Context(ctx context.Context) *ProjectsLocationsJobsWorkItemsReportStatusCall {
13611	c.ctx_ = ctx
13612	return c
13613}
13614
13615// Header returns an http.Header that can be modified by the caller to
13616// add HTTP headers to the request.
13617func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) Header() http.Header {
13618	if c.header_ == nil {
13619		c.header_ = make(http.Header)
13620	}
13621	return c.header_
13622}
13623
13624func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) doRequest(alt string) (*http.Response, error) {
13625	reqHeaders := make(http.Header)
13626	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
13627	for k, v := range c.header_ {
13628		reqHeaders[k] = v
13629	}
13630	reqHeaders.Set("User-Agent", c.s.userAgent())
13631	var body io.Reader = nil
13632	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reportworkitemstatusrequest)
13633	if err != nil {
13634		return nil, err
13635	}
13636	reqHeaders.Set("Content-Type", "application/json")
13637	c.urlParams_.Set("alt", alt)
13638	c.urlParams_.Set("prettyPrint", "false")
13639	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus")
13640	urls += "?" + c.urlParams_.Encode()
13641	req, err := http.NewRequest("POST", urls, body)
13642	if err != nil {
13643		return nil, err
13644	}
13645	req.Header = reqHeaders
13646	googleapi.Expand(req.URL, map[string]string{
13647		"projectId": c.projectId,
13648		"location":  c.location,
13649		"jobId":     c.jobId,
13650	})
13651	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13652}
13653
13654// Do executes the "dataflow.projects.locations.jobs.workItems.reportStatus" call.
13655// Exactly one of *ReportWorkItemStatusResponse or error will be
13656// non-nil. Any non-2xx status code is an error. Response headers are in
13657// either *ReportWorkItemStatusResponse.ServerResponse.Header or (if a
13658// response was returned at all) in error.(*googleapi.Error).Header. Use
13659// googleapi.IsNotModified to check whether the returned error was
13660// because http.StatusNotModified was returned.
13661func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) Do(opts ...googleapi.CallOption) (*ReportWorkItemStatusResponse, error) {
13662	gensupport.SetOptions(c.urlParams_, opts...)
13663	res, err := c.doRequest("json")
13664	if res != nil && res.StatusCode == http.StatusNotModified {
13665		if res.Body != nil {
13666			res.Body.Close()
13667		}
13668		return nil, &googleapi.Error{
13669			Code:   res.StatusCode,
13670			Header: res.Header,
13671		}
13672	}
13673	if err != nil {
13674		return nil, err
13675	}
13676	defer googleapi.CloseBody(res)
13677	if err := googleapi.CheckResponse(res); err != nil {
13678		return nil, err
13679	}
13680	ret := &ReportWorkItemStatusResponse{
13681		ServerResponse: googleapi.ServerResponse{
13682			Header:         res.Header,
13683			HTTPStatusCode: res.StatusCode,
13684		},
13685	}
13686	target := &ret
13687	if err := gensupport.DecodeResponse(target, res); err != nil {
13688		return nil, err
13689	}
13690	return ret, nil
13691	// {
13692	//   "description": "Reports the status of dataflow WorkItems leased by a worker.",
13693	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus",
13694	//   "httpMethod": "POST",
13695	//   "id": "dataflow.projects.locations.jobs.workItems.reportStatus",
13696	//   "parameterOrder": [
13697	//     "projectId",
13698	//     "location",
13699	//     "jobId"
13700	//   ],
13701	//   "parameters": {
13702	//     "jobId": {
13703	//       "description": "The job which the WorkItem is part of.",
13704	//       "location": "path",
13705	//       "required": true,
13706	//       "type": "string"
13707	//     },
13708	//     "location": {
13709	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the WorkItem's job.",
13710	//       "location": "path",
13711	//       "required": true,
13712	//       "type": "string"
13713	//     },
13714	//     "projectId": {
13715	//       "description": "The project which owns the WorkItem's job.",
13716	//       "location": "path",
13717	//       "required": true,
13718	//       "type": "string"
13719	//     }
13720	//   },
13721	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus",
13722	//   "request": {
13723	//     "$ref": "ReportWorkItemStatusRequest"
13724	//   },
13725	//   "response": {
13726	//     "$ref": "ReportWorkItemStatusResponse"
13727	//   },
13728	//   "scopes": [
13729	//     "https://www.googleapis.com/auth/cloud-platform",
13730	//     "https://www.googleapis.com/auth/compute",
13731	//     "https://www.googleapis.com/auth/compute.readonly",
13732	//     "https://www.googleapis.com/auth/userinfo.email"
13733	//   ]
13734	// }
13735
13736}
13737
13738// method id "dataflow.projects.locations.snapshots.delete":
13739
13740type ProjectsLocationsSnapshotsDeleteCall struct {
13741	s          *Service
13742	projectId  string
13743	location   string
13744	snapshotId string
13745	urlParams_ gensupport.URLParams
13746	ctx_       context.Context
13747	header_    http.Header
13748}
13749
13750// Delete: Deletes a snapshot.
13751func (r *ProjectsLocationsSnapshotsService) Delete(projectId string, location string, snapshotId string) *ProjectsLocationsSnapshotsDeleteCall {
13752	c := &ProjectsLocationsSnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13753	c.projectId = projectId
13754	c.location = location
13755	c.snapshotId = snapshotId
13756	return c
13757}
13758
13759// Fields allows partial responses to be retrieved. See
13760// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13761// for more information.
13762func (c *ProjectsLocationsSnapshotsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsSnapshotsDeleteCall {
13763	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13764	return c
13765}
13766
13767// Context sets the context to be used in this call's Do method. Any
13768// pending HTTP request will be aborted if the provided context is
13769// canceled.
13770func (c *ProjectsLocationsSnapshotsDeleteCall) Context(ctx context.Context) *ProjectsLocationsSnapshotsDeleteCall {
13771	c.ctx_ = ctx
13772	return c
13773}
13774
13775// Header returns an http.Header that can be modified by the caller to
13776// add HTTP headers to the request.
13777func (c *ProjectsLocationsSnapshotsDeleteCall) Header() http.Header {
13778	if c.header_ == nil {
13779		c.header_ = make(http.Header)
13780	}
13781	return c.header_
13782}
13783
13784func (c *ProjectsLocationsSnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
13785	reqHeaders := make(http.Header)
13786	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
13787	for k, v := range c.header_ {
13788		reqHeaders[k] = v
13789	}
13790	reqHeaders.Set("User-Agent", c.s.userAgent())
13791	var body io.Reader = nil
13792	c.urlParams_.Set("alt", alt)
13793	c.urlParams_.Set("prettyPrint", "false")
13794	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}")
13795	urls += "?" + c.urlParams_.Encode()
13796	req, err := http.NewRequest("DELETE", urls, body)
13797	if err != nil {
13798		return nil, err
13799	}
13800	req.Header = reqHeaders
13801	googleapi.Expand(req.URL, map[string]string{
13802		"projectId":  c.projectId,
13803		"location":   c.location,
13804		"snapshotId": c.snapshotId,
13805	})
13806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13807}
13808
13809// Do executes the "dataflow.projects.locations.snapshots.delete" call.
13810// Exactly one of *DeleteSnapshotResponse or error will be non-nil. Any
13811// non-2xx status code is an error. Response headers are in either
13812// *DeleteSnapshotResponse.ServerResponse.Header or (if a response was
13813// returned at all) in error.(*googleapi.Error).Header. Use
13814// googleapi.IsNotModified to check whether the returned error was
13815// because http.StatusNotModified was returned.
13816func (c *ProjectsLocationsSnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*DeleteSnapshotResponse, error) {
13817	gensupport.SetOptions(c.urlParams_, opts...)
13818	res, err := c.doRequest("json")
13819	if res != nil && res.StatusCode == http.StatusNotModified {
13820		if res.Body != nil {
13821			res.Body.Close()
13822		}
13823		return nil, &googleapi.Error{
13824			Code:   res.StatusCode,
13825			Header: res.Header,
13826		}
13827	}
13828	if err != nil {
13829		return nil, err
13830	}
13831	defer googleapi.CloseBody(res)
13832	if err := googleapi.CheckResponse(res); err != nil {
13833		return nil, err
13834	}
13835	ret := &DeleteSnapshotResponse{
13836		ServerResponse: googleapi.ServerResponse{
13837			Header:         res.Header,
13838			HTTPStatusCode: res.StatusCode,
13839		},
13840	}
13841	target := &ret
13842	if err := gensupport.DecodeResponse(target, res); err != nil {
13843		return nil, err
13844	}
13845	return ret, nil
13846	// {
13847	//   "description": "Deletes a snapshot.",
13848	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}",
13849	//   "httpMethod": "DELETE",
13850	//   "id": "dataflow.projects.locations.snapshots.delete",
13851	//   "parameterOrder": [
13852	//     "projectId",
13853	//     "location",
13854	//     "snapshotId"
13855	//   ],
13856	//   "parameters": {
13857	//     "location": {
13858	//       "description": "The location that contains this snapshot.",
13859	//       "location": "path",
13860	//       "required": true,
13861	//       "type": "string"
13862	//     },
13863	//     "projectId": {
13864	//       "description": "The ID of the Cloud Platform project that the snapshot belongs to.",
13865	//       "location": "path",
13866	//       "required": true,
13867	//       "type": "string"
13868	//     },
13869	//     "snapshotId": {
13870	//       "description": "The ID of the snapshot.",
13871	//       "location": "path",
13872	//       "required": true,
13873	//       "type": "string"
13874	//     }
13875	//   },
13876	//   "path": "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}",
13877	//   "response": {
13878	//     "$ref": "DeleteSnapshotResponse"
13879	//   },
13880	//   "scopes": [
13881	//     "https://www.googleapis.com/auth/cloud-platform",
13882	//     "https://www.googleapis.com/auth/compute",
13883	//     "https://www.googleapis.com/auth/compute.readonly",
13884	//     "https://www.googleapis.com/auth/userinfo.email"
13885	//   ]
13886	// }
13887
13888}
13889
13890// method id "dataflow.projects.locations.snapshots.get":
13891
13892type ProjectsLocationsSnapshotsGetCall struct {
13893	s            *Service
13894	projectId    string
13895	location     string
13896	snapshotId   string
13897	urlParams_   gensupport.URLParams
13898	ifNoneMatch_ string
13899	ctx_         context.Context
13900	header_      http.Header
13901}
13902
13903// Get: Gets information about a snapshot.
13904func (r *ProjectsLocationsSnapshotsService) Get(projectId string, location string, snapshotId string) *ProjectsLocationsSnapshotsGetCall {
13905	c := &ProjectsLocationsSnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13906	c.projectId = projectId
13907	c.location = location
13908	c.snapshotId = snapshotId
13909	return c
13910}
13911
13912// Fields allows partial responses to be retrieved. See
13913// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13914// for more information.
13915func (c *ProjectsLocationsSnapshotsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsSnapshotsGetCall {
13916	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13917	return c
13918}
13919
13920// IfNoneMatch sets the optional parameter which makes the operation
13921// fail if the object's ETag matches the given value. This is useful for
13922// getting updates only after the object has changed since the last
13923// request. Use googleapi.IsNotModified to check whether the response
13924// error from Do is the result of In-None-Match.
13925func (c *ProjectsLocationsSnapshotsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsSnapshotsGetCall {
13926	c.ifNoneMatch_ = entityTag
13927	return c
13928}
13929
13930// Context sets the context to be used in this call's Do method. Any
13931// pending HTTP request will be aborted if the provided context is
13932// canceled.
13933func (c *ProjectsLocationsSnapshotsGetCall) Context(ctx context.Context) *ProjectsLocationsSnapshotsGetCall {
13934	c.ctx_ = ctx
13935	return c
13936}
13937
13938// Header returns an http.Header that can be modified by the caller to
13939// add HTTP headers to the request.
13940func (c *ProjectsLocationsSnapshotsGetCall) Header() http.Header {
13941	if c.header_ == nil {
13942		c.header_ = make(http.Header)
13943	}
13944	return c.header_
13945}
13946
13947func (c *ProjectsLocationsSnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
13948	reqHeaders := make(http.Header)
13949	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
13950	for k, v := range c.header_ {
13951		reqHeaders[k] = v
13952	}
13953	reqHeaders.Set("User-Agent", c.s.userAgent())
13954	if c.ifNoneMatch_ != "" {
13955		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13956	}
13957	var body io.Reader = nil
13958	c.urlParams_.Set("alt", alt)
13959	c.urlParams_.Set("prettyPrint", "false")
13960	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}")
13961	urls += "?" + c.urlParams_.Encode()
13962	req, err := http.NewRequest("GET", urls, body)
13963	if err != nil {
13964		return nil, err
13965	}
13966	req.Header = reqHeaders
13967	googleapi.Expand(req.URL, map[string]string{
13968		"projectId":  c.projectId,
13969		"location":   c.location,
13970		"snapshotId": c.snapshotId,
13971	})
13972	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13973}
13974
13975// Do executes the "dataflow.projects.locations.snapshots.get" call.
13976// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
13977// code is an error. Response headers are in either
13978// *Snapshot.ServerResponse.Header or (if a response was returned at
13979// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
13980// to check whether the returned error was because
13981// http.StatusNotModified was returned.
13982func (c *ProjectsLocationsSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
13983	gensupport.SetOptions(c.urlParams_, opts...)
13984	res, err := c.doRequest("json")
13985	if res != nil && res.StatusCode == http.StatusNotModified {
13986		if res.Body != nil {
13987			res.Body.Close()
13988		}
13989		return nil, &googleapi.Error{
13990			Code:   res.StatusCode,
13991			Header: res.Header,
13992		}
13993	}
13994	if err != nil {
13995		return nil, err
13996	}
13997	defer googleapi.CloseBody(res)
13998	if err := googleapi.CheckResponse(res); err != nil {
13999		return nil, err
14000	}
14001	ret := &Snapshot{
14002		ServerResponse: googleapi.ServerResponse{
14003			Header:         res.Header,
14004			HTTPStatusCode: res.StatusCode,
14005		},
14006	}
14007	target := &ret
14008	if err := gensupport.DecodeResponse(target, res); err != nil {
14009		return nil, err
14010	}
14011	return ret, nil
14012	// {
14013	//   "description": "Gets information about a snapshot.",
14014	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}",
14015	//   "httpMethod": "GET",
14016	//   "id": "dataflow.projects.locations.snapshots.get",
14017	//   "parameterOrder": [
14018	//     "projectId",
14019	//     "location",
14020	//     "snapshotId"
14021	//   ],
14022	//   "parameters": {
14023	//     "location": {
14024	//       "description": "The location that contains this snapshot.",
14025	//       "location": "path",
14026	//       "required": true,
14027	//       "type": "string"
14028	//     },
14029	//     "projectId": {
14030	//       "description": "The ID of the Cloud Platform project that the snapshot belongs to.",
14031	//       "location": "path",
14032	//       "required": true,
14033	//       "type": "string"
14034	//     },
14035	//     "snapshotId": {
14036	//       "description": "The ID of the snapshot.",
14037	//       "location": "path",
14038	//       "required": true,
14039	//       "type": "string"
14040	//     }
14041	//   },
14042	//   "path": "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}",
14043	//   "response": {
14044	//     "$ref": "Snapshot"
14045	//   },
14046	//   "scopes": [
14047	//     "https://www.googleapis.com/auth/cloud-platform",
14048	//     "https://www.googleapis.com/auth/compute",
14049	//     "https://www.googleapis.com/auth/compute.readonly",
14050	//     "https://www.googleapis.com/auth/userinfo.email"
14051	//   ]
14052	// }
14053
14054}
14055
14056// method id "dataflow.projects.locations.snapshots.list":
14057
14058type ProjectsLocationsSnapshotsListCall struct {
14059	s            *Service
14060	projectId    string
14061	location     string
14062	urlParams_   gensupport.URLParams
14063	ifNoneMatch_ string
14064	ctx_         context.Context
14065	header_      http.Header
14066}
14067
14068// List: Lists snapshots.
14069func (r *ProjectsLocationsSnapshotsService) List(projectId string, location string) *ProjectsLocationsSnapshotsListCall {
14070	c := &ProjectsLocationsSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14071	c.projectId = projectId
14072	c.location = location
14073	return c
14074}
14075
14076// JobId sets the optional parameter "jobId": If specified, list
14077// snapshots created from this job.
14078func (c *ProjectsLocationsSnapshotsListCall) JobId(jobId string) *ProjectsLocationsSnapshotsListCall {
14079	c.urlParams_.Set("jobId", jobId)
14080	return c
14081}
14082
14083// Fields allows partial responses to be retrieved. See
14084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14085// for more information.
14086func (c *ProjectsLocationsSnapshotsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsSnapshotsListCall {
14087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14088	return c
14089}
14090
14091// IfNoneMatch sets the optional parameter which makes the operation
14092// fail if the object's ETag matches the given value. This is useful for
14093// getting updates only after the object has changed since the last
14094// request. Use googleapi.IsNotModified to check whether the response
14095// error from Do is the result of In-None-Match.
14096func (c *ProjectsLocationsSnapshotsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsSnapshotsListCall {
14097	c.ifNoneMatch_ = entityTag
14098	return c
14099}
14100
14101// Context sets the context to be used in this call's Do method. Any
14102// pending HTTP request will be aborted if the provided context is
14103// canceled.
14104func (c *ProjectsLocationsSnapshotsListCall) Context(ctx context.Context) *ProjectsLocationsSnapshotsListCall {
14105	c.ctx_ = ctx
14106	return c
14107}
14108
14109// Header returns an http.Header that can be modified by the caller to
14110// add HTTP headers to the request.
14111func (c *ProjectsLocationsSnapshotsListCall) Header() http.Header {
14112	if c.header_ == nil {
14113		c.header_ = make(http.Header)
14114	}
14115	return c.header_
14116}
14117
14118func (c *ProjectsLocationsSnapshotsListCall) doRequest(alt string) (*http.Response, error) {
14119	reqHeaders := make(http.Header)
14120	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
14121	for k, v := range c.header_ {
14122		reqHeaders[k] = v
14123	}
14124	reqHeaders.Set("User-Agent", c.s.userAgent())
14125	if c.ifNoneMatch_ != "" {
14126		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14127	}
14128	var body io.Reader = nil
14129	c.urlParams_.Set("alt", alt)
14130	c.urlParams_.Set("prettyPrint", "false")
14131	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/snapshots")
14132	urls += "?" + c.urlParams_.Encode()
14133	req, err := http.NewRequest("GET", urls, body)
14134	if err != nil {
14135		return nil, err
14136	}
14137	req.Header = reqHeaders
14138	googleapi.Expand(req.URL, map[string]string{
14139		"projectId": c.projectId,
14140		"location":  c.location,
14141	})
14142	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14143}
14144
14145// Do executes the "dataflow.projects.locations.snapshots.list" call.
14146// Exactly one of *ListSnapshotsResponse or error will be non-nil. Any
14147// non-2xx status code is an error. Response headers are in either
14148// *ListSnapshotsResponse.ServerResponse.Header or (if a response was
14149// returned at all) in error.(*googleapi.Error).Header. Use
14150// googleapi.IsNotModified to check whether the returned error was
14151// because http.StatusNotModified was returned.
14152func (c *ProjectsLocationsSnapshotsListCall) Do(opts ...googleapi.CallOption) (*ListSnapshotsResponse, error) {
14153	gensupport.SetOptions(c.urlParams_, opts...)
14154	res, err := c.doRequest("json")
14155	if res != nil && res.StatusCode == http.StatusNotModified {
14156		if res.Body != nil {
14157			res.Body.Close()
14158		}
14159		return nil, &googleapi.Error{
14160			Code:   res.StatusCode,
14161			Header: res.Header,
14162		}
14163	}
14164	if err != nil {
14165		return nil, err
14166	}
14167	defer googleapi.CloseBody(res)
14168	if err := googleapi.CheckResponse(res); err != nil {
14169		return nil, err
14170	}
14171	ret := &ListSnapshotsResponse{
14172		ServerResponse: googleapi.ServerResponse{
14173			Header:         res.Header,
14174			HTTPStatusCode: res.StatusCode,
14175		},
14176	}
14177	target := &ret
14178	if err := gensupport.DecodeResponse(target, res); err != nil {
14179		return nil, err
14180	}
14181	return ret, nil
14182	// {
14183	//   "description": "Lists snapshots.",
14184	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/snapshots",
14185	//   "httpMethod": "GET",
14186	//   "id": "dataflow.projects.locations.snapshots.list",
14187	//   "parameterOrder": [
14188	//     "projectId",
14189	//     "location"
14190	//   ],
14191	//   "parameters": {
14192	//     "jobId": {
14193	//       "description": "If specified, list snapshots created from this job.",
14194	//       "location": "query",
14195	//       "type": "string"
14196	//     },
14197	//     "location": {
14198	//       "description": "The location to list snapshots in.",
14199	//       "location": "path",
14200	//       "required": true,
14201	//       "type": "string"
14202	//     },
14203	//     "projectId": {
14204	//       "description": "The project ID to list snapshots for.",
14205	//       "location": "path",
14206	//       "required": true,
14207	//       "type": "string"
14208	//     }
14209	//   },
14210	//   "path": "v1b3/projects/{projectId}/locations/{location}/snapshots",
14211	//   "response": {
14212	//     "$ref": "ListSnapshotsResponse"
14213	//   },
14214	//   "scopes": [
14215	//     "https://www.googleapis.com/auth/cloud-platform",
14216	//     "https://www.googleapis.com/auth/compute",
14217	//     "https://www.googleapis.com/auth/compute.readonly",
14218	//     "https://www.googleapis.com/auth/userinfo.email"
14219	//   ]
14220	// }
14221
14222}
14223
14224// method id "dataflow.projects.locations.sql.validate":
14225
14226type ProjectsLocationsSqlValidateCall struct {
14227	s            *Service
14228	projectId    string
14229	location     string
14230	urlParams_   gensupport.URLParams
14231	ifNoneMatch_ string
14232	ctx_         context.Context
14233	header_      http.Header
14234}
14235
14236// Validate: Validates a GoogleSQL query for Cloud Dataflow syntax. Will
14237// always confirm the given query parses correctly, and if able to look
14238// up schema information from DataCatalog, will validate that the query
14239// analyzes properly as well.
14240func (r *ProjectsLocationsSqlService) Validate(projectId string, location string) *ProjectsLocationsSqlValidateCall {
14241	c := &ProjectsLocationsSqlValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14242	c.projectId = projectId
14243	c.location = location
14244	return c
14245}
14246
14247// Query sets the optional parameter "query": The sql query to validate.
14248func (c *ProjectsLocationsSqlValidateCall) Query(query string) *ProjectsLocationsSqlValidateCall {
14249	c.urlParams_.Set("query", query)
14250	return c
14251}
14252
14253// Fields allows partial responses to be retrieved. See
14254// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14255// for more information.
14256func (c *ProjectsLocationsSqlValidateCall) Fields(s ...googleapi.Field) *ProjectsLocationsSqlValidateCall {
14257	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14258	return c
14259}
14260
14261// IfNoneMatch sets the optional parameter which makes the operation
14262// fail if the object's ETag matches the given value. This is useful for
14263// getting updates only after the object has changed since the last
14264// request. Use googleapi.IsNotModified to check whether the response
14265// error from Do is the result of In-None-Match.
14266func (c *ProjectsLocationsSqlValidateCall) IfNoneMatch(entityTag string) *ProjectsLocationsSqlValidateCall {
14267	c.ifNoneMatch_ = entityTag
14268	return c
14269}
14270
14271// Context sets the context to be used in this call's Do method. Any
14272// pending HTTP request will be aborted if the provided context is
14273// canceled.
14274func (c *ProjectsLocationsSqlValidateCall) Context(ctx context.Context) *ProjectsLocationsSqlValidateCall {
14275	c.ctx_ = ctx
14276	return c
14277}
14278
14279// Header returns an http.Header that can be modified by the caller to
14280// add HTTP headers to the request.
14281func (c *ProjectsLocationsSqlValidateCall) Header() http.Header {
14282	if c.header_ == nil {
14283		c.header_ = make(http.Header)
14284	}
14285	return c.header_
14286}
14287
14288func (c *ProjectsLocationsSqlValidateCall) doRequest(alt string) (*http.Response, error) {
14289	reqHeaders := make(http.Header)
14290	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
14291	for k, v := range c.header_ {
14292		reqHeaders[k] = v
14293	}
14294	reqHeaders.Set("User-Agent", c.s.userAgent())
14295	if c.ifNoneMatch_ != "" {
14296		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14297	}
14298	var body io.Reader = nil
14299	c.urlParams_.Set("alt", alt)
14300	c.urlParams_.Set("prettyPrint", "false")
14301	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/sql:validate")
14302	urls += "?" + c.urlParams_.Encode()
14303	req, err := http.NewRequest("GET", urls, body)
14304	if err != nil {
14305		return nil, err
14306	}
14307	req.Header = reqHeaders
14308	googleapi.Expand(req.URL, map[string]string{
14309		"projectId": c.projectId,
14310		"location":  c.location,
14311	})
14312	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14313}
14314
14315// Do executes the "dataflow.projects.locations.sql.validate" call.
14316// Exactly one of *ValidateResponse or error will be non-nil. Any
14317// non-2xx status code is an error. Response headers are in either
14318// *ValidateResponse.ServerResponse.Header or (if a response was
14319// returned at all) in error.(*googleapi.Error).Header. Use
14320// googleapi.IsNotModified to check whether the returned error was
14321// because http.StatusNotModified was returned.
14322func (c *ProjectsLocationsSqlValidateCall) Do(opts ...googleapi.CallOption) (*ValidateResponse, error) {
14323	gensupport.SetOptions(c.urlParams_, opts...)
14324	res, err := c.doRequest("json")
14325	if res != nil && res.StatusCode == http.StatusNotModified {
14326		if res.Body != nil {
14327			res.Body.Close()
14328		}
14329		return nil, &googleapi.Error{
14330			Code:   res.StatusCode,
14331			Header: res.Header,
14332		}
14333	}
14334	if err != nil {
14335		return nil, err
14336	}
14337	defer googleapi.CloseBody(res)
14338	if err := googleapi.CheckResponse(res); err != nil {
14339		return nil, err
14340	}
14341	ret := &ValidateResponse{
14342		ServerResponse: googleapi.ServerResponse{
14343			Header:         res.Header,
14344			HTTPStatusCode: res.StatusCode,
14345		},
14346	}
14347	target := &ret
14348	if err := gensupport.DecodeResponse(target, res); err != nil {
14349		return nil, err
14350	}
14351	return ret, nil
14352	// {
14353	//   "description": "Validates a GoogleSQL query for Cloud Dataflow syntax. Will always confirm the given query parses correctly, and if able to look up schema information from DataCatalog, will validate that the query analyzes properly as well.",
14354	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/sql:validate",
14355	//   "httpMethod": "GET",
14356	//   "id": "dataflow.projects.locations.sql.validate",
14357	//   "parameterOrder": [
14358	//     "projectId",
14359	//     "location"
14360	//   ],
14361	//   "parameters": {
14362	//     "location": {
14363	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.",
14364	//       "location": "path",
14365	//       "required": true,
14366	//       "type": "string"
14367	//     },
14368	//     "projectId": {
14369	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
14370	//       "location": "path",
14371	//       "required": true,
14372	//       "type": "string"
14373	//     },
14374	//     "query": {
14375	//       "description": "The sql query to validate.",
14376	//       "location": "query",
14377	//       "type": "string"
14378	//     }
14379	//   },
14380	//   "path": "v1b3/projects/{projectId}/locations/{location}/sql:validate",
14381	//   "response": {
14382	//     "$ref": "ValidateResponse"
14383	//   },
14384	//   "scopes": [
14385	//     "https://www.googleapis.com/auth/cloud-platform",
14386	//     "https://www.googleapis.com/auth/userinfo.email"
14387	//   ]
14388	// }
14389
14390}
14391
14392// method id "dataflow.projects.locations.templates.create":
14393
14394type ProjectsLocationsTemplatesCreateCall struct {
14395	s                            *Service
14396	projectId                    string
14397	location                     string
14398	createjobfromtemplaterequest *CreateJobFromTemplateRequest
14399	urlParams_                   gensupport.URLParams
14400	ctx_                         context.Context
14401	header_                      http.Header
14402}
14403
14404// Create: Creates a Cloud Dataflow job from a template.
14405func (r *ProjectsLocationsTemplatesService) Create(projectId string, location string, createjobfromtemplaterequest *CreateJobFromTemplateRequest) *ProjectsLocationsTemplatesCreateCall {
14406	c := &ProjectsLocationsTemplatesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14407	c.projectId = projectId
14408	c.location = location
14409	c.createjobfromtemplaterequest = createjobfromtemplaterequest
14410	return c
14411}
14412
14413// Fields allows partial responses to be retrieved. See
14414// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14415// for more information.
14416func (c *ProjectsLocationsTemplatesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsTemplatesCreateCall {
14417	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14418	return c
14419}
14420
14421// Context sets the context to be used in this call's Do method. Any
14422// pending HTTP request will be aborted if the provided context is
14423// canceled.
14424func (c *ProjectsLocationsTemplatesCreateCall) Context(ctx context.Context) *ProjectsLocationsTemplatesCreateCall {
14425	c.ctx_ = ctx
14426	return c
14427}
14428
14429// Header returns an http.Header that can be modified by the caller to
14430// add HTTP headers to the request.
14431func (c *ProjectsLocationsTemplatesCreateCall) Header() http.Header {
14432	if c.header_ == nil {
14433		c.header_ = make(http.Header)
14434	}
14435	return c.header_
14436}
14437
14438func (c *ProjectsLocationsTemplatesCreateCall) doRequest(alt string) (*http.Response, error) {
14439	reqHeaders := make(http.Header)
14440	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
14441	for k, v := range c.header_ {
14442		reqHeaders[k] = v
14443	}
14444	reqHeaders.Set("User-Agent", c.s.userAgent())
14445	var body io.Reader = nil
14446	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createjobfromtemplaterequest)
14447	if err != nil {
14448		return nil, err
14449	}
14450	reqHeaders.Set("Content-Type", "application/json")
14451	c.urlParams_.Set("alt", alt)
14452	c.urlParams_.Set("prettyPrint", "false")
14453	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/templates")
14454	urls += "?" + c.urlParams_.Encode()
14455	req, err := http.NewRequest("POST", urls, body)
14456	if err != nil {
14457		return nil, err
14458	}
14459	req.Header = reqHeaders
14460	googleapi.Expand(req.URL, map[string]string{
14461		"projectId": c.projectId,
14462		"location":  c.location,
14463	})
14464	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14465}
14466
14467// Do executes the "dataflow.projects.locations.templates.create" call.
14468// Exactly one of *Job or error will be non-nil. Any non-2xx status code
14469// is an error. Response headers are in either
14470// *Job.ServerResponse.Header or (if a response was returned at all) in
14471// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
14472// whether the returned error was because http.StatusNotModified was
14473// returned.
14474func (c *ProjectsLocationsTemplatesCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
14475	gensupport.SetOptions(c.urlParams_, opts...)
14476	res, err := c.doRequest("json")
14477	if res != nil && res.StatusCode == http.StatusNotModified {
14478		if res.Body != nil {
14479			res.Body.Close()
14480		}
14481		return nil, &googleapi.Error{
14482			Code:   res.StatusCode,
14483			Header: res.Header,
14484		}
14485	}
14486	if err != nil {
14487		return nil, err
14488	}
14489	defer googleapi.CloseBody(res)
14490	if err := googleapi.CheckResponse(res); err != nil {
14491		return nil, err
14492	}
14493	ret := &Job{
14494		ServerResponse: googleapi.ServerResponse{
14495			Header:         res.Header,
14496			HTTPStatusCode: res.StatusCode,
14497		},
14498	}
14499	target := &ret
14500	if err := gensupport.DecodeResponse(target, res); err != nil {
14501		return nil, err
14502	}
14503	return ret, nil
14504	// {
14505	//   "description": "Creates a Cloud Dataflow job from a template.",
14506	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates",
14507	//   "httpMethod": "POST",
14508	//   "id": "dataflow.projects.locations.templates.create",
14509	//   "parameterOrder": [
14510	//     "projectId",
14511	//     "location"
14512	//   ],
14513	//   "parameters": {
14514	//     "location": {
14515	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.",
14516	//       "location": "path",
14517	//       "required": true,
14518	//       "type": "string"
14519	//     },
14520	//     "projectId": {
14521	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
14522	//       "location": "path",
14523	//       "required": true,
14524	//       "type": "string"
14525	//     }
14526	//   },
14527	//   "path": "v1b3/projects/{projectId}/locations/{location}/templates",
14528	//   "request": {
14529	//     "$ref": "CreateJobFromTemplateRequest"
14530	//   },
14531	//   "response": {
14532	//     "$ref": "Job"
14533	//   },
14534	//   "scopes": [
14535	//     "https://www.googleapis.com/auth/cloud-platform",
14536	//     "https://www.googleapis.com/auth/compute",
14537	//     "https://www.googleapis.com/auth/compute.readonly",
14538	//     "https://www.googleapis.com/auth/userinfo.email"
14539	//   ]
14540	// }
14541
14542}
14543
14544// method id "dataflow.projects.locations.templates.get":
14545
14546type ProjectsLocationsTemplatesGetCall struct {
14547	s            *Service
14548	projectId    string
14549	location     string
14550	urlParams_   gensupport.URLParams
14551	ifNoneMatch_ string
14552	ctx_         context.Context
14553	header_      http.Header
14554}
14555
14556// Get: Get the template associated with a template.
14557func (r *ProjectsLocationsTemplatesService) Get(projectId string, location string) *ProjectsLocationsTemplatesGetCall {
14558	c := &ProjectsLocationsTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14559	c.projectId = projectId
14560	c.location = location
14561	return c
14562}
14563
14564// GcsPath sets the optional parameter "gcsPath": Required. A Cloud
14565// Storage path to the template from which to create the job. Must be
14566// valid Cloud Storage URL, beginning with 'gs://'.
14567func (c *ProjectsLocationsTemplatesGetCall) GcsPath(gcsPath string) *ProjectsLocationsTemplatesGetCall {
14568	c.urlParams_.Set("gcsPath", gcsPath)
14569	return c
14570}
14571
14572// View sets the optional parameter "view": The view to retrieve.
14573// Defaults to METADATA_ONLY.
14574//
14575// Possible values:
14576//   "METADATA_ONLY" - Template view that retrieves only the metadata
14577// associated with the template.
14578func (c *ProjectsLocationsTemplatesGetCall) View(view string) *ProjectsLocationsTemplatesGetCall {
14579	c.urlParams_.Set("view", view)
14580	return c
14581}
14582
14583// Fields allows partial responses to be retrieved. See
14584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14585// for more information.
14586func (c *ProjectsLocationsTemplatesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsTemplatesGetCall {
14587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14588	return c
14589}
14590
14591// IfNoneMatch sets the optional parameter which makes the operation
14592// fail if the object's ETag matches the given value. This is useful for
14593// getting updates only after the object has changed since the last
14594// request. Use googleapi.IsNotModified to check whether the response
14595// error from Do is the result of In-None-Match.
14596func (c *ProjectsLocationsTemplatesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsTemplatesGetCall {
14597	c.ifNoneMatch_ = entityTag
14598	return c
14599}
14600
14601// Context sets the context to be used in this call's Do method. Any
14602// pending HTTP request will be aborted if the provided context is
14603// canceled.
14604func (c *ProjectsLocationsTemplatesGetCall) Context(ctx context.Context) *ProjectsLocationsTemplatesGetCall {
14605	c.ctx_ = ctx
14606	return c
14607}
14608
14609// Header returns an http.Header that can be modified by the caller to
14610// add HTTP headers to the request.
14611func (c *ProjectsLocationsTemplatesGetCall) Header() http.Header {
14612	if c.header_ == nil {
14613		c.header_ = make(http.Header)
14614	}
14615	return c.header_
14616}
14617
14618func (c *ProjectsLocationsTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
14619	reqHeaders := make(http.Header)
14620	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
14621	for k, v := range c.header_ {
14622		reqHeaders[k] = v
14623	}
14624	reqHeaders.Set("User-Agent", c.s.userAgent())
14625	if c.ifNoneMatch_ != "" {
14626		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14627	}
14628	var body io.Reader = nil
14629	c.urlParams_.Set("alt", alt)
14630	c.urlParams_.Set("prettyPrint", "false")
14631	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/templates:get")
14632	urls += "?" + c.urlParams_.Encode()
14633	req, err := http.NewRequest("GET", urls, body)
14634	if err != nil {
14635		return nil, err
14636	}
14637	req.Header = reqHeaders
14638	googleapi.Expand(req.URL, map[string]string{
14639		"projectId": c.projectId,
14640		"location":  c.location,
14641	})
14642	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14643}
14644
14645// Do executes the "dataflow.projects.locations.templates.get" call.
14646// Exactly one of *GetTemplateResponse or error will be non-nil. Any
14647// non-2xx status code is an error. Response headers are in either
14648// *GetTemplateResponse.ServerResponse.Header or (if a response was
14649// returned at all) in error.(*googleapi.Error).Header. Use
14650// googleapi.IsNotModified to check whether the returned error was
14651// because http.StatusNotModified was returned.
14652func (c *ProjectsLocationsTemplatesGetCall) Do(opts ...googleapi.CallOption) (*GetTemplateResponse, error) {
14653	gensupport.SetOptions(c.urlParams_, opts...)
14654	res, err := c.doRequest("json")
14655	if res != nil && res.StatusCode == http.StatusNotModified {
14656		if res.Body != nil {
14657			res.Body.Close()
14658		}
14659		return nil, &googleapi.Error{
14660			Code:   res.StatusCode,
14661			Header: res.Header,
14662		}
14663	}
14664	if err != nil {
14665		return nil, err
14666	}
14667	defer googleapi.CloseBody(res)
14668	if err := googleapi.CheckResponse(res); err != nil {
14669		return nil, err
14670	}
14671	ret := &GetTemplateResponse{
14672		ServerResponse: googleapi.ServerResponse{
14673			Header:         res.Header,
14674			HTTPStatusCode: res.StatusCode,
14675		},
14676	}
14677	target := &ret
14678	if err := gensupport.DecodeResponse(target, res); err != nil {
14679		return nil, err
14680	}
14681	return ret, nil
14682	// {
14683	//   "description": "Get the template associated with a template.",
14684	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates:get",
14685	//   "httpMethod": "GET",
14686	//   "id": "dataflow.projects.locations.templates.get",
14687	//   "parameterOrder": [
14688	//     "projectId",
14689	//     "location"
14690	//   ],
14691	//   "parameters": {
14692	//     "gcsPath": {
14693	//       "description": "Required. A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.",
14694	//       "location": "query",
14695	//       "type": "string"
14696	//     },
14697	//     "location": {
14698	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.",
14699	//       "location": "path",
14700	//       "required": true,
14701	//       "type": "string"
14702	//     },
14703	//     "projectId": {
14704	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
14705	//       "location": "path",
14706	//       "required": true,
14707	//       "type": "string"
14708	//     },
14709	//     "view": {
14710	//       "description": "The view to retrieve. Defaults to METADATA_ONLY.",
14711	//       "enum": [
14712	//         "METADATA_ONLY"
14713	//       ],
14714	//       "enumDescriptions": [
14715	//         "Template view that retrieves only the metadata associated with the template."
14716	//       ],
14717	//       "location": "query",
14718	//       "type": "string"
14719	//     }
14720	//   },
14721	//   "path": "v1b3/projects/{projectId}/locations/{location}/templates:get",
14722	//   "response": {
14723	//     "$ref": "GetTemplateResponse"
14724	//   },
14725	//   "scopes": [
14726	//     "https://www.googleapis.com/auth/cloud-platform",
14727	//     "https://www.googleapis.com/auth/compute",
14728	//     "https://www.googleapis.com/auth/compute.readonly",
14729	//     "https://www.googleapis.com/auth/userinfo.email"
14730	//   ]
14731	// }
14732
14733}
14734
14735// method id "dataflow.projects.locations.templates.launch":
14736
14737type ProjectsLocationsTemplatesLaunchCall struct {
14738	s                        *Service
14739	projectId                string
14740	location                 string
14741	launchtemplateparameters *LaunchTemplateParameters
14742	urlParams_               gensupport.URLParams
14743	ctx_                     context.Context
14744	header_                  http.Header
14745}
14746
14747// Launch: Launch a template.
14748func (r *ProjectsLocationsTemplatesService) Launch(projectId string, location string, launchtemplateparameters *LaunchTemplateParameters) *ProjectsLocationsTemplatesLaunchCall {
14749	c := &ProjectsLocationsTemplatesLaunchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14750	c.projectId = projectId
14751	c.location = location
14752	c.launchtemplateparameters = launchtemplateparameters
14753	return c
14754}
14755
14756// DynamicTemplateGcsPath sets the optional parameter
14757// "dynamicTemplate.gcsPath": Path to dynamic template spec file on GCS.
14758// The file must be a Json serialized DynamicTemplateFieSpec object.
14759func (c *ProjectsLocationsTemplatesLaunchCall) DynamicTemplateGcsPath(dynamicTemplateGcsPath string) *ProjectsLocationsTemplatesLaunchCall {
14760	c.urlParams_.Set("dynamicTemplate.gcsPath", dynamicTemplateGcsPath)
14761	return c
14762}
14763
14764// DynamicTemplateStagingLocation sets the optional parameter
14765// "dynamicTemplate.stagingLocation": Cloud Storage path for staging
14766// dependencies. Must be a valid Cloud Storage URL, beginning with
14767// `gs://`.
14768func (c *ProjectsLocationsTemplatesLaunchCall) DynamicTemplateStagingLocation(dynamicTemplateStagingLocation string) *ProjectsLocationsTemplatesLaunchCall {
14769	c.urlParams_.Set("dynamicTemplate.stagingLocation", dynamicTemplateStagingLocation)
14770	return c
14771}
14772
14773// GcsPath sets the optional parameter "gcsPath": A Cloud Storage path
14774// to the template from which to create the job. Must be valid Cloud
14775// Storage URL, beginning with 'gs://'.
14776func (c *ProjectsLocationsTemplatesLaunchCall) GcsPath(gcsPath string) *ProjectsLocationsTemplatesLaunchCall {
14777	c.urlParams_.Set("gcsPath", gcsPath)
14778	return c
14779}
14780
14781// ValidateOnly sets the optional parameter "validateOnly": If true, the
14782// request is validated but not actually executed. Defaults to false.
14783func (c *ProjectsLocationsTemplatesLaunchCall) ValidateOnly(validateOnly bool) *ProjectsLocationsTemplatesLaunchCall {
14784	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
14785	return c
14786}
14787
14788// Fields allows partial responses to be retrieved. See
14789// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14790// for more information.
14791func (c *ProjectsLocationsTemplatesLaunchCall) Fields(s ...googleapi.Field) *ProjectsLocationsTemplatesLaunchCall {
14792	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14793	return c
14794}
14795
14796// Context sets the context to be used in this call's Do method. Any
14797// pending HTTP request will be aborted if the provided context is
14798// canceled.
14799func (c *ProjectsLocationsTemplatesLaunchCall) Context(ctx context.Context) *ProjectsLocationsTemplatesLaunchCall {
14800	c.ctx_ = ctx
14801	return c
14802}
14803
14804// Header returns an http.Header that can be modified by the caller to
14805// add HTTP headers to the request.
14806func (c *ProjectsLocationsTemplatesLaunchCall) Header() http.Header {
14807	if c.header_ == nil {
14808		c.header_ = make(http.Header)
14809	}
14810	return c.header_
14811}
14812
14813func (c *ProjectsLocationsTemplatesLaunchCall) doRequest(alt string) (*http.Response, error) {
14814	reqHeaders := make(http.Header)
14815	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
14816	for k, v := range c.header_ {
14817		reqHeaders[k] = v
14818	}
14819	reqHeaders.Set("User-Agent", c.s.userAgent())
14820	var body io.Reader = nil
14821	body, err := googleapi.WithoutDataWrapper.JSONReader(c.launchtemplateparameters)
14822	if err != nil {
14823		return nil, err
14824	}
14825	reqHeaders.Set("Content-Type", "application/json")
14826	c.urlParams_.Set("alt", alt)
14827	c.urlParams_.Set("prettyPrint", "false")
14828	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/templates:launch")
14829	urls += "?" + c.urlParams_.Encode()
14830	req, err := http.NewRequest("POST", urls, body)
14831	if err != nil {
14832		return nil, err
14833	}
14834	req.Header = reqHeaders
14835	googleapi.Expand(req.URL, map[string]string{
14836		"projectId": c.projectId,
14837		"location":  c.location,
14838	})
14839	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14840}
14841
14842// Do executes the "dataflow.projects.locations.templates.launch" call.
14843// Exactly one of *LaunchTemplateResponse or error will be non-nil. Any
14844// non-2xx status code is an error. Response headers are in either
14845// *LaunchTemplateResponse.ServerResponse.Header or (if a response was
14846// returned at all) in error.(*googleapi.Error).Header. Use
14847// googleapi.IsNotModified to check whether the returned error was
14848// because http.StatusNotModified was returned.
14849func (c *ProjectsLocationsTemplatesLaunchCall) Do(opts ...googleapi.CallOption) (*LaunchTemplateResponse, error) {
14850	gensupport.SetOptions(c.urlParams_, opts...)
14851	res, err := c.doRequest("json")
14852	if res != nil && res.StatusCode == http.StatusNotModified {
14853		if res.Body != nil {
14854			res.Body.Close()
14855		}
14856		return nil, &googleapi.Error{
14857			Code:   res.StatusCode,
14858			Header: res.Header,
14859		}
14860	}
14861	if err != nil {
14862		return nil, err
14863	}
14864	defer googleapi.CloseBody(res)
14865	if err := googleapi.CheckResponse(res); err != nil {
14866		return nil, err
14867	}
14868	ret := &LaunchTemplateResponse{
14869		ServerResponse: googleapi.ServerResponse{
14870			Header:         res.Header,
14871			HTTPStatusCode: res.StatusCode,
14872		},
14873	}
14874	target := &ret
14875	if err := gensupport.DecodeResponse(target, res); err != nil {
14876		return nil, err
14877	}
14878	return ret, nil
14879	// {
14880	//   "description": "Launch a template.",
14881	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates:launch",
14882	//   "httpMethod": "POST",
14883	//   "id": "dataflow.projects.locations.templates.launch",
14884	//   "parameterOrder": [
14885	//     "projectId",
14886	//     "location"
14887	//   ],
14888	//   "parameters": {
14889	//     "dynamicTemplate.gcsPath": {
14890	//       "description": "Path to dynamic template spec file on GCS. The file must be a Json serialized DynamicTemplateFieSpec object.",
14891	//       "location": "query",
14892	//       "type": "string"
14893	//     },
14894	//     "dynamicTemplate.stagingLocation": {
14895	//       "description": "Cloud Storage path for staging dependencies. Must be a valid Cloud Storage URL, beginning with `gs://`.",
14896	//       "location": "query",
14897	//       "type": "string"
14898	//     },
14899	//     "gcsPath": {
14900	//       "description": "A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.",
14901	//       "location": "query",
14902	//       "type": "string"
14903	//     },
14904	//     "location": {
14905	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.",
14906	//       "location": "path",
14907	//       "required": true,
14908	//       "type": "string"
14909	//     },
14910	//     "projectId": {
14911	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
14912	//       "location": "path",
14913	//       "required": true,
14914	//       "type": "string"
14915	//     },
14916	//     "validateOnly": {
14917	//       "description": "If true, the request is validated but not actually executed. Defaults to false.",
14918	//       "location": "query",
14919	//       "type": "boolean"
14920	//     }
14921	//   },
14922	//   "path": "v1b3/projects/{projectId}/locations/{location}/templates:launch",
14923	//   "request": {
14924	//     "$ref": "LaunchTemplateParameters"
14925	//   },
14926	//   "response": {
14927	//     "$ref": "LaunchTemplateResponse"
14928	//   },
14929	//   "scopes": [
14930	//     "https://www.googleapis.com/auth/cloud-platform",
14931	//     "https://www.googleapis.com/auth/compute",
14932	//     "https://www.googleapis.com/auth/compute.readonly",
14933	//     "https://www.googleapis.com/auth/userinfo.email"
14934	//   ]
14935	// }
14936
14937}
14938
14939// method id "dataflow.projects.snapshots.get":
14940
14941type ProjectsSnapshotsGetCall struct {
14942	s            *Service
14943	projectId    string
14944	snapshotId   string
14945	urlParams_   gensupport.URLParams
14946	ifNoneMatch_ string
14947	ctx_         context.Context
14948	header_      http.Header
14949}
14950
14951// Get: Gets information about a snapshot.
14952func (r *ProjectsSnapshotsService) Get(projectId string, snapshotId string) *ProjectsSnapshotsGetCall {
14953	c := &ProjectsSnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14954	c.projectId = projectId
14955	c.snapshotId = snapshotId
14956	return c
14957}
14958
14959// Location sets the optional parameter "location": The location that
14960// contains this snapshot.
14961func (c *ProjectsSnapshotsGetCall) Location(location string) *ProjectsSnapshotsGetCall {
14962	c.urlParams_.Set("location", location)
14963	return c
14964}
14965
14966// Fields allows partial responses to be retrieved. See
14967// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14968// for more information.
14969func (c *ProjectsSnapshotsGetCall) Fields(s ...googleapi.Field) *ProjectsSnapshotsGetCall {
14970	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14971	return c
14972}
14973
14974// IfNoneMatch sets the optional parameter which makes the operation
14975// fail if the object's ETag matches the given value. This is useful for
14976// getting updates only after the object has changed since the last
14977// request. Use googleapi.IsNotModified to check whether the response
14978// error from Do is the result of In-None-Match.
14979func (c *ProjectsSnapshotsGetCall) IfNoneMatch(entityTag string) *ProjectsSnapshotsGetCall {
14980	c.ifNoneMatch_ = entityTag
14981	return c
14982}
14983
14984// Context sets the context to be used in this call's Do method. Any
14985// pending HTTP request will be aborted if the provided context is
14986// canceled.
14987func (c *ProjectsSnapshotsGetCall) Context(ctx context.Context) *ProjectsSnapshotsGetCall {
14988	c.ctx_ = ctx
14989	return c
14990}
14991
14992// Header returns an http.Header that can be modified by the caller to
14993// add HTTP headers to the request.
14994func (c *ProjectsSnapshotsGetCall) Header() http.Header {
14995	if c.header_ == nil {
14996		c.header_ = make(http.Header)
14997	}
14998	return c.header_
14999}
15000
15001func (c *ProjectsSnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
15002	reqHeaders := make(http.Header)
15003	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
15004	for k, v := range c.header_ {
15005		reqHeaders[k] = v
15006	}
15007	reqHeaders.Set("User-Agent", c.s.userAgent())
15008	if c.ifNoneMatch_ != "" {
15009		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15010	}
15011	var body io.Reader = nil
15012	c.urlParams_.Set("alt", alt)
15013	c.urlParams_.Set("prettyPrint", "false")
15014	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/snapshots/{snapshotId}")
15015	urls += "?" + c.urlParams_.Encode()
15016	req, err := http.NewRequest("GET", urls, body)
15017	if err != nil {
15018		return nil, err
15019	}
15020	req.Header = reqHeaders
15021	googleapi.Expand(req.URL, map[string]string{
15022		"projectId":  c.projectId,
15023		"snapshotId": c.snapshotId,
15024	})
15025	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15026}
15027
15028// Do executes the "dataflow.projects.snapshots.get" call.
15029// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
15030// code is an error. Response headers are in either
15031// *Snapshot.ServerResponse.Header or (if a response was returned at
15032// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15033// to check whether the returned error was because
15034// http.StatusNotModified was returned.
15035func (c *ProjectsSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
15036	gensupport.SetOptions(c.urlParams_, opts...)
15037	res, err := c.doRequest("json")
15038	if res != nil && res.StatusCode == http.StatusNotModified {
15039		if res.Body != nil {
15040			res.Body.Close()
15041		}
15042		return nil, &googleapi.Error{
15043			Code:   res.StatusCode,
15044			Header: res.Header,
15045		}
15046	}
15047	if err != nil {
15048		return nil, err
15049	}
15050	defer googleapi.CloseBody(res)
15051	if err := googleapi.CheckResponse(res); err != nil {
15052		return nil, err
15053	}
15054	ret := &Snapshot{
15055		ServerResponse: googleapi.ServerResponse{
15056			Header:         res.Header,
15057			HTTPStatusCode: res.StatusCode,
15058		},
15059	}
15060	target := &ret
15061	if err := gensupport.DecodeResponse(target, res); err != nil {
15062		return nil, err
15063	}
15064	return ret, nil
15065	// {
15066	//   "description": "Gets information about a snapshot.",
15067	//   "flatPath": "v1b3/projects/{projectId}/snapshots/{snapshotId}",
15068	//   "httpMethod": "GET",
15069	//   "id": "dataflow.projects.snapshots.get",
15070	//   "parameterOrder": [
15071	//     "projectId",
15072	//     "snapshotId"
15073	//   ],
15074	//   "parameters": {
15075	//     "location": {
15076	//       "description": "The location that contains this snapshot.",
15077	//       "location": "query",
15078	//       "type": "string"
15079	//     },
15080	//     "projectId": {
15081	//       "description": "The ID of the Cloud Platform project that the snapshot belongs to.",
15082	//       "location": "path",
15083	//       "required": true,
15084	//       "type": "string"
15085	//     },
15086	//     "snapshotId": {
15087	//       "description": "The ID of the snapshot.",
15088	//       "location": "path",
15089	//       "required": true,
15090	//       "type": "string"
15091	//     }
15092	//   },
15093	//   "path": "v1b3/projects/{projectId}/snapshots/{snapshotId}",
15094	//   "response": {
15095	//     "$ref": "Snapshot"
15096	//   },
15097	//   "scopes": [
15098	//     "https://www.googleapis.com/auth/cloud-platform",
15099	//     "https://www.googleapis.com/auth/compute",
15100	//     "https://www.googleapis.com/auth/compute.readonly",
15101	//     "https://www.googleapis.com/auth/userinfo.email"
15102	//   ]
15103	// }
15104
15105}
15106
15107// method id "dataflow.projects.snapshots.list":
15108
15109type ProjectsSnapshotsListCall struct {
15110	s            *Service
15111	projectId    string
15112	urlParams_   gensupport.URLParams
15113	ifNoneMatch_ string
15114	ctx_         context.Context
15115	header_      http.Header
15116}
15117
15118// List: Lists snapshots.
15119func (r *ProjectsSnapshotsService) List(projectId string) *ProjectsSnapshotsListCall {
15120	c := &ProjectsSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15121	c.projectId = projectId
15122	return c
15123}
15124
15125// JobId sets the optional parameter "jobId": If specified, list
15126// snapshots created from this job.
15127func (c *ProjectsSnapshotsListCall) JobId(jobId string) *ProjectsSnapshotsListCall {
15128	c.urlParams_.Set("jobId", jobId)
15129	return c
15130}
15131
15132// Location sets the optional parameter "location": The location to list
15133// snapshots in.
15134func (c *ProjectsSnapshotsListCall) Location(location string) *ProjectsSnapshotsListCall {
15135	c.urlParams_.Set("location", location)
15136	return c
15137}
15138
15139// Fields allows partial responses to be retrieved. See
15140// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15141// for more information.
15142func (c *ProjectsSnapshotsListCall) Fields(s ...googleapi.Field) *ProjectsSnapshotsListCall {
15143	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15144	return c
15145}
15146
15147// IfNoneMatch sets the optional parameter which makes the operation
15148// fail if the object's ETag matches the given value. This is useful for
15149// getting updates only after the object has changed since the last
15150// request. Use googleapi.IsNotModified to check whether the response
15151// error from Do is the result of In-None-Match.
15152func (c *ProjectsSnapshotsListCall) IfNoneMatch(entityTag string) *ProjectsSnapshotsListCall {
15153	c.ifNoneMatch_ = entityTag
15154	return c
15155}
15156
15157// Context sets the context to be used in this call's Do method. Any
15158// pending HTTP request will be aborted if the provided context is
15159// canceled.
15160func (c *ProjectsSnapshotsListCall) Context(ctx context.Context) *ProjectsSnapshotsListCall {
15161	c.ctx_ = ctx
15162	return c
15163}
15164
15165// Header returns an http.Header that can be modified by the caller to
15166// add HTTP headers to the request.
15167func (c *ProjectsSnapshotsListCall) Header() http.Header {
15168	if c.header_ == nil {
15169		c.header_ = make(http.Header)
15170	}
15171	return c.header_
15172}
15173
15174func (c *ProjectsSnapshotsListCall) doRequest(alt string) (*http.Response, error) {
15175	reqHeaders := make(http.Header)
15176	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
15177	for k, v := range c.header_ {
15178		reqHeaders[k] = v
15179	}
15180	reqHeaders.Set("User-Agent", c.s.userAgent())
15181	if c.ifNoneMatch_ != "" {
15182		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15183	}
15184	var body io.Reader = nil
15185	c.urlParams_.Set("alt", alt)
15186	c.urlParams_.Set("prettyPrint", "false")
15187	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/snapshots")
15188	urls += "?" + c.urlParams_.Encode()
15189	req, err := http.NewRequest("GET", urls, body)
15190	if err != nil {
15191		return nil, err
15192	}
15193	req.Header = reqHeaders
15194	googleapi.Expand(req.URL, map[string]string{
15195		"projectId": c.projectId,
15196	})
15197	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15198}
15199
15200// Do executes the "dataflow.projects.snapshots.list" call.
15201// Exactly one of *ListSnapshotsResponse or error will be non-nil. Any
15202// non-2xx status code is an error. Response headers are in either
15203// *ListSnapshotsResponse.ServerResponse.Header or (if a response was
15204// returned at all) in error.(*googleapi.Error).Header. Use
15205// googleapi.IsNotModified to check whether the returned error was
15206// because http.StatusNotModified was returned.
15207func (c *ProjectsSnapshotsListCall) Do(opts ...googleapi.CallOption) (*ListSnapshotsResponse, error) {
15208	gensupport.SetOptions(c.urlParams_, opts...)
15209	res, err := c.doRequest("json")
15210	if res != nil && res.StatusCode == http.StatusNotModified {
15211		if res.Body != nil {
15212			res.Body.Close()
15213		}
15214		return nil, &googleapi.Error{
15215			Code:   res.StatusCode,
15216			Header: res.Header,
15217		}
15218	}
15219	if err != nil {
15220		return nil, err
15221	}
15222	defer googleapi.CloseBody(res)
15223	if err := googleapi.CheckResponse(res); err != nil {
15224		return nil, err
15225	}
15226	ret := &ListSnapshotsResponse{
15227		ServerResponse: googleapi.ServerResponse{
15228			Header:         res.Header,
15229			HTTPStatusCode: res.StatusCode,
15230		},
15231	}
15232	target := &ret
15233	if err := gensupport.DecodeResponse(target, res); err != nil {
15234		return nil, err
15235	}
15236	return ret, nil
15237	// {
15238	//   "description": "Lists snapshots.",
15239	//   "flatPath": "v1b3/projects/{projectId}/snapshots",
15240	//   "httpMethod": "GET",
15241	//   "id": "dataflow.projects.snapshots.list",
15242	//   "parameterOrder": [
15243	//     "projectId"
15244	//   ],
15245	//   "parameters": {
15246	//     "jobId": {
15247	//       "description": "If specified, list snapshots created from this job.",
15248	//       "location": "query",
15249	//       "type": "string"
15250	//     },
15251	//     "location": {
15252	//       "description": "The location to list snapshots in.",
15253	//       "location": "query",
15254	//       "type": "string"
15255	//     },
15256	//     "projectId": {
15257	//       "description": "The project ID to list snapshots for.",
15258	//       "location": "path",
15259	//       "required": true,
15260	//       "type": "string"
15261	//     }
15262	//   },
15263	//   "path": "v1b3/projects/{projectId}/snapshots",
15264	//   "response": {
15265	//     "$ref": "ListSnapshotsResponse"
15266	//   },
15267	//   "scopes": [
15268	//     "https://www.googleapis.com/auth/cloud-platform",
15269	//     "https://www.googleapis.com/auth/compute",
15270	//     "https://www.googleapis.com/auth/compute.readonly",
15271	//     "https://www.googleapis.com/auth/userinfo.email"
15272	//   ]
15273	// }
15274
15275}
15276
15277// method id "dataflow.projects.templates.create":
15278
15279type ProjectsTemplatesCreateCall struct {
15280	s                            *Service
15281	projectId                    string
15282	createjobfromtemplaterequest *CreateJobFromTemplateRequest
15283	urlParams_                   gensupport.URLParams
15284	ctx_                         context.Context
15285	header_                      http.Header
15286}
15287
15288// Create: Creates a Cloud Dataflow job from a template.
15289func (r *ProjectsTemplatesService) Create(projectId string, createjobfromtemplaterequest *CreateJobFromTemplateRequest) *ProjectsTemplatesCreateCall {
15290	c := &ProjectsTemplatesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15291	c.projectId = projectId
15292	c.createjobfromtemplaterequest = createjobfromtemplaterequest
15293	return c
15294}
15295
15296// Fields allows partial responses to be retrieved. See
15297// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15298// for more information.
15299func (c *ProjectsTemplatesCreateCall) Fields(s ...googleapi.Field) *ProjectsTemplatesCreateCall {
15300	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15301	return c
15302}
15303
15304// Context sets the context to be used in this call's Do method. Any
15305// pending HTTP request will be aborted if the provided context is
15306// canceled.
15307func (c *ProjectsTemplatesCreateCall) Context(ctx context.Context) *ProjectsTemplatesCreateCall {
15308	c.ctx_ = ctx
15309	return c
15310}
15311
15312// Header returns an http.Header that can be modified by the caller to
15313// add HTTP headers to the request.
15314func (c *ProjectsTemplatesCreateCall) Header() http.Header {
15315	if c.header_ == nil {
15316		c.header_ = make(http.Header)
15317	}
15318	return c.header_
15319}
15320
15321func (c *ProjectsTemplatesCreateCall) doRequest(alt string) (*http.Response, error) {
15322	reqHeaders := make(http.Header)
15323	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
15324	for k, v := range c.header_ {
15325		reqHeaders[k] = v
15326	}
15327	reqHeaders.Set("User-Agent", c.s.userAgent())
15328	var body io.Reader = nil
15329	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createjobfromtemplaterequest)
15330	if err != nil {
15331		return nil, err
15332	}
15333	reqHeaders.Set("Content-Type", "application/json")
15334	c.urlParams_.Set("alt", alt)
15335	c.urlParams_.Set("prettyPrint", "false")
15336	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/templates")
15337	urls += "?" + c.urlParams_.Encode()
15338	req, err := http.NewRequest("POST", urls, body)
15339	if err != nil {
15340		return nil, err
15341	}
15342	req.Header = reqHeaders
15343	googleapi.Expand(req.URL, map[string]string{
15344		"projectId": c.projectId,
15345	})
15346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15347}
15348
15349// Do executes the "dataflow.projects.templates.create" call.
15350// Exactly one of *Job or error will be non-nil. Any non-2xx status code
15351// is an error. Response headers are in either
15352// *Job.ServerResponse.Header or (if a response was returned at all) in
15353// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
15354// whether the returned error was because http.StatusNotModified was
15355// returned.
15356func (c *ProjectsTemplatesCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
15357	gensupport.SetOptions(c.urlParams_, opts...)
15358	res, err := c.doRequest("json")
15359	if res != nil && res.StatusCode == http.StatusNotModified {
15360		if res.Body != nil {
15361			res.Body.Close()
15362		}
15363		return nil, &googleapi.Error{
15364			Code:   res.StatusCode,
15365			Header: res.Header,
15366		}
15367	}
15368	if err != nil {
15369		return nil, err
15370	}
15371	defer googleapi.CloseBody(res)
15372	if err := googleapi.CheckResponse(res); err != nil {
15373		return nil, err
15374	}
15375	ret := &Job{
15376		ServerResponse: googleapi.ServerResponse{
15377			Header:         res.Header,
15378			HTTPStatusCode: res.StatusCode,
15379		},
15380	}
15381	target := &ret
15382	if err := gensupport.DecodeResponse(target, res); err != nil {
15383		return nil, err
15384	}
15385	return ret, nil
15386	// {
15387	//   "description": "Creates a Cloud Dataflow job from a template.",
15388	//   "flatPath": "v1b3/projects/{projectId}/templates",
15389	//   "httpMethod": "POST",
15390	//   "id": "dataflow.projects.templates.create",
15391	//   "parameterOrder": [
15392	//     "projectId"
15393	//   ],
15394	//   "parameters": {
15395	//     "projectId": {
15396	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
15397	//       "location": "path",
15398	//       "required": true,
15399	//       "type": "string"
15400	//     }
15401	//   },
15402	//   "path": "v1b3/projects/{projectId}/templates",
15403	//   "request": {
15404	//     "$ref": "CreateJobFromTemplateRequest"
15405	//   },
15406	//   "response": {
15407	//     "$ref": "Job"
15408	//   },
15409	//   "scopes": [
15410	//     "https://www.googleapis.com/auth/cloud-platform",
15411	//     "https://www.googleapis.com/auth/compute",
15412	//     "https://www.googleapis.com/auth/compute.readonly",
15413	//     "https://www.googleapis.com/auth/userinfo.email"
15414	//   ]
15415	// }
15416
15417}
15418
15419// method id "dataflow.projects.templates.get":
15420
15421type ProjectsTemplatesGetCall struct {
15422	s            *Service
15423	projectId    string
15424	urlParams_   gensupport.URLParams
15425	ifNoneMatch_ string
15426	ctx_         context.Context
15427	header_      http.Header
15428}
15429
15430// Get: Get the template associated with a template.
15431func (r *ProjectsTemplatesService) Get(projectId string) *ProjectsTemplatesGetCall {
15432	c := &ProjectsTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15433	c.projectId = projectId
15434	return c
15435}
15436
15437// GcsPath sets the optional parameter "gcsPath": Required. A Cloud
15438// Storage path to the template from which to create the job. Must be
15439// valid Cloud Storage URL, beginning with 'gs://'.
15440func (c *ProjectsTemplatesGetCall) GcsPath(gcsPath string) *ProjectsTemplatesGetCall {
15441	c.urlParams_.Set("gcsPath", gcsPath)
15442	return c
15443}
15444
15445// Location sets the optional parameter "location": The [regional
15446// endpoint]
15447// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
15448// to which to direct the request.
15449func (c *ProjectsTemplatesGetCall) Location(location string) *ProjectsTemplatesGetCall {
15450	c.urlParams_.Set("location", location)
15451	return c
15452}
15453
15454// View sets the optional parameter "view": The view to retrieve.
15455// Defaults to METADATA_ONLY.
15456//
15457// Possible values:
15458//   "METADATA_ONLY" - Template view that retrieves only the metadata
15459// associated with the template.
15460func (c *ProjectsTemplatesGetCall) View(view string) *ProjectsTemplatesGetCall {
15461	c.urlParams_.Set("view", view)
15462	return c
15463}
15464
15465// Fields allows partial responses to be retrieved. See
15466// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15467// for more information.
15468func (c *ProjectsTemplatesGetCall) Fields(s ...googleapi.Field) *ProjectsTemplatesGetCall {
15469	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15470	return c
15471}
15472
15473// IfNoneMatch sets the optional parameter which makes the operation
15474// fail if the object's ETag matches the given value. This is useful for
15475// getting updates only after the object has changed since the last
15476// request. Use googleapi.IsNotModified to check whether the response
15477// error from Do is the result of In-None-Match.
15478func (c *ProjectsTemplatesGetCall) IfNoneMatch(entityTag string) *ProjectsTemplatesGetCall {
15479	c.ifNoneMatch_ = entityTag
15480	return c
15481}
15482
15483// Context sets the context to be used in this call's Do method. Any
15484// pending HTTP request will be aborted if the provided context is
15485// canceled.
15486func (c *ProjectsTemplatesGetCall) Context(ctx context.Context) *ProjectsTemplatesGetCall {
15487	c.ctx_ = ctx
15488	return c
15489}
15490
15491// Header returns an http.Header that can be modified by the caller to
15492// add HTTP headers to the request.
15493func (c *ProjectsTemplatesGetCall) Header() http.Header {
15494	if c.header_ == nil {
15495		c.header_ = make(http.Header)
15496	}
15497	return c.header_
15498}
15499
15500func (c *ProjectsTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
15501	reqHeaders := make(http.Header)
15502	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
15503	for k, v := range c.header_ {
15504		reqHeaders[k] = v
15505	}
15506	reqHeaders.Set("User-Agent", c.s.userAgent())
15507	if c.ifNoneMatch_ != "" {
15508		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15509	}
15510	var body io.Reader = nil
15511	c.urlParams_.Set("alt", alt)
15512	c.urlParams_.Set("prettyPrint", "false")
15513	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/templates:get")
15514	urls += "?" + c.urlParams_.Encode()
15515	req, err := http.NewRequest("GET", urls, body)
15516	if err != nil {
15517		return nil, err
15518	}
15519	req.Header = reqHeaders
15520	googleapi.Expand(req.URL, map[string]string{
15521		"projectId": c.projectId,
15522	})
15523	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15524}
15525
15526// Do executes the "dataflow.projects.templates.get" call.
15527// Exactly one of *GetTemplateResponse or error will be non-nil. Any
15528// non-2xx status code is an error. Response headers are in either
15529// *GetTemplateResponse.ServerResponse.Header or (if a response was
15530// returned at all) in error.(*googleapi.Error).Header. Use
15531// googleapi.IsNotModified to check whether the returned error was
15532// because http.StatusNotModified was returned.
15533func (c *ProjectsTemplatesGetCall) Do(opts ...googleapi.CallOption) (*GetTemplateResponse, error) {
15534	gensupport.SetOptions(c.urlParams_, opts...)
15535	res, err := c.doRequest("json")
15536	if res != nil && res.StatusCode == http.StatusNotModified {
15537		if res.Body != nil {
15538			res.Body.Close()
15539		}
15540		return nil, &googleapi.Error{
15541			Code:   res.StatusCode,
15542			Header: res.Header,
15543		}
15544	}
15545	if err != nil {
15546		return nil, err
15547	}
15548	defer googleapi.CloseBody(res)
15549	if err := googleapi.CheckResponse(res); err != nil {
15550		return nil, err
15551	}
15552	ret := &GetTemplateResponse{
15553		ServerResponse: googleapi.ServerResponse{
15554			Header:         res.Header,
15555			HTTPStatusCode: res.StatusCode,
15556		},
15557	}
15558	target := &ret
15559	if err := gensupport.DecodeResponse(target, res); err != nil {
15560		return nil, err
15561	}
15562	return ret, nil
15563	// {
15564	//   "description": "Get the template associated with a template.",
15565	//   "flatPath": "v1b3/projects/{projectId}/templates:get",
15566	//   "httpMethod": "GET",
15567	//   "id": "dataflow.projects.templates.get",
15568	//   "parameterOrder": [
15569	//     "projectId"
15570	//   ],
15571	//   "parameters": {
15572	//     "gcsPath": {
15573	//       "description": "Required. A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.",
15574	//       "location": "query",
15575	//       "type": "string"
15576	//     },
15577	//     "location": {
15578	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.",
15579	//       "location": "query",
15580	//       "type": "string"
15581	//     },
15582	//     "projectId": {
15583	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
15584	//       "location": "path",
15585	//       "required": true,
15586	//       "type": "string"
15587	//     },
15588	//     "view": {
15589	//       "description": "The view to retrieve. Defaults to METADATA_ONLY.",
15590	//       "enum": [
15591	//         "METADATA_ONLY"
15592	//       ],
15593	//       "enumDescriptions": [
15594	//         "Template view that retrieves only the metadata associated with the template."
15595	//       ],
15596	//       "location": "query",
15597	//       "type": "string"
15598	//     }
15599	//   },
15600	//   "path": "v1b3/projects/{projectId}/templates:get",
15601	//   "response": {
15602	//     "$ref": "GetTemplateResponse"
15603	//   },
15604	//   "scopes": [
15605	//     "https://www.googleapis.com/auth/cloud-platform",
15606	//     "https://www.googleapis.com/auth/compute",
15607	//     "https://www.googleapis.com/auth/compute.readonly",
15608	//     "https://www.googleapis.com/auth/userinfo.email"
15609	//   ]
15610	// }
15611
15612}
15613
15614// method id "dataflow.projects.templates.launch":
15615
15616type ProjectsTemplatesLaunchCall struct {
15617	s                        *Service
15618	projectId                string
15619	launchtemplateparameters *LaunchTemplateParameters
15620	urlParams_               gensupport.URLParams
15621	ctx_                     context.Context
15622	header_                  http.Header
15623}
15624
15625// Launch: Launch a template.
15626func (r *ProjectsTemplatesService) Launch(projectId string, launchtemplateparameters *LaunchTemplateParameters) *ProjectsTemplatesLaunchCall {
15627	c := &ProjectsTemplatesLaunchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15628	c.projectId = projectId
15629	c.launchtemplateparameters = launchtemplateparameters
15630	return c
15631}
15632
15633// DynamicTemplateGcsPath sets the optional parameter
15634// "dynamicTemplate.gcsPath": Path to dynamic template spec file on GCS.
15635// The file must be a Json serialized DynamicTemplateFieSpec object.
15636func (c *ProjectsTemplatesLaunchCall) DynamicTemplateGcsPath(dynamicTemplateGcsPath string) *ProjectsTemplatesLaunchCall {
15637	c.urlParams_.Set("dynamicTemplate.gcsPath", dynamicTemplateGcsPath)
15638	return c
15639}
15640
15641// DynamicTemplateStagingLocation sets the optional parameter
15642// "dynamicTemplate.stagingLocation": Cloud Storage path for staging
15643// dependencies. Must be a valid Cloud Storage URL, beginning with
15644// `gs://`.
15645func (c *ProjectsTemplatesLaunchCall) DynamicTemplateStagingLocation(dynamicTemplateStagingLocation string) *ProjectsTemplatesLaunchCall {
15646	c.urlParams_.Set("dynamicTemplate.stagingLocation", dynamicTemplateStagingLocation)
15647	return c
15648}
15649
15650// GcsPath sets the optional parameter "gcsPath": A Cloud Storage path
15651// to the template from which to create the job. Must be valid Cloud
15652// Storage URL, beginning with 'gs://'.
15653func (c *ProjectsTemplatesLaunchCall) GcsPath(gcsPath string) *ProjectsTemplatesLaunchCall {
15654	c.urlParams_.Set("gcsPath", gcsPath)
15655	return c
15656}
15657
15658// Location sets the optional parameter "location": The [regional
15659// endpoint]
15660// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
15661// to which to direct the request.
15662func (c *ProjectsTemplatesLaunchCall) Location(location string) *ProjectsTemplatesLaunchCall {
15663	c.urlParams_.Set("location", location)
15664	return c
15665}
15666
15667// ValidateOnly sets the optional parameter "validateOnly": If true, the
15668// request is validated but not actually executed. Defaults to false.
15669func (c *ProjectsTemplatesLaunchCall) ValidateOnly(validateOnly bool) *ProjectsTemplatesLaunchCall {
15670	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
15671	return c
15672}
15673
15674// Fields allows partial responses to be retrieved. See
15675// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15676// for more information.
15677func (c *ProjectsTemplatesLaunchCall) Fields(s ...googleapi.Field) *ProjectsTemplatesLaunchCall {
15678	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15679	return c
15680}
15681
15682// Context sets the context to be used in this call's Do method. Any
15683// pending HTTP request will be aborted if the provided context is
15684// canceled.
15685func (c *ProjectsTemplatesLaunchCall) Context(ctx context.Context) *ProjectsTemplatesLaunchCall {
15686	c.ctx_ = ctx
15687	return c
15688}
15689
15690// Header returns an http.Header that can be modified by the caller to
15691// add HTTP headers to the request.
15692func (c *ProjectsTemplatesLaunchCall) Header() http.Header {
15693	if c.header_ == nil {
15694		c.header_ = make(http.Header)
15695	}
15696	return c.header_
15697}
15698
15699func (c *ProjectsTemplatesLaunchCall) doRequest(alt string) (*http.Response, error) {
15700	reqHeaders := make(http.Header)
15701	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
15702	for k, v := range c.header_ {
15703		reqHeaders[k] = v
15704	}
15705	reqHeaders.Set("User-Agent", c.s.userAgent())
15706	var body io.Reader = nil
15707	body, err := googleapi.WithoutDataWrapper.JSONReader(c.launchtemplateparameters)
15708	if err != nil {
15709		return nil, err
15710	}
15711	reqHeaders.Set("Content-Type", "application/json")
15712	c.urlParams_.Set("alt", alt)
15713	c.urlParams_.Set("prettyPrint", "false")
15714	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/templates:launch")
15715	urls += "?" + c.urlParams_.Encode()
15716	req, err := http.NewRequest("POST", urls, body)
15717	if err != nil {
15718		return nil, err
15719	}
15720	req.Header = reqHeaders
15721	googleapi.Expand(req.URL, map[string]string{
15722		"projectId": c.projectId,
15723	})
15724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15725}
15726
15727// Do executes the "dataflow.projects.templates.launch" call.
15728// Exactly one of *LaunchTemplateResponse or error will be non-nil. Any
15729// non-2xx status code is an error. Response headers are in either
15730// *LaunchTemplateResponse.ServerResponse.Header or (if a response was
15731// returned at all) in error.(*googleapi.Error).Header. Use
15732// googleapi.IsNotModified to check whether the returned error was
15733// because http.StatusNotModified was returned.
15734func (c *ProjectsTemplatesLaunchCall) Do(opts ...googleapi.CallOption) (*LaunchTemplateResponse, error) {
15735	gensupport.SetOptions(c.urlParams_, opts...)
15736	res, err := c.doRequest("json")
15737	if res != nil && res.StatusCode == http.StatusNotModified {
15738		if res.Body != nil {
15739			res.Body.Close()
15740		}
15741		return nil, &googleapi.Error{
15742			Code:   res.StatusCode,
15743			Header: res.Header,
15744		}
15745	}
15746	if err != nil {
15747		return nil, err
15748	}
15749	defer googleapi.CloseBody(res)
15750	if err := googleapi.CheckResponse(res); err != nil {
15751		return nil, err
15752	}
15753	ret := &LaunchTemplateResponse{
15754		ServerResponse: googleapi.ServerResponse{
15755			Header:         res.Header,
15756			HTTPStatusCode: res.StatusCode,
15757		},
15758	}
15759	target := &ret
15760	if err := gensupport.DecodeResponse(target, res); err != nil {
15761		return nil, err
15762	}
15763	return ret, nil
15764	// {
15765	//   "description": "Launch a template.",
15766	//   "flatPath": "v1b3/projects/{projectId}/templates:launch",
15767	//   "httpMethod": "POST",
15768	//   "id": "dataflow.projects.templates.launch",
15769	//   "parameterOrder": [
15770	//     "projectId"
15771	//   ],
15772	//   "parameters": {
15773	//     "dynamicTemplate.gcsPath": {
15774	//       "description": "Path to dynamic template spec file on GCS. The file must be a Json serialized DynamicTemplateFieSpec object.",
15775	//       "location": "query",
15776	//       "type": "string"
15777	//     },
15778	//     "dynamicTemplate.stagingLocation": {
15779	//       "description": "Cloud Storage path for staging dependencies. Must be a valid Cloud Storage URL, beginning with `gs://`.",
15780	//       "location": "query",
15781	//       "type": "string"
15782	//     },
15783	//     "gcsPath": {
15784	//       "description": "A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.",
15785	//       "location": "query",
15786	//       "type": "string"
15787	//     },
15788	//     "location": {
15789	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.",
15790	//       "location": "query",
15791	//       "type": "string"
15792	//     },
15793	//     "projectId": {
15794	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
15795	//       "location": "path",
15796	//       "required": true,
15797	//       "type": "string"
15798	//     },
15799	//     "validateOnly": {
15800	//       "description": "If true, the request is validated but not actually executed. Defaults to false.",
15801	//       "location": "query",
15802	//       "type": "boolean"
15803	//     }
15804	//   },
15805	//   "path": "v1b3/projects/{projectId}/templates:launch",
15806	//   "request": {
15807	//     "$ref": "LaunchTemplateParameters"
15808	//   },
15809	//   "response": {
15810	//     "$ref": "LaunchTemplateResponse"
15811	//   },
15812	//   "scopes": [
15813	//     "https://www.googleapis.com/auth/cloud-platform",
15814	//     "https://www.googleapis.com/auth/compute",
15815	//     "https://www.googleapis.com/auth/compute.readonly",
15816	//     "https://www.googleapis.com/auth/userinfo.email"
15817	//   ]
15818	// }
15819
15820}
15821