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	// See, edit, configure, and delete your Google Cloud data and see the
87	// email address for your Google Account.
88	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
89
90	// View and manage your Google Compute Engine resources
91	ComputeScope = "https://www.googleapis.com/auth/compute"
92
93	// View your Google Compute Engine resources
94	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
95
96	// See your primary Google Account email address
97	UserinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email"
98)
99
100// NewService creates a new Service.
101func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
102	scopesOption := option.WithScopes(
103		"https://www.googleapis.com/auth/cloud-platform",
104		"https://www.googleapis.com/auth/compute",
105		"https://www.googleapis.com/auth/compute.readonly",
106		"https://www.googleapis.com/auth/userinfo.email",
107	)
108	// NOTE: prepend, so we don't override user-specified scopes.
109	opts = append([]option.ClientOption{scopesOption}, opts...)
110	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
111	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
112	client, endpoint, err := htransport.NewClient(ctx, opts...)
113	if err != nil {
114		return nil, err
115	}
116	s, err := New(client)
117	if err != nil {
118		return nil, err
119	}
120	if endpoint != "" {
121		s.BasePath = endpoint
122	}
123	return s, nil
124}
125
126// New creates a new Service. It uses the provided http.Client for requests.
127//
128// Deprecated: please use NewService instead.
129// To provide a custom HTTP client, use option.WithHTTPClient.
130// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
131func New(client *http.Client) (*Service, error) {
132	if client == nil {
133		return nil, errors.New("client is nil")
134	}
135	s := &Service{client: client, BasePath: basePath}
136	s.Projects = NewProjectsService(s)
137	return s, nil
138}
139
140type Service struct {
141	client    *http.Client
142	BasePath  string // API endpoint base URL
143	UserAgent string // optional additional User-Agent fragment
144
145	Projects *ProjectsService
146}
147
148func (s *Service) userAgent() string {
149	if s.UserAgent == "" {
150		return googleapi.UserAgent
151	}
152	return googleapi.UserAgent + " " + s.UserAgent
153}
154
155func NewProjectsService(s *Service) *ProjectsService {
156	rs := &ProjectsService{s: s}
157	rs.Jobs = NewProjectsJobsService(s)
158	rs.Locations = NewProjectsLocationsService(s)
159	rs.Snapshots = NewProjectsSnapshotsService(s)
160	rs.Templates = NewProjectsTemplatesService(s)
161	return rs
162}
163
164type ProjectsService struct {
165	s *Service
166
167	Jobs *ProjectsJobsService
168
169	Locations *ProjectsLocationsService
170
171	Snapshots *ProjectsSnapshotsService
172
173	Templates *ProjectsTemplatesService
174}
175
176func NewProjectsJobsService(s *Service) *ProjectsJobsService {
177	rs := &ProjectsJobsService{s: s}
178	rs.Debug = NewProjectsJobsDebugService(s)
179	rs.Messages = NewProjectsJobsMessagesService(s)
180	rs.WorkItems = NewProjectsJobsWorkItemsService(s)
181	return rs
182}
183
184type ProjectsJobsService struct {
185	s *Service
186
187	Debug *ProjectsJobsDebugService
188
189	Messages *ProjectsJobsMessagesService
190
191	WorkItems *ProjectsJobsWorkItemsService
192}
193
194func NewProjectsJobsDebugService(s *Service) *ProjectsJobsDebugService {
195	rs := &ProjectsJobsDebugService{s: s}
196	return rs
197}
198
199type ProjectsJobsDebugService struct {
200	s *Service
201}
202
203func NewProjectsJobsMessagesService(s *Service) *ProjectsJobsMessagesService {
204	rs := &ProjectsJobsMessagesService{s: s}
205	return rs
206}
207
208type ProjectsJobsMessagesService struct {
209	s *Service
210}
211
212func NewProjectsJobsWorkItemsService(s *Service) *ProjectsJobsWorkItemsService {
213	rs := &ProjectsJobsWorkItemsService{s: s}
214	return rs
215}
216
217type ProjectsJobsWorkItemsService struct {
218	s *Service
219}
220
221func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
222	rs := &ProjectsLocationsService{s: s}
223	rs.FlexTemplates = NewProjectsLocationsFlexTemplatesService(s)
224	rs.Jobs = NewProjectsLocationsJobsService(s)
225	rs.Snapshots = NewProjectsLocationsSnapshotsService(s)
226	rs.Sql = NewProjectsLocationsSqlService(s)
227	rs.Templates = NewProjectsLocationsTemplatesService(s)
228	return rs
229}
230
231type ProjectsLocationsService struct {
232	s *Service
233
234	FlexTemplates *ProjectsLocationsFlexTemplatesService
235
236	Jobs *ProjectsLocationsJobsService
237
238	Snapshots *ProjectsLocationsSnapshotsService
239
240	Sql *ProjectsLocationsSqlService
241
242	Templates *ProjectsLocationsTemplatesService
243}
244
245func NewProjectsLocationsFlexTemplatesService(s *Service) *ProjectsLocationsFlexTemplatesService {
246	rs := &ProjectsLocationsFlexTemplatesService{s: s}
247	return rs
248}
249
250type ProjectsLocationsFlexTemplatesService struct {
251	s *Service
252}
253
254func NewProjectsLocationsJobsService(s *Service) *ProjectsLocationsJobsService {
255	rs := &ProjectsLocationsJobsService{s: s}
256	rs.Debug = NewProjectsLocationsJobsDebugService(s)
257	rs.Messages = NewProjectsLocationsJobsMessagesService(s)
258	rs.Snapshots = NewProjectsLocationsJobsSnapshotsService(s)
259	rs.Stages = NewProjectsLocationsJobsStagesService(s)
260	rs.WorkItems = NewProjectsLocationsJobsWorkItemsService(s)
261	return rs
262}
263
264type ProjectsLocationsJobsService struct {
265	s *Service
266
267	Debug *ProjectsLocationsJobsDebugService
268
269	Messages *ProjectsLocationsJobsMessagesService
270
271	Snapshots *ProjectsLocationsJobsSnapshotsService
272
273	Stages *ProjectsLocationsJobsStagesService
274
275	WorkItems *ProjectsLocationsJobsWorkItemsService
276}
277
278func NewProjectsLocationsJobsDebugService(s *Service) *ProjectsLocationsJobsDebugService {
279	rs := &ProjectsLocationsJobsDebugService{s: s}
280	return rs
281}
282
283type ProjectsLocationsJobsDebugService struct {
284	s *Service
285}
286
287func NewProjectsLocationsJobsMessagesService(s *Service) *ProjectsLocationsJobsMessagesService {
288	rs := &ProjectsLocationsJobsMessagesService{s: s}
289	return rs
290}
291
292type ProjectsLocationsJobsMessagesService struct {
293	s *Service
294}
295
296func NewProjectsLocationsJobsSnapshotsService(s *Service) *ProjectsLocationsJobsSnapshotsService {
297	rs := &ProjectsLocationsJobsSnapshotsService{s: s}
298	return rs
299}
300
301type ProjectsLocationsJobsSnapshotsService struct {
302	s *Service
303}
304
305func NewProjectsLocationsJobsStagesService(s *Service) *ProjectsLocationsJobsStagesService {
306	rs := &ProjectsLocationsJobsStagesService{s: s}
307	return rs
308}
309
310type ProjectsLocationsJobsStagesService struct {
311	s *Service
312}
313
314func NewProjectsLocationsJobsWorkItemsService(s *Service) *ProjectsLocationsJobsWorkItemsService {
315	rs := &ProjectsLocationsJobsWorkItemsService{s: s}
316	return rs
317}
318
319type ProjectsLocationsJobsWorkItemsService struct {
320	s *Service
321}
322
323func NewProjectsLocationsSnapshotsService(s *Service) *ProjectsLocationsSnapshotsService {
324	rs := &ProjectsLocationsSnapshotsService{s: s}
325	return rs
326}
327
328type ProjectsLocationsSnapshotsService struct {
329	s *Service
330}
331
332func NewProjectsLocationsSqlService(s *Service) *ProjectsLocationsSqlService {
333	rs := &ProjectsLocationsSqlService{s: s}
334	return rs
335}
336
337type ProjectsLocationsSqlService struct {
338	s *Service
339}
340
341func NewProjectsLocationsTemplatesService(s *Service) *ProjectsLocationsTemplatesService {
342	rs := &ProjectsLocationsTemplatesService{s: s}
343	return rs
344}
345
346type ProjectsLocationsTemplatesService struct {
347	s *Service
348}
349
350func NewProjectsSnapshotsService(s *Service) *ProjectsSnapshotsService {
351	rs := &ProjectsSnapshotsService{s: s}
352	return rs
353}
354
355type ProjectsSnapshotsService struct {
356	s *Service
357}
358
359func NewProjectsTemplatesService(s *Service) *ProjectsTemplatesService {
360	rs := &ProjectsTemplatesService{s: s}
361	return rs
362}
363
364type ProjectsTemplatesService struct {
365	s *Service
366}
367
368// ApproximateProgress: Obsolete in favor of ApproximateReportedProgress
369// and ApproximateSplitRequest.
370type ApproximateProgress struct {
371	// PercentComplete: Obsolete.
372	PercentComplete float64 `json:"percentComplete,omitempty"`
373
374	// Position: Obsolete.
375	Position *Position `json:"position,omitempty"`
376
377	// RemainingTime: Obsolete.
378	RemainingTime string `json:"remainingTime,omitempty"`
379
380	// ForceSendFields is a list of field names (e.g. "PercentComplete") to
381	// unconditionally include in API requests. By default, fields with
382	// empty or default values are omitted from API requests. However, any
383	// non-pointer, non-interface field appearing in ForceSendFields will be
384	// sent to the server regardless of whether the field is empty or not.
385	// This may be used to include empty fields in Patch requests.
386	ForceSendFields []string `json:"-"`
387
388	// NullFields is a list of field names (e.g. "PercentComplete") to
389	// include in API requests with the JSON null value. By default, fields
390	// with empty values are omitted from API requests. However, any field
391	// with an empty value appearing in NullFields will be sent to the
392	// server as null. It is an error if a field in this list has a
393	// non-empty value. This may be used to include null fields in Patch
394	// requests.
395	NullFields []string `json:"-"`
396}
397
398func (s *ApproximateProgress) MarshalJSON() ([]byte, error) {
399	type NoMethod ApproximateProgress
400	raw := NoMethod(*s)
401	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
402}
403
404func (s *ApproximateProgress) UnmarshalJSON(data []byte) error {
405	type NoMethod ApproximateProgress
406	var s1 struct {
407		PercentComplete gensupport.JSONFloat64 `json:"percentComplete"`
408		*NoMethod
409	}
410	s1.NoMethod = (*NoMethod)(s)
411	if err := json.Unmarshal(data, &s1); err != nil {
412		return err
413	}
414	s.PercentComplete = float64(s1.PercentComplete)
415	return nil
416}
417
418// ApproximateReportedProgress: A progress measurement of a WorkItem by
419// a worker.
420type ApproximateReportedProgress struct {
421	// ConsumedParallelism: Total amount of parallelism in the portion of
422	// input of this task that has already been consumed and is no longer
423	// active. In the first two examples above (see remaining_parallelism),
424	// the value should be 29 or 2 respectively. The sum of
425	// remaining_parallelism and consumed_parallelism should equal the total
426	// amount of parallelism in this work item. If specified, must be
427	// finite.
428	ConsumedParallelism *ReportedParallelism `json:"consumedParallelism,omitempty"`
429
430	// FractionConsumed: Completion as fraction of the input consumed, from
431	// 0.0 (beginning, nothing consumed), to 1.0 (end of the input, entire
432	// input consumed).
433	FractionConsumed float64 `json:"fractionConsumed,omitempty"`
434
435	// Position: A Position within the work to represent a progress.
436	Position *Position `json:"position,omitempty"`
437
438	// RemainingParallelism: Total amount of parallelism in the input of
439	// this task that remains, (i.e. can be delegated to this task and any
440	// new tasks via dynamic splitting). Always at least 1 for non-finished
441	// work items and 0 for finished. "Amount of parallelism" refers to how
442	// many non-empty parts of the input can be read in parallel. This does
443	// not necessarily equal number of records. An input that can be read in
444	// parallel down to the individual records is called "perfectly
445	// splittable". An example of non-perfectly parallelizable input is a
446	// block-compressed file format where a block of records has to be read
447	// as a whole, but different blocks can be read in parallel. Examples: *
448	// If we are processing record #30 (starting at 1) out of 50 in a
449	// perfectly splittable 50-record input, this value should be 21 (20
450	// remaining + 1 current). * If we are reading through block 3 in a
451	// block-compressed file consisting of 5 blocks, this value should be 3
452	// (since blocks 4 and 5 can be processed in parallel by new tasks via
453	// dynamic splitting and the current task remains processing block 3). *
454	// If we are reading through the last block in a block-compressed file,
455	// or reading or processing the last record in a perfectly splittable
456	// input, this value should be 1, because apart from the current task,
457	// no additional remainder can be split off.
458	RemainingParallelism *ReportedParallelism `json:"remainingParallelism,omitempty"`
459
460	// ForceSendFields is a list of field names (e.g. "ConsumedParallelism")
461	// to unconditionally include in API requests. By default, fields with
462	// empty or default values are omitted from API requests. However, any
463	// non-pointer, non-interface field appearing in ForceSendFields will be
464	// sent to the server regardless of whether the field is empty or not.
465	// This may be used to include empty fields in Patch requests.
466	ForceSendFields []string `json:"-"`
467
468	// NullFields is a list of field names (e.g. "ConsumedParallelism") to
469	// include in API requests with the JSON null value. By default, fields
470	// with empty values are omitted from API requests. However, any field
471	// with an empty value appearing in NullFields will be sent to the
472	// server as null. It is an error if a field in this list has a
473	// non-empty value. This may be used to include null fields in Patch
474	// requests.
475	NullFields []string `json:"-"`
476}
477
478func (s *ApproximateReportedProgress) MarshalJSON() ([]byte, error) {
479	type NoMethod ApproximateReportedProgress
480	raw := NoMethod(*s)
481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
482}
483
484func (s *ApproximateReportedProgress) UnmarshalJSON(data []byte) error {
485	type NoMethod ApproximateReportedProgress
486	var s1 struct {
487		FractionConsumed gensupport.JSONFloat64 `json:"fractionConsumed"`
488		*NoMethod
489	}
490	s1.NoMethod = (*NoMethod)(s)
491	if err := json.Unmarshal(data, &s1); err != nil {
492		return err
493	}
494	s.FractionConsumed = float64(s1.FractionConsumed)
495	return nil
496}
497
498// ApproximateSplitRequest: A suggestion by the service to the worker to
499// dynamically split the WorkItem.
500type ApproximateSplitRequest struct {
501	// FractionConsumed: A fraction at which to split the work item, from
502	// 0.0 (beginning of the input) to 1.0 (end of the input).
503	FractionConsumed float64 `json:"fractionConsumed,omitempty"`
504
505	// FractionOfRemainder: The fraction of the remainder of work to split
506	// the work item at, from 0.0 (split at the current position) to 1.0
507	// (end of the input).
508	FractionOfRemainder float64 `json:"fractionOfRemainder,omitempty"`
509
510	// Position: A Position at which to split the work item.
511	Position *Position `json:"position,omitempty"`
512
513	// ForceSendFields is a list of field names (e.g. "FractionConsumed") to
514	// unconditionally include in API requests. By default, fields with
515	// empty or default values are omitted from API requests. However, any
516	// non-pointer, non-interface field appearing in ForceSendFields will be
517	// sent to the server regardless of whether the field is empty or not.
518	// This may be used to include empty fields in Patch requests.
519	ForceSendFields []string `json:"-"`
520
521	// NullFields is a list of field names (e.g. "FractionConsumed") to
522	// include in API requests with the JSON null value. By default, fields
523	// with empty values are omitted from API requests. However, any field
524	// with an empty value appearing in NullFields will be sent to the
525	// server as null. It is an error if a field in this list has a
526	// non-empty value. This may be used to include null fields in Patch
527	// requests.
528	NullFields []string `json:"-"`
529}
530
531func (s *ApproximateSplitRequest) MarshalJSON() ([]byte, error) {
532	type NoMethod ApproximateSplitRequest
533	raw := NoMethod(*s)
534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
535}
536
537func (s *ApproximateSplitRequest) UnmarshalJSON(data []byte) error {
538	type NoMethod ApproximateSplitRequest
539	var s1 struct {
540		FractionConsumed    gensupport.JSONFloat64 `json:"fractionConsumed"`
541		FractionOfRemainder gensupport.JSONFloat64 `json:"fractionOfRemainder"`
542		*NoMethod
543	}
544	s1.NoMethod = (*NoMethod)(s)
545	if err := json.Unmarshal(data, &s1); err != nil {
546		return err
547	}
548	s.FractionConsumed = float64(s1.FractionConsumed)
549	s.FractionOfRemainder = float64(s1.FractionOfRemainder)
550	return nil
551}
552
553// AutoscalingEvent: A structured message reporting an autoscaling
554// decision made by the Dataflow service.
555type AutoscalingEvent struct {
556	// CurrentNumWorkers: The current number of workers the job has.
557	CurrentNumWorkers int64 `json:"currentNumWorkers,omitempty,string"`
558
559	// Description: A message describing why the system decided to adjust
560	// the current number of workers, why it failed, or why the system
561	// decided to not make any changes to the number of workers.
562	Description *StructuredMessage `json:"description,omitempty"`
563
564	// EventType: The type of autoscaling event to report.
565	//
566	// Possible values:
567	//   "TYPE_UNKNOWN" - Default type for the enum. Value should never be
568	// returned.
569	//   "TARGET_NUM_WORKERS_CHANGED" - The TARGET_NUM_WORKERS_CHANGED type
570	// should be used when the target worker pool size has changed at the
571	// start of an actuation. An event should always be specified as
572	// TARGET_NUM_WORKERS_CHANGED if it reflects a change in the
573	// target_num_workers.
574	//   "CURRENT_NUM_WORKERS_CHANGED" - The CURRENT_NUM_WORKERS_CHANGED
575	// type should be used when actual worker pool size has been changed,
576	// but the target_num_workers has not changed.
577	//   "ACTUATION_FAILURE" - The ACTUATION_FAILURE type should be used
578	// when we want to report an error to the user indicating why the
579	// current number of workers in the pool could not be changed. Displayed
580	// in the current status and history widgets.
581	//   "NO_CHANGE" - Used when we want to report to the user a reason why
582	// we are not currently adjusting the number of workers. Should specify
583	// both target_num_workers, current_num_workers and a decision_message.
584	EventType string `json:"eventType,omitempty"`
585
586	// TargetNumWorkers: The target number of workers the worker pool wants
587	// to resize to use.
588	TargetNumWorkers int64 `json:"targetNumWorkers,omitempty,string"`
589
590	// Time: The time this event was emitted to indicate a new target or
591	// current num_workers value.
592	Time string `json:"time,omitempty"`
593
594	// WorkerPool: A short and friendly name for the worker pool this event
595	// refers to.
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 or default values are omitted from API requests. However, any
601	// non-pointer, non-interface field appearing in ForceSendFields will be
602	// sent to the server regardless of whether the field is empty or not.
603	// This may be 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 or default values are omitted from API requests. However, any
640	// non-pointer, non-interface field appearing in ForceSendFields will be
641	// sent to the server regardless of whether the field is empty or not.
642	// This may be 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 or default values are omitted from API requests. However, any
677	// non-pointer, non-interface field appearing in ForceSendFields will be
678	// sent to the server regardless of whether the field is empty or not.
679	// This may be 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 Cloud Bigtable connector used by
698// the job.
699type BigTableIODetails struct {
700	// InstanceId: InstanceId accessed in the connection.
701	InstanceId string `json:"instanceId,omitempty"`
702
703	// ProjectId: ProjectId accessed in the connection.
704	ProjectId string `json:"projectId,omitempty"`
705
706	// TableId: TableId accessed in the connection.
707	TableId string `json:"tableId,omitempty"`
708
709	// ForceSendFields is a list of field names (e.g. "InstanceId") to
710	// unconditionally include in API requests. By default, fields with
711	// empty or default values are omitted from API requests. However, any
712	// non-pointer, non-interface field appearing in ForceSendFields will be
713	// sent to the server regardless of whether the field is empty or not.
714	// This may be used to include empty fields in Patch requests.
715	ForceSendFields []string `json:"-"`
716
717	// NullFields is a list of field names (e.g. "InstanceId") to include in
718	// API requests with the JSON null value. By default, fields with empty
719	// values are omitted from API requests. However, any field with an
720	// empty value appearing in NullFields will be sent to the server as
721	// null. It is an error if a field in this list has a non-empty value.
722	// This may be used to include null fields in Patch requests.
723	NullFields []string `json:"-"`
724}
725
726func (s *BigTableIODetails) MarshalJSON() ([]byte, error) {
727	type NoMethod BigTableIODetails
728	raw := NoMethod(*s)
729	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
730}
731
732// CPUTime: Modeled after information exposed by /proc/stat.
733type CPUTime struct {
734	// Rate: Average CPU utilization rate (% non-idle cpu / second) since
735	// previous sample.
736	Rate float64 `json:"rate,omitempty"`
737
738	// Timestamp: Timestamp of the measurement.
739	Timestamp string `json:"timestamp,omitempty"`
740
741	// TotalMs: Total active CPU time across all cores (ie., non-idle) in
742	// milliseconds since start-up.
743	TotalMs uint64 `json:"totalMs,omitempty,string"`
744
745	// ForceSendFields is a list of field names (e.g. "Rate") to
746	// unconditionally include in API requests. By default, fields with
747	// empty or default values are omitted from API requests. However, any
748	// non-pointer, non-interface field appearing in ForceSendFields will be
749	// sent to the server regardless of whether the field is empty or not.
750	// This may be used to include empty fields in Patch requests.
751	ForceSendFields []string `json:"-"`
752
753	// NullFields is a list of field names (e.g. "Rate") to include in API
754	// requests with the JSON null value. By default, fields with empty
755	// values are omitted from API requests. However, any field with an
756	// empty value appearing in NullFields will be sent to the server as
757	// null. It is an error if a field in this list has a non-empty value.
758	// This may be used to include null fields in Patch requests.
759	NullFields []string `json:"-"`
760}
761
762func (s *CPUTime) MarshalJSON() ([]byte, error) {
763	type NoMethod CPUTime
764	raw := NoMethod(*s)
765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
766}
767
768func (s *CPUTime) UnmarshalJSON(data []byte) error {
769	type NoMethod CPUTime
770	var s1 struct {
771		Rate gensupport.JSONFloat64 `json:"rate"`
772		*NoMethod
773	}
774	s1.NoMethod = (*NoMethod)(s)
775	if err := json.Unmarshal(data, &s1); err != nil {
776		return err
777	}
778	s.Rate = float64(s1.Rate)
779	return nil
780}
781
782// ComponentSource: Description of an interstitial value between
783// transforms in an execution stage.
784type ComponentSource struct {
785	// Name: Dataflow service generated name for this source.
786	Name string `json:"name,omitempty"`
787
788	// OriginalTransformOrCollection: User name for the original user
789	// transform or collection with which this source is most closely
790	// associated.
791	OriginalTransformOrCollection string `json:"originalTransformOrCollection,omitempty"`
792
793	// UserName: Human-readable name for this transform; may be user or
794	// system generated.
795	UserName string `json:"userName,omitempty"`
796
797	// ForceSendFields is a list of field names (e.g. "Name") to
798	// unconditionally include in API requests. By default, fields with
799	// empty or default values are omitted from API requests. However, any
800	// non-pointer, non-interface field appearing in ForceSendFields will be
801	// sent to the server regardless of whether the field is empty or not.
802	// This may be used to include empty fields in Patch requests.
803	ForceSendFields []string `json:"-"`
804
805	// NullFields is a list of field names (e.g. "Name") to include in API
806	// requests with the JSON null value. By default, fields with empty
807	// values are omitted from API requests. However, any field with an
808	// empty value appearing in NullFields will be sent to the server as
809	// null. It is an error if a field in this list has a non-empty value.
810	// This may be used to include null fields in Patch requests.
811	NullFields []string `json:"-"`
812}
813
814func (s *ComponentSource) MarshalJSON() ([]byte, error) {
815	type NoMethod ComponentSource
816	raw := NoMethod(*s)
817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
818}
819
820// ComponentTransform: Description of a transform executed as part of an
821// execution stage.
822type ComponentTransform struct {
823	// Name: Dataflow service generated name for this source.
824	Name string `json:"name,omitempty"`
825
826	// OriginalTransform: User name for the original user transform with
827	// which this transform is most closely associated.
828	OriginalTransform string `json:"originalTransform,omitempty"`
829
830	// UserName: Human-readable name for this transform; may be user or
831	// system generated.
832	UserName string `json:"userName,omitempty"`
833
834	// ForceSendFields is a list of field names (e.g. "Name") to
835	// unconditionally include in API requests. By default, fields with
836	// empty or default values are omitted from API requests. However, any
837	// non-pointer, non-interface field appearing in ForceSendFields will be
838	// sent to the server regardless of whether the field is empty or not.
839	// This may be used to include empty fields in Patch requests.
840	ForceSendFields []string `json:"-"`
841
842	// NullFields is a list of field names (e.g. "Name") to include in API
843	// requests with the JSON null value. By default, fields with empty
844	// values are omitted from API requests. However, any field with an
845	// empty value appearing in NullFields will be sent to the server as
846	// null. It is an error if a field in this list has a non-empty value.
847	// This may be used to include null fields in Patch requests.
848	NullFields []string `json:"-"`
849}
850
851func (s *ComponentTransform) MarshalJSON() ([]byte, error) {
852	type NoMethod ComponentTransform
853	raw := NoMethod(*s)
854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
855}
856
857// ComputationTopology: All configuration data for a particular
858// Computation.
859type ComputationTopology struct {
860	// ComputationId: The ID of the computation.
861	ComputationId string `json:"computationId,omitempty"`
862
863	// Inputs: The inputs to the computation.
864	Inputs []*StreamLocation `json:"inputs,omitempty"`
865
866	// KeyRanges: The key ranges processed by the computation.
867	KeyRanges []*KeyRangeLocation `json:"keyRanges,omitempty"`
868
869	// Outputs: The outputs from the computation.
870	Outputs []*StreamLocation `json:"outputs,omitempty"`
871
872	// StateFamilies: The state family values.
873	StateFamilies []*StateFamilyConfig `json:"stateFamilies,omitempty"`
874
875	// SystemStageName: The system stage name.
876	SystemStageName string `json:"systemStageName,omitempty"`
877
878	// ForceSendFields is a list of field names (e.g. "ComputationId") to
879	// unconditionally include in API requests. By default, fields with
880	// empty or default values are omitted from API requests. However, any
881	// non-pointer, non-interface field appearing in ForceSendFields will be
882	// sent to the server regardless of whether the field is empty or not.
883	// This may be used to include empty fields in Patch requests.
884	ForceSendFields []string `json:"-"`
885
886	// NullFields is a list of field names (e.g. "ComputationId") to include
887	// in API requests with the JSON null value. By default, fields with
888	// empty values are omitted from API requests. However, any field with
889	// an empty value appearing in NullFields will be sent to the server as
890	// null. It is an error if a field in this list has a non-empty value.
891	// This may be used to include null fields in Patch requests.
892	NullFields []string `json:"-"`
893}
894
895func (s *ComputationTopology) MarshalJSON() ([]byte, error) {
896	type NoMethod ComputationTopology
897	raw := NoMethod(*s)
898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
899}
900
901// ConcatPosition: A position that encapsulates an inner position and an
902// index for the inner position. A ConcatPosition can be used by a
903// reader of a source that encapsulates a set of other sources.
904type ConcatPosition struct {
905	// Index: Index of the inner source.
906	Index int64 `json:"index,omitempty"`
907
908	// Position: Position within the inner source.
909	Position *Position `json:"position,omitempty"`
910
911	// ForceSendFields is a list of field names (e.g. "Index") to
912	// unconditionally include in API requests. By default, fields with
913	// empty or default values are omitted from API requests. However, any
914	// non-pointer, non-interface field appearing in ForceSendFields will be
915	// sent to the server regardless of whether the field is empty or not.
916	// This may be used to include empty fields in Patch requests.
917	ForceSendFields []string `json:"-"`
918
919	// NullFields is a list of field names (e.g. "Index") to include in API
920	// requests with the JSON null value. By default, fields with empty
921	// values are omitted from API requests. However, any field with an
922	// empty value appearing in NullFields will be sent to the server as
923	// null. It is an error if a field in this list has a non-empty value.
924	// This may be used to include null fields in Patch requests.
925	NullFields []string `json:"-"`
926}
927
928func (s *ConcatPosition) MarshalJSON() ([]byte, error) {
929	type NoMethod ConcatPosition
930	raw := NoMethod(*s)
931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
932}
933
934// ContainerSpec: Container Spec.
935type ContainerSpec struct {
936	// DefaultEnvironment: Default runtime environment for the job.
937	DefaultEnvironment *FlexTemplateRuntimeEnvironment `json:"defaultEnvironment,omitempty"`
938
939	// Image: Name of the docker container image. E.g.,
940	// gcr.io/project/some-image
941	Image string `json:"image,omitempty"`
942
943	// Metadata: Metadata describing a template including description and
944	// validation rules.
945	Metadata *TemplateMetadata `json:"metadata,omitempty"`
946
947	// SdkInfo: Required. SDK info of the Flex Template.
948	SdkInfo *SDKInfo `json:"sdkInfo,omitempty"`
949
950	// ForceSendFields is a list of field names (e.g. "DefaultEnvironment")
951	// to unconditionally include in API requests. By default, fields with
952	// empty or default values are omitted from API requests. However, any
953	// non-pointer, non-interface field appearing in ForceSendFields will be
954	// sent to the server regardless of whether the field is empty or not.
955	// This may be used to include empty fields in Patch requests.
956	ForceSendFields []string `json:"-"`
957
958	// NullFields is a list of field names (e.g. "DefaultEnvironment") to
959	// include in API requests with the JSON null value. By default, fields
960	// with empty values are omitted from API requests. However, any field
961	// with an empty value appearing in NullFields will be sent to the
962	// server as null. It is an error if a field in this list has a
963	// non-empty value. This may be used to include null fields in Patch
964	// requests.
965	NullFields []string `json:"-"`
966}
967
968func (s *ContainerSpec) MarshalJSON() ([]byte, error) {
969	type NoMethod ContainerSpec
970	raw := NoMethod(*s)
971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
972}
973
974// CounterMetadata: CounterMetadata includes all static non-name
975// non-value counter attributes.
976type CounterMetadata struct {
977	// Description: Human-readable description of the counter semantics.
978	Description string `json:"description,omitempty"`
979
980	// Kind: Counter aggregation kind.
981	//
982	// Possible values:
983	//   "INVALID" - Counter aggregation kind was not set.
984	//   "SUM" - Aggregated value is the sum of all contributed values.
985	//   "MAX" - Aggregated value is the max of all contributed values.
986	//   "MIN" - Aggregated value is the min of all contributed values.
987	//   "MEAN" - Aggregated value is the mean of all contributed values.
988	//   "OR" - Aggregated value represents the logical 'or' of all
989	// contributed values.
990	//   "AND" - Aggregated value represents the logical 'and' of all
991	// contributed values.
992	//   "SET" - Aggregated value is a set of unique contributed values.
993	//   "DISTRIBUTION" - Aggregated value captures statistics about a
994	// distribution.
995	//   "LATEST_VALUE" - Aggregated value tracks the latest value of a
996	// variable.
997	Kind string `json:"kind,omitempty"`
998
999	// OtherUnits: A string referring to the unit type.
1000	OtherUnits string `json:"otherUnits,omitempty"`
1001
1002	// StandardUnits: System defined Units, see above enum.
1003	//
1004	// Possible values:
1005	//   "BYTES" - Counter returns a value in bytes.
1006	//   "BYTES_PER_SEC" - Counter returns a value in bytes per second.
1007	//   "MILLISECONDS" - Counter returns a value in milliseconds.
1008	//   "MICROSECONDS" - Counter returns a value in microseconds.
1009	//   "NANOSECONDS" - Counter returns a value in nanoseconds.
1010	//   "TIMESTAMP_MSEC" - Counter returns a timestamp in milliseconds.
1011	//   "TIMESTAMP_USEC" - Counter returns a timestamp in microseconds.
1012	//   "TIMESTAMP_NSEC" - Counter returns a timestamp in nanoseconds.
1013	StandardUnits string `json:"standardUnits,omitempty"`
1014
1015	// ForceSendFields is a list of field names (e.g. "Description") to
1016	// unconditionally include in API requests. By default, fields with
1017	// empty or default values are omitted from API requests. However, any
1018	// non-pointer, non-interface field appearing in ForceSendFields will be
1019	// sent to the server regardless of whether the field is empty or not.
1020	// This may be used to include empty fields in Patch requests.
1021	ForceSendFields []string `json:"-"`
1022
1023	// NullFields is a list of field names (e.g. "Description") to include
1024	// in API requests with the JSON null value. By default, fields with
1025	// empty values are omitted from API requests. However, any field with
1026	// an empty value appearing in NullFields will be sent to the server as
1027	// null. It is an error if a field in this list has a non-empty value.
1028	// This may be used to include null fields in Patch requests.
1029	NullFields []string `json:"-"`
1030}
1031
1032func (s *CounterMetadata) MarshalJSON() ([]byte, error) {
1033	type NoMethod CounterMetadata
1034	raw := NoMethod(*s)
1035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1036}
1037
1038// CounterStructuredName: Identifies a counter within a per-job
1039// namespace. Counters whose structured names are the same get merged
1040// into a single value for the job.
1041type CounterStructuredName struct {
1042	// ComponentStepName: Name of the optimized step being executed by the
1043	// workers.
1044	ComponentStepName string `json:"componentStepName,omitempty"`
1045
1046	// ExecutionStepName: Name of the stage. An execution step contains
1047	// multiple component steps.
1048	ExecutionStepName string `json:"executionStepName,omitempty"`
1049
1050	// InputIndex: Index of an input collection that's being read
1051	// from/written to as a side input. The index identifies a step's side
1052	// inputs starting by 1 (e.g. the first side input has input_index 1,
1053	// the third has input_index 3). Side inputs are identified by a pair of
1054	// (original_step_name, input_index). This field helps uniquely identify
1055	// them.
1056	InputIndex int64 `json:"inputIndex,omitempty"`
1057
1058	// Name: Counter name. Not necessarily globally-unique, but unique
1059	// within the context of the other fields. Required.
1060	Name string `json:"name,omitempty"`
1061
1062	// Origin: One of the standard Origins defined above.
1063	//
1064	// Possible values:
1065	//   "SYSTEM" - Counter was created by the Dataflow system.
1066	//   "USER" - Counter was created by the user.
1067	Origin string `json:"origin,omitempty"`
1068
1069	// OriginNamespace: A string containing a more specific namespace of the
1070	// counter's origin.
1071	OriginNamespace string `json:"originNamespace,omitempty"`
1072
1073	// OriginalRequestingStepName: The step name requesting an operation,
1074	// such as GBK. I.e. the ParDo causing a read/write from shuffle to
1075	// occur, or a read from side inputs.
1076	OriginalRequestingStepName string `json:"originalRequestingStepName,omitempty"`
1077
1078	// OriginalStepName: System generated name of the original step in the
1079	// user's graph, before optimization.
1080	OriginalStepName string `json:"originalStepName,omitempty"`
1081
1082	// Portion: Portion of this counter, either key or value.
1083	//
1084	// Possible values:
1085	//   "ALL" - Counter portion has not been set.
1086	//   "KEY" - Counter reports a key.
1087	//   "VALUE" - Counter reports a value.
1088	Portion string `json:"portion,omitempty"`
1089
1090	// WorkerId: ID of a particular worker.
1091	WorkerId string `json:"workerId,omitempty"`
1092
1093	// ForceSendFields is a list of field names (e.g. "ComponentStepName")
1094	// to unconditionally include in API requests. By default, fields with
1095	// empty or default values are omitted from API requests. However, any
1096	// non-pointer, non-interface field appearing in ForceSendFields will be
1097	// sent to the server regardless of whether the field is empty or not.
1098	// This may be used to include empty fields in Patch requests.
1099	ForceSendFields []string `json:"-"`
1100
1101	// NullFields is a list of field names (e.g. "ComponentStepName") to
1102	// include in API requests with the JSON null value. By default, fields
1103	// with empty values are omitted from API requests. However, any field
1104	// with an empty value appearing in NullFields will be sent to the
1105	// server as null. It is an error if a field in this list has a
1106	// non-empty value. This may be used to include null fields in Patch
1107	// requests.
1108	NullFields []string `json:"-"`
1109}
1110
1111func (s *CounterStructuredName) MarshalJSON() ([]byte, error) {
1112	type NoMethod CounterStructuredName
1113	raw := NoMethod(*s)
1114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1115}
1116
1117// CounterStructuredNameAndMetadata: A single message which encapsulates
1118// structured name and metadata for a given counter.
1119type CounterStructuredNameAndMetadata struct {
1120	// Metadata: Metadata associated with a counter
1121	Metadata *CounterMetadata `json:"metadata,omitempty"`
1122
1123	// Name: Structured name of the counter.
1124	Name *CounterStructuredName `json:"name,omitempty"`
1125
1126	// ForceSendFields is a list of field names (e.g. "Metadata") to
1127	// unconditionally include in API requests. By default, fields with
1128	// empty or default values are omitted from API requests. However, any
1129	// non-pointer, non-interface field appearing in ForceSendFields will be
1130	// sent to the server regardless of whether the field is empty or not.
1131	// This may be used to include empty fields in Patch requests.
1132	ForceSendFields []string `json:"-"`
1133
1134	// NullFields is a list of field names (e.g. "Metadata") to include in
1135	// API requests with the JSON null value. By default, fields with empty
1136	// values are omitted from API requests. However, any field with an
1137	// empty value appearing in NullFields will be sent to the server as
1138	// null. It is an error if a field in this list has a non-empty value.
1139	// This may be used to include null fields in Patch requests.
1140	NullFields []string `json:"-"`
1141}
1142
1143func (s *CounterStructuredNameAndMetadata) MarshalJSON() ([]byte, error) {
1144	type NoMethod CounterStructuredNameAndMetadata
1145	raw := NoMethod(*s)
1146	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1147}
1148
1149// CounterUpdate: An update to a Counter sent from a worker.
1150type CounterUpdate struct {
1151	// Boolean: Boolean value for And, Or.
1152	Boolean bool `json:"boolean,omitempty"`
1153
1154	// Cumulative: True if this counter is reported as the total cumulative
1155	// aggregate value accumulated since the worker started working on this
1156	// WorkItem. By default this is false, indicating that this counter is
1157	// reported as a delta.
1158	Cumulative bool `json:"cumulative,omitempty"`
1159
1160	// Distribution: Distribution data
1161	Distribution *DistributionUpdate `json:"distribution,omitempty"`
1162
1163	// FloatingPoint: Floating point value for Sum, Max, Min.
1164	FloatingPoint float64 `json:"floatingPoint,omitempty"`
1165
1166	// FloatingPointList: List of floating point numbers, for Set.
1167	FloatingPointList *FloatingPointList `json:"floatingPointList,omitempty"`
1168
1169	// FloatingPointMean: Floating point mean aggregation value for Mean.
1170	FloatingPointMean *FloatingPointMean `json:"floatingPointMean,omitempty"`
1171
1172	// Integer: Integer value for Sum, Max, Min.
1173	Integer *SplitInt64 `json:"integer,omitempty"`
1174
1175	// IntegerGauge: Gauge data
1176	IntegerGauge *IntegerGauge `json:"integerGauge,omitempty"`
1177
1178	// IntegerList: List of integers, for Set.
1179	IntegerList *IntegerList `json:"integerList,omitempty"`
1180
1181	// IntegerMean: Integer mean aggregation value for Mean.
1182	IntegerMean *IntegerMean `json:"integerMean,omitempty"`
1183
1184	// Internal: Value for internally-defined counters used by the Dataflow
1185	// service.
1186	Internal interface{} `json:"internal,omitempty"`
1187
1188	// NameAndKind: Counter name and aggregation type.
1189	NameAndKind *NameAndKind `json:"nameAndKind,omitempty"`
1190
1191	// ShortId: The service-generated short identifier for this counter. The
1192	// short_id -> (name, metadata) mapping is constant for the lifetime of
1193	// a job.
1194	ShortId int64 `json:"shortId,omitempty,string"`
1195
1196	// StringList: List of strings, for Set.
1197	StringList *StringList `json:"stringList,omitempty"`
1198
1199	// StructuredNameAndMetadata: Counter structured name and metadata.
1200	StructuredNameAndMetadata *CounterStructuredNameAndMetadata `json:"structuredNameAndMetadata,omitempty"`
1201
1202	// ForceSendFields is a list of field names (e.g. "Boolean") to
1203	// unconditionally include in API requests. By default, fields with
1204	// empty or default values are omitted from API requests. However, any
1205	// non-pointer, non-interface field appearing in ForceSendFields will be
1206	// sent to the server regardless of whether the field is empty or not.
1207	// This may be used to include empty fields in Patch requests.
1208	ForceSendFields []string `json:"-"`
1209
1210	// NullFields is a list of field names (e.g. "Boolean") to include in
1211	// API requests with the JSON null value. By default, fields with empty
1212	// values are omitted from API requests. However, any field with an
1213	// empty value appearing in NullFields will be sent to the server as
1214	// null. It is an error if a field in this list has a non-empty value.
1215	// This may be used to include null fields in Patch requests.
1216	NullFields []string `json:"-"`
1217}
1218
1219func (s *CounterUpdate) MarshalJSON() ([]byte, error) {
1220	type NoMethod CounterUpdate
1221	raw := NoMethod(*s)
1222	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1223}
1224
1225func (s *CounterUpdate) UnmarshalJSON(data []byte) error {
1226	type NoMethod CounterUpdate
1227	var s1 struct {
1228		FloatingPoint gensupport.JSONFloat64 `json:"floatingPoint"`
1229		*NoMethod
1230	}
1231	s1.NoMethod = (*NoMethod)(s)
1232	if err := json.Unmarshal(data, &s1); err != nil {
1233		return err
1234	}
1235	s.FloatingPoint = float64(s1.FloatingPoint)
1236	return nil
1237}
1238
1239// CreateJobFromTemplateRequest: A request to create a Cloud Dataflow
1240// job from a template.
1241type CreateJobFromTemplateRequest struct {
1242	// Environment: The runtime environment for the job.
1243	Environment *RuntimeEnvironment `json:"environment,omitempty"`
1244
1245	// GcsPath: Required. A Cloud Storage path to the template from which to
1246	// create the job. Must be a valid Cloud Storage URL, beginning with
1247	// `gs://`.
1248	GcsPath string `json:"gcsPath,omitempty"`
1249
1250	// JobName: Required. The job name to use for the created job.
1251	JobName string `json:"jobName,omitempty"`
1252
1253	// Location: The [regional endpoint]
1254	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
1255	// to which to direct the request.
1256	Location string `json:"location,omitempty"`
1257
1258	// Parameters: The runtime parameters to pass to the job.
1259	Parameters map[string]string `json:"parameters,omitempty"`
1260
1261	// ForceSendFields is a list of field names (e.g. "Environment") to
1262	// unconditionally include in API requests. By default, fields with
1263	// empty or default values are omitted from API requests. However, any
1264	// non-pointer, non-interface field appearing in ForceSendFields will be
1265	// sent to the server regardless of whether the field is empty or not.
1266	// This may be used to include empty fields in Patch requests.
1267	ForceSendFields []string `json:"-"`
1268
1269	// NullFields is a list of field names (e.g. "Environment") to include
1270	// in API requests with the JSON null value. By default, fields with
1271	// empty values are omitted from API requests. However, any field with
1272	// an empty value appearing in NullFields will be sent to the server as
1273	// null. It is an error if a field in this list has a non-empty value.
1274	// This may be used to include null fields in Patch requests.
1275	NullFields []string `json:"-"`
1276}
1277
1278func (s *CreateJobFromTemplateRequest) MarshalJSON() ([]byte, error) {
1279	type NoMethod CreateJobFromTemplateRequest
1280	raw := NoMethod(*s)
1281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1282}
1283
1284// CustomSourceLocation: Identifies the location of a custom souce.
1285type CustomSourceLocation struct {
1286	// Stateful: Whether this source is stateful.
1287	Stateful bool `json:"stateful,omitempty"`
1288
1289	// ForceSendFields is a list of field names (e.g. "Stateful") to
1290	// unconditionally include in API requests. By default, fields with
1291	// empty or default values are omitted from API requests. However, any
1292	// non-pointer, non-interface field appearing in ForceSendFields will be
1293	// sent to the server regardless of whether the field is empty or not.
1294	// This may be used to include empty fields in Patch requests.
1295	ForceSendFields []string `json:"-"`
1296
1297	// NullFields is a list of field names (e.g. "Stateful") to include in
1298	// API requests with the JSON null value. By default, fields with empty
1299	// values are omitted from API requests. However, any field with an
1300	// empty value appearing in NullFields will be sent to the server as
1301	// null. It is an error if a field in this list has a non-empty value.
1302	// This may be used to include null fields in Patch requests.
1303	NullFields []string `json:"-"`
1304}
1305
1306func (s *CustomSourceLocation) MarshalJSON() ([]byte, error) {
1307	type NoMethod CustomSourceLocation
1308	raw := NoMethod(*s)
1309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1310}
1311
1312// DataDiskAssignment: Data disk assignment for a given VM instance.
1313type DataDiskAssignment struct {
1314	// DataDisks: Mounted data disks. The order is important a data disk's
1315	// 0-based index in this list defines which persistent directory the
1316	// disk is mounted to, for example the list of {
1317	// "myproject-1014-104817-4c2-harness-0-disk-0" }, {
1318	// "myproject-1014-104817-4c2-harness-0-disk-1" }.
1319	DataDisks []string `json:"dataDisks,omitempty"`
1320
1321	// VmInstance: VM instance name the data disks mounted to, for example
1322	// "myproject-1014-104817-4c2-harness-0".
1323	VmInstance string `json:"vmInstance,omitempty"`
1324
1325	// ForceSendFields is a list of field names (e.g. "DataDisks") to
1326	// unconditionally include in API requests. By default, fields with
1327	// empty or default values are omitted from API requests. However, any
1328	// non-pointer, non-interface field appearing in ForceSendFields will be
1329	// sent to the server regardless of whether the field is empty or not.
1330	// This may be used to include empty fields in Patch requests.
1331	ForceSendFields []string `json:"-"`
1332
1333	// NullFields is a list of field names (e.g. "DataDisks") to include in
1334	// API requests with the JSON null value. By default, fields with empty
1335	// values are omitted from API requests. However, any field with an
1336	// empty value appearing in NullFields will be sent to the server as
1337	// null. It is an error if a field in this list has a non-empty value.
1338	// This may be used to include null fields in Patch requests.
1339	NullFields []string `json:"-"`
1340}
1341
1342func (s *DataDiskAssignment) MarshalJSON() ([]byte, error) {
1343	type NoMethod DataDiskAssignment
1344	raw := NoMethod(*s)
1345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1346}
1347
1348// DatastoreIODetails: Metadata for a Datastore connector used by the
1349// job.
1350type DatastoreIODetails struct {
1351	// Namespace: Namespace used in the connection.
1352	Namespace string `json:"namespace,omitempty"`
1353
1354	// ProjectId: ProjectId accessed in the connection.
1355	ProjectId string `json:"projectId,omitempty"`
1356
1357	// ForceSendFields is a list of field names (e.g. "Namespace") to
1358	// unconditionally include in API requests. By default, fields with
1359	// empty or default values are omitted from API requests. However, any
1360	// non-pointer, non-interface field appearing in ForceSendFields will be
1361	// sent to the server regardless of whether the field is empty or not.
1362	// This may be used to include empty fields in Patch requests.
1363	ForceSendFields []string `json:"-"`
1364
1365	// NullFields is a list of field names (e.g. "Namespace") to include in
1366	// API requests with the JSON null value. By default, fields with empty
1367	// values are omitted from API requests. However, any field with an
1368	// empty value appearing in NullFields will be sent to the server as
1369	// null. It is an error if a field in this list has a non-empty value.
1370	// This may be used to include null fields in Patch requests.
1371	NullFields []string `json:"-"`
1372}
1373
1374func (s *DatastoreIODetails) MarshalJSON() ([]byte, error) {
1375	type NoMethod DatastoreIODetails
1376	raw := NoMethod(*s)
1377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1378}
1379
1380// DebugOptions: Describes any options that have an effect on the
1381// debugging of pipelines.
1382type DebugOptions struct {
1383	// EnableHotKeyLogging: When true, enables the logging of the literal
1384	// hot key to the user's Cloud Logging.
1385	EnableHotKeyLogging bool `json:"enableHotKeyLogging,omitempty"`
1386
1387	// ForceSendFields is a list of field names (e.g. "EnableHotKeyLogging")
1388	// to unconditionally include in API requests. By default, fields with
1389	// empty or default values are omitted from API requests. However, any
1390	// non-pointer, non-interface field appearing in ForceSendFields will be
1391	// sent to the server regardless of whether the field is empty or not.
1392	// This may be used to include empty fields in Patch requests.
1393	ForceSendFields []string `json:"-"`
1394
1395	// NullFields is a list of field names (e.g. "EnableHotKeyLogging") to
1396	// include in API requests with the JSON null value. By default, fields
1397	// with empty values are omitted from API requests. However, any field
1398	// with an empty value appearing in NullFields will be sent to the
1399	// server as null. It is an error if a field in this list has a
1400	// non-empty value. This may be used to include null fields in Patch
1401	// requests.
1402	NullFields []string `json:"-"`
1403}
1404
1405func (s *DebugOptions) MarshalJSON() ([]byte, error) {
1406	type NoMethod DebugOptions
1407	raw := NoMethod(*s)
1408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1409}
1410
1411// DeleteSnapshotResponse: Response from deleting a snapshot.
1412type DeleteSnapshotResponse struct {
1413	// ServerResponse contains the HTTP response code and headers from the
1414	// server.
1415	googleapi.ServerResponse `json:"-"`
1416}
1417
1418// DerivedSource: Specification of one of the bundles produced as a
1419// result of splitting a Source (e.g. when executing a
1420// SourceSplitRequest, or when splitting an active task using
1421// WorkItemStatus.dynamic_source_split), relative to the source being
1422// split.
1423type DerivedSource struct {
1424	// DerivationMode: What source to base the produced source on (if any).
1425	//
1426	// Possible values:
1427	//   "SOURCE_DERIVATION_MODE_UNKNOWN" - The source derivation is
1428	// unknown, or unspecified.
1429	//   "SOURCE_DERIVATION_MODE_INDEPENDENT" - Produce a completely
1430	// independent Source with no base.
1431	//   "SOURCE_DERIVATION_MODE_CHILD_OF_CURRENT" - Produce a Source based
1432	// on the Source being split.
1433	//   "SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" - Produce a Source
1434	// based on the base of the Source being split.
1435	DerivationMode string `json:"derivationMode,omitempty"`
1436
1437	// Source: Specification of the source.
1438	Source *Source `json:"source,omitempty"`
1439
1440	// ForceSendFields is a list of field names (e.g. "DerivationMode") to
1441	// unconditionally include in API requests. By default, fields with
1442	// empty or default values are omitted from API requests. However, any
1443	// non-pointer, non-interface field appearing in ForceSendFields will be
1444	// sent to the server regardless of whether the field is empty or not.
1445	// This may be used to include empty fields in Patch requests.
1446	ForceSendFields []string `json:"-"`
1447
1448	// NullFields is a list of field names (e.g. "DerivationMode") to
1449	// include in API requests with the JSON null value. By default, fields
1450	// with empty values are omitted from API requests. However, any field
1451	// with an empty value appearing in NullFields will be sent to the
1452	// server as null. It is an error if a field in this list has a
1453	// non-empty value. This may be used to include null fields in Patch
1454	// requests.
1455	NullFields []string `json:"-"`
1456}
1457
1458func (s *DerivedSource) MarshalJSON() ([]byte, error) {
1459	type NoMethod DerivedSource
1460	raw := NoMethod(*s)
1461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1462}
1463
1464// Disk: Describes the data disk used by a workflow job.
1465type Disk struct {
1466	// DiskType: Disk storage type, as defined by Google Compute Engine.
1467	// This must be a disk type appropriate to the project and zone in which
1468	// the workers will run. If unknown or unspecified, the service will
1469	// attempt to choose a reasonable default. For example, the standard
1470	// persistent disk type is a resource name typically ending in
1471	// "pd-standard". If SSD persistent disks are available, the resource
1472	// name typically ends with "pd-ssd". The actual valid values are
1473	// defined the Google Compute Engine API, not by the Cloud Dataflow API;
1474	// consult the Google Compute Engine documentation for more information
1475	// about determining the set of available disk types for a particular
1476	// project and zone. Google Compute Engine Disk types are local to a
1477	// particular project in a particular zone, and so the resource name
1478	// will typically look something like this:
1479	// compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-sta
1480	// ndard
1481	DiskType string `json:"diskType,omitempty"`
1482
1483	// MountPoint: Directory in a VM where disk is mounted.
1484	MountPoint string `json:"mountPoint,omitempty"`
1485
1486	// SizeGb: Size of disk in GB. If zero or unspecified, the service will
1487	// attempt to choose a reasonable default.
1488	SizeGb int64 `json:"sizeGb,omitempty"`
1489
1490	// ForceSendFields is a list of field names (e.g. "DiskType") to
1491	// unconditionally include in API requests. By default, fields with
1492	// empty or default values are omitted from API requests. However, any
1493	// non-pointer, non-interface field appearing in ForceSendFields will be
1494	// sent to the server regardless of whether the field is empty or not.
1495	// This may be used to include empty fields in Patch requests.
1496	ForceSendFields []string `json:"-"`
1497
1498	// NullFields is a list of field names (e.g. "DiskType") to include in
1499	// API requests with the JSON null value. By default, fields with empty
1500	// values are omitted from API requests. However, any field with an
1501	// empty value appearing in NullFields will be sent to the server as
1502	// null. It is an error if a field in this list has a non-empty value.
1503	// This may be used to include null fields in Patch requests.
1504	NullFields []string `json:"-"`
1505}
1506
1507func (s *Disk) MarshalJSON() ([]byte, error) {
1508	type NoMethod Disk
1509	raw := NoMethod(*s)
1510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1511}
1512
1513// DisplayData: Data provided with a pipeline or transform to provide
1514// descriptive info.
1515type DisplayData struct {
1516	// BoolValue: Contains value if the data is of a boolean type.
1517	BoolValue bool `json:"boolValue,omitempty"`
1518
1519	// DurationValue: Contains value if the data is of duration type.
1520	DurationValue string `json:"durationValue,omitempty"`
1521
1522	// FloatValue: Contains value if the data is of float type.
1523	FloatValue float64 `json:"floatValue,omitempty"`
1524
1525	// Int64Value: Contains value if the data is of int64 type.
1526	Int64Value int64 `json:"int64Value,omitempty,string"`
1527
1528	// JavaClassValue: Contains value if the data is of java class type.
1529	JavaClassValue string `json:"javaClassValue,omitempty"`
1530
1531	// Key: The key identifying the display data. This is intended to be
1532	// used as a label for the display data when viewed in a dax monitoring
1533	// system.
1534	Key string `json:"key,omitempty"`
1535
1536	// Label: An optional label to display in a dax UI for the element.
1537	Label string `json:"label,omitempty"`
1538
1539	// Namespace: The namespace for the key. This is usually a class name or
1540	// programming language namespace (i.e. python module) which defines the
1541	// display data. This allows a dax monitoring system to specially handle
1542	// the data and perform custom rendering.
1543	Namespace string `json:"namespace,omitempty"`
1544
1545	// ShortStrValue: A possible additional shorter value to display. For
1546	// example a java_class_name_value of com.mypackage.MyDoFn will be
1547	// stored with MyDoFn as the short_str_value and com.mypackage.MyDoFn as
1548	// the java_class_name value. short_str_value can be displayed and
1549	// java_class_name_value will be displayed as a tooltip.
1550	ShortStrValue string `json:"shortStrValue,omitempty"`
1551
1552	// StrValue: Contains value if the data is of string type.
1553	StrValue string `json:"strValue,omitempty"`
1554
1555	// TimestampValue: Contains value if the data is of timestamp type.
1556	TimestampValue string `json:"timestampValue,omitempty"`
1557
1558	// Url: An optional full URL.
1559	Url string `json:"url,omitempty"`
1560
1561	// ForceSendFields is a list of field names (e.g. "BoolValue") to
1562	// unconditionally include in API requests. By default, fields with
1563	// empty or default values are omitted from API requests. However, any
1564	// non-pointer, non-interface field appearing in ForceSendFields will be
1565	// sent to the server regardless of whether the field is empty or not.
1566	// This may be used to include empty fields in Patch requests.
1567	ForceSendFields []string `json:"-"`
1568
1569	// NullFields is a list of field names (e.g. "BoolValue") to include in
1570	// API requests with the JSON null value. By default, fields with empty
1571	// values are omitted from API requests. However, any field with an
1572	// empty value appearing in NullFields will be sent to the server as
1573	// null. It is an error if a field in this list has a non-empty value.
1574	// This may be used to include null fields in Patch requests.
1575	NullFields []string `json:"-"`
1576}
1577
1578func (s *DisplayData) MarshalJSON() ([]byte, error) {
1579	type NoMethod DisplayData
1580	raw := NoMethod(*s)
1581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1582}
1583
1584func (s *DisplayData) UnmarshalJSON(data []byte) error {
1585	type NoMethod DisplayData
1586	var s1 struct {
1587		FloatValue gensupport.JSONFloat64 `json:"floatValue"`
1588		*NoMethod
1589	}
1590	s1.NoMethod = (*NoMethod)(s)
1591	if err := json.Unmarshal(data, &s1); err != nil {
1592		return err
1593	}
1594	s.FloatValue = float64(s1.FloatValue)
1595	return nil
1596}
1597
1598// DistributionUpdate: A metric value representing a distribution.
1599type DistributionUpdate struct {
1600	// Count: The count of the number of elements present in the
1601	// distribution.
1602	Count *SplitInt64 `json:"count,omitempty"`
1603
1604	// Histogram: (Optional) Histogram of value counts for the distribution.
1605	Histogram *Histogram `json:"histogram,omitempty"`
1606
1607	// Max: The maximum value present in the distribution.
1608	Max *SplitInt64 `json:"max,omitempty"`
1609
1610	// Min: The minimum value present in the distribution.
1611	Min *SplitInt64 `json:"min,omitempty"`
1612
1613	// Sum: Use an int64 since we'd prefer the added precision. If overflow
1614	// is a common problem we can detect it and use an additional int64 or a
1615	// double.
1616	Sum *SplitInt64 `json:"sum,omitempty"`
1617
1618	// SumOfSquares: Use a double since the sum of squares is likely to
1619	// overflow int64.
1620	SumOfSquares float64 `json:"sumOfSquares,omitempty"`
1621
1622	// ForceSendFields is a list of field names (e.g. "Count") to
1623	// unconditionally include in API requests. By default, fields with
1624	// empty or default values are omitted from API requests. However, any
1625	// non-pointer, non-interface field appearing in ForceSendFields will be
1626	// sent to the server regardless of whether the field is empty or not.
1627	// This may be used to include empty fields in Patch requests.
1628	ForceSendFields []string `json:"-"`
1629
1630	// NullFields is a list of field names (e.g. "Count") to include in API
1631	// requests with the JSON null value. By default, fields with empty
1632	// values are omitted from API requests. However, any field with an
1633	// empty value appearing in NullFields will be sent to the server as
1634	// null. It is an error if a field in this list has a non-empty value.
1635	// This may be used to include null fields in Patch requests.
1636	NullFields []string `json:"-"`
1637}
1638
1639func (s *DistributionUpdate) MarshalJSON() ([]byte, error) {
1640	type NoMethod DistributionUpdate
1641	raw := NoMethod(*s)
1642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1643}
1644
1645func (s *DistributionUpdate) UnmarshalJSON(data []byte) error {
1646	type NoMethod DistributionUpdate
1647	var s1 struct {
1648		SumOfSquares gensupport.JSONFloat64 `json:"sumOfSquares"`
1649		*NoMethod
1650	}
1651	s1.NoMethod = (*NoMethod)(s)
1652	if err := json.Unmarshal(data, &s1); err != nil {
1653		return err
1654	}
1655	s.SumOfSquares = float64(s1.SumOfSquares)
1656	return nil
1657}
1658
1659// DynamicSourceSplit: When a task splits using
1660// WorkItemStatus.dynamic_source_split, this message describes the two
1661// parts of the split relative to the description of the current task's
1662// input.
1663type DynamicSourceSplit struct {
1664	// Primary: Primary part (continued to be processed by worker).
1665	// Specified relative to the previously-current source. Becomes current.
1666	Primary *DerivedSource `json:"primary,omitempty"`
1667
1668	// Residual: Residual part (returned to the pool of work). Specified
1669	// relative to the previously-current source.
1670	Residual *DerivedSource `json:"residual,omitempty"`
1671
1672	// ForceSendFields is a list of field names (e.g. "Primary") to
1673	// unconditionally include in API requests. By default, fields with
1674	// empty or default values are omitted from API requests. However, any
1675	// non-pointer, non-interface field appearing in ForceSendFields will be
1676	// sent to the server regardless of whether the field is empty or not.
1677	// This may be used to include empty fields in Patch requests.
1678	ForceSendFields []string `json:"-"`
1679
1680	// NullFields is a list of field names (e.g. "Primary") to include in
1681	// API requests with the JSON null value. By default, fields with empty
1682	// values are omitted from API requests. However, any field with an
1683	// empty value appearing in NullFields will be sent to the server as
1684	// null. It is an error if a field in this list has a non-empty value.
1685	// This may be used to include null fields in Patch requests.
1686	NullFields []string `json:"-"`
1687}
1688
1689func (s *DynamicSourceSplit) MarshalJSON() ([]byte, error) {
1690	type NoMethod DynamicSourceSplit
1691	raw := NoMethod(*s)
1692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1693}
1694
1695// Environment: Describes the environment in which a Dataflow Job runs.
1696type Environment struct {
1697	// ClusterManagerApiService: The type of cluster manager API to use. If
1698	// unknown or unspecified, the service will attempt to choose a
1699	// reasonable default. This should be in the form of the API service
1700	// name, e.g. "compute.googleapis.com".
1701	ClusterManagerApiService string `json:"clusterManagerApiService,omitempty"`
1702
1703	// Dataset: The dataset for the current project where various workflow
1704	// related tables are stored. The supported resource type is: Google
1705	// BigQuery: bigquery.googleapis.com/{dataset}
1706	Dataset string `json:"dataset,omitempty"`
1707
1708	// DebugOptions: Any debugging options to be supplied to the job.
1709	DebugOptions *DebugOptions `json:"debugOptions,omitempty"`
1710
1711	// Experiments: The list of experiments to enable. This field should be
1712	// used for SDK related experiments and not for service related
1713	// experiments. The proper field for service related experiments is
1714	// 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).
1750	ServiceOptions []string `json:"serviceOptions,omitempty"`
1751
1752	// ShuffleMode: Output only. The shuffle mode used for the job.
1753	//
1754	// Possible values:
1755	//   "SHUFFLE_MODE_UNSPECIFIED" - Shuffle mode information is not
1756	// available.
1757	//   "VM_BASED" - Shuffle is done on the worker VMs.
1758	//   "SERVICE_BASED" - Shuffle is done on the service side.
1759	ShuffleMode string `json:"shuffleMode,omitempty"`
1760
1761	// TempStoragePrefix: The prefix of the resources the system should use
1762	// for temporary storage. The system will append the suffix
1763	// "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the
1764	// value of the job_name field. The resulting bucket and object prefix
1765	// is used as the prefix of the resources used to store temporary data
1766	// needed during the job execution. NOTE: This will override the value
1767	// in taskrunner_settings. The supported resource type is: Google Cloud
1768	// Storage: storage.googleapis.com/{bucket}/{object}
1769	// bucket.storage.googleapis.com/{object}
1770	TempStoragePrefix string `json:"tempStoragePrefix,omitempty"`
1771
1772	// UserAgent: A description of the process that generated the request.
1773	UserAgent googleapi.RawMessage `json:"userAgent,omitempty"`
1774
1775	// Version: A structure describing which components and their versions
1776	// of the service are required in order to run the job.
1777	Version googleapi.RawMessage `json:"version,omitempty"`
1778
1779	// WorkerPools: The worker pools. At least one "harness" worker pool
1780	// must be specified in order for the job to have workers.
1781	WorkerPools []*WorkerPool `json:"workerPools,omitempty"`
1782
1783	// WorkerRegion: The Compute Engine region
1784	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
1785	// in which worker processing should occur, e.g. "us-west1". Mutually
1786	// exclusive with worker_zone. If neither worker_region nor worker_zone
1787	// is specified, default to the control plane's region.
1788	WorkerRegion string `json:"workerRegion,omitempty"`
1789
1790	// WorkerZone: The Compute Engine zone
1791	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
1792	// in which worker processing should occur, e.g. "us-west1-a". Mutually
1793	// exclusive with worker_region. If neither worker_region nor
1794	// worker_zone is specified, a zone in the control plane's region is
1795	// chosen based on available capacity.
1796	WorkerZone string `json:"workerZone,omitempty"`
1797
1798	// ForceSendFields is a list of field names (e.g.
1799	// "ClusterManagerApiService") to unconditionally include in API
1800	// requests. By default, fields with empty or default values are omitted
1801	// from API requests. However, any non-pointer, non-interface field
1802	// appearing in ForceSendFields will be sent to the server regardless of
1803	// whether the field is empty or not. This may be used to include empty
1804	// fields in Patch requests.
1805	ForceSendFields []string `json:"-"`
1806
1807	// NullFields is a list of field names (e.g. "ClusterManagerApiService")
1808	// to include in API requests with the JSON null value. By default,
1809	// fields with empty values are omitted from API requests. However, any
1810	// field with an empty value appearing in NullFields will be sent to the
1811	// server as null. It is an error if a field in this list has a
1812	// non-empty value. This may be used to include null fields in Patch
1813	// requests.
1814	NullFields []string `json:"-"`
1815}
1816
1817func (s *Environment) MarshalJSON() ([]byte, error) {
1818	type NoMethod Environment
1819	raw := NoMethod(*s)
1820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1821}
1822
1823// ExecutionStageState: A message describing the state of a particular
1824// execution stage.
1825type ExecutionStageState struct {
1826	// CurrentStateTime: The time at which the stage transitioned to this
1827	// state.
1828	CurrentStateTime string `json:"currentStateTime,omitempty"`
1829
1830	// ExecutionStageName: The name of the execution stage.
1831	ExecutionStageName string `json:"executionStageName,omitempty"`
1832
1833	// ExecutionStageState: Executions stage states allow the same set of
1834	// values as JobState.
1835	//
1836	// Possible values:
1837	//   "JOB_STATE_UNKNOWN" - The job's run state isn't specified.
1838	//   "JOB_STATE_STOPPED" - `JOB_STATE_STOPPED` indicates that the job
1839	// has not yet started to run.
1840	//   "JOB_STATE_RUNNING" - `JOB_STATE_RUNNING` indicates that the job is
1841	// currently running.
1842	//   "JOB_STATE_DONE" - `JOB_STATE_DONE` indicates that the job has
1843	// successfully completed. This is a terminal job state. This state may
1844	// be set by the Cloud Dataflow service, as a transition from
1845	// `JOB_STATE_RUNNING`. It may also be set via a Cloud Dataflow
1846	// `UpdateJob` call, if the job has not yet reached a terminal state.
1847	//   "JOB_STATE_FAILED" - `JOB_STATE_FAILED` indicates that the job has
1848	// failed. This is a terminal job state. This state may only be set by
1849	// the Cloud Dataflow service, and only as a transition from
1850	// `JOB_STATE_RUNNING`.
1851	//   "JOB_STATE_CANCELLED" - `JOB_STATE_CANCELLED` indicates that the
1852	// job has been explicitly cancelled. This is a terminal job state. This
1853	// state may only be set via a Cloud Dataflow `UpdateJob` call, and only
1854	// if the job has not yet reached another terminal state.
1855	//   "JOB_STATE_UPDATED" - `JOB_STATE_UPDATED` indicates that the job
1856	// was successfully updated, meaning that this job was stopped and
1857	// another job was started, inheriting state from this one. This is a
1858	// terminal job state. This state may only be set by the Cloud Dataflow
1859	// service, and only as a transition from `JOB_STATE_RUNNING`.
1860	//   "JOB_STATE_DRAINING" - `JOB_STATE_DRAINING` indicates that the job
1861	// is in the process of draining. A draining job has stopped pulling
1862	// from its input sources and is processing any data that remains
1863	// in-flight. This state may be set via a Cloud Dataflow `UpdateJob`
1864	// call, but only as a transition from `JOB_STATE_RUNNING`. Jobs that
1865	// are draining may only transition to `JOB_STATE_DRAINED`,
1866	// `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.
1867	//   "JOB_STATE_DRAINED" - `JOB_STATE_DRAINED` indicates that the job
1868	// has been drained. A drained job terminated by stopping pulling from
1869	// its input sources and processing any data that remained in-flight
1870	// when draining was requested. This state is a terminal state, may only
1871	// be set by the Cloud Dataflow service, and only as a transition from
1872	// `JOB_STATE_DRAINING`.
1873	//   "JOB_STATE_PENDING" - `JOB_STATE_PENDING` indicates that the job
1874	// has been created but is not yet running. Jobs that are pending may
1875	// only transition to `JOB_STATE_RUNNING`, or `JOB_STATE_FAILED`.
1876	//   "JOB_STATE_CANCELLING" - `JOB_STATE_CANCELLING` indicates that the
1877	// job has been explicitly cancelled and is in the process of stopping.
1878	// Jobs that are cancelling may only transition to `JOB_STATE_CANCELLED`
1879	// or `JOB_STATE_FAILED`.
1880	//   "JOB_STATE_QUEUED" - `JOB_STATE_QUEUED` indicates that the job has
1881	// been created but is being delayed until launch. Jobs that are queued
1882	// may only transition to `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.
1883	//   "JOB_STATE_RESOURCE_CLEANING_UP" - `JOB_STATE_RESOURCE_CLEANING_UP`
1884	// indicates that the batch job's associated resources are currently
1885	// being cleaned up after a successful run. Currently, this is an opt-in
1886	// feature, please reach out to Cloud support team if you are
1887	// interested.
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 or default values are omitted from API requests. However, any
1893	// non-pointer, non-interface field appearing in ForceSendFields will be
1894	// sent to the server regardless of whether the field is empty or not.
1895	// This may be 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 transform 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 or default values are omitted from API requests. However, any
1961	// non-pointer, non-interface field appearing in ForceSendFields will be
1962	// sent to the server regardless of whether the field is empty or not.
1963	// This may be 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 or default values are omitted from API requests. However, any
1994	// non-pointer, non-interface field appearing in ForceSendFields will be
1995	// sent to the server regardless of whether the field is empty or not.
1996	// This may be 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 or default values are omitted from API requests. However, any
2022	// non-pointer, non-interface field appearing in ForceSendFields will be
2023	// sent to the server regardless of whether the field is empty or not.
2024	// This may be 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 or default values are omitted from API requests. However, any
2051	// non-pointer, non-interface field appearing in ForceSendFields will be
2052	// sent to the server regardless of whether the field is empty or not.
2053	// This may be 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	// AutoscalingAlgorithm: The algorithm to use for autoscaling
2086	//
2087	// Possible values:
2088	//   "AUTOSCALING_ALGORITHM_UNKNOWN" - The algorithm is unknown, or
2089	// unspecified.
2090	//   "AUTOSCALING_ALGORITHM_NONE" - Disable autoscaling.
2091	//   "AUTOSCALING_ALGORITHM_BASIC" - Increase worker count over time to
2092	// reduce job execution time.
2093	AutoscalingAlgorithm string `json:"autoscalingAlgorithm,omitempty"`
2094
2095	// DiskSizeGb: Worker disk size, in gigabytes.
2096	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
2097
2098	// DumpHeapOnOom: If true, save a heap dump before killing a thread or
2099	// process which is GC thrashing or out of memory. The location of the
2100	// heap file will either be echoed back to the user, or the user will be
2101	// given the opportunity to download the heap file.
2102	DumpHeapOnOom bool `json:"dumpHeapOnOom,omitempty"`
2103
2104	// EnableStreamingEngine: Whether to enable Streaming Engine for the
2105	// job.
2106	EnableStreamingEngine bool `json:"enableStreamingEngine,omitempty"`
2107
2108	// FlexrsGoal: Set FlexRS goal for the job.
2109	// https://cloud.google.com/dataflow/docs/guides/flexrs
2110	//
2111	// Possible values:
2112	//   "FLEXRS_UNSPECIFIED" - Run in the default mode.
2113	//   "FLEXRS_SPEED_OPTIMIZED" - Optimize for lower execution time.
2114	//   "FLEXRS_COST_OPTIMIZED" - Optimize for lower cost.
2115	FlexrsGoal string `json:"flexrsGoal,omitempty"`
2116
2117	// IpConfiguration: Configuration for VM IPs.
2118	//
2119	// Possible values:
2120	//   "WORKER_IP_UNSPECIFIED" - The configuration is unknown, or
2121	// unspecified.
2122	//   "WORKER_IP_PUBLIC" - Workers should have public IP addresses.
2123	//   "WORKER_IP_PRIVATE" - Workers should have private IP addresses.
2124	IpConfiguration string `json:"ipConfiguration,omitempty"`
2125
2126	// KmsKeyName: Name for the Cloud KMS key for the job. Key format is:
2127	// projects//locations//keyRings//cryptoKeys/
2128	KmsKeyName string `json:"kmsKeyName,omitempty"`
2129
2130	// LauncherMachineType: The machine type to use for launching the job.
2131	// The default is n1-standard-1.
2132	LauncherMachineType string `json:"launcherMachineType,omitempty"`
2133
2134	// MachineType: The machine type to use for the job. Defaults to the
2135	// value from the template if not specified.
2136	MachineType string `json:"machineType,omitempty"`
2137
2138	// MaxWorkers: The maximum number of Google Compute Engine instances to
2139	// be made available to your pipeline during execution, from 1 to 1000.
2140	MaxWorkers int64 `json:"maxWorkers,omitempty"`
2141
2142	// Network: Network to which VMs will be assigned. If empty or
2143	// unspecified, the service will use the network "default".
2144	Network string `json:"network,omitempty"`
2145
2146	// NumWorkers: The initial number of Google Compute Engine instances for
2147	// the job.
2148	NumWorkers int64 `json:"numWorkers,omitempty"`
2149
2150	// SaveHeapDumpsToGcsPath: Cloud Storage bucket (directory) to upload
2151	// heap dumps to the given location. Enabling this implies that heap
2152	// dumps should be generated on OOM (dump_heap_on_oom is set to true).
2153	SaveHeapDumpsToGcsPath string `json:"saveHeapDumpsToGcsPath,omitempty"`
2154
2155	// SdkContainerImage: Docker registry location of container image to use
2156	// for the 'worker harness. Default is the container for the version of
2157	// the SDK. Note this field is only valid for portable pipelines.
2158	SdkContainerImage string `json:"sdkContainerImage,omitempty"`
2159
2160	// ServiceAccountEmail: The email address of the service account to run
2161	// the job as.
2162	ServiceAccountEmail string `json:"serviceAccountEmail,omitempty"`
2163
2164	// StagingLocation: The Cloud Storage path for staging local files. Must
2165	// be a valid Cloud Storage URL, beginning with `gs://`.
2166	StagingLocation string `json:"stagingLocation,omitempty"`
2167
2168	// Subnetwork: Subnetwork to which VMs will be assigned, if desired. You
2169	// can specify a subnetwork using either a complete URL or an
2170	// abbreviated path. Expected to be of the form
2171	// "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/region
2172	// s/REGION/subnetworks/SUBNETWORK" or
2173	// "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located
2174	// in a Shared VPC network, you must use the complete URL.
2175	Subnetwork string `json:"subnetwork,omitempty"`
2176
2177	// TempLocation: The Cloud Storage path to use for temporary files. Must
2178	// be a valid Cloud Storage URL, beginning with `gs://`.
2179	TempLocation string `json:"tempLocation,omitempty"`
2180
2181	// WorkerRegion: The Compute Engine region
2182	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
2183	// in which worker processing should occur, e.g. "us-west1". Mutually
2184	// exclusive with worker_zone. If neither worker_region nor worker_zone
2185	// is specified, default to the control plane's region.
2186	WorkerRegion string `json:"workerRegion,omitempty"`
2187
2188	// WorkerZone: The Compute Engine zone
2189	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
2190	// in which worker processing should occur, e.g. "us-west1-a". Mutually
2191	// exclusive with worker_region. If neither worker_region nor
2192	// worker_zone is specified, a zone in the control plane's region is
2193	// chosen based on available capacity. If both `worker_zone` and `zone`
2194	// are set, `worker_zone` takes precedence.
2195	WorkerZone string `json:"workerZone,omitempty"`
2196
2197	// Zone: The Compute Engine availability zone
2198	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
2199	// for launching worker instances to run your pipeline. In the future,
2200	// worker_zone will take precedence.
2201	Zone string `json:"zone,omitempty"`
2202
2203	// ForceSendFields is a list of field names (e.g.
2204	// "AdditionalExperiments") to unconditionally include in API requests.
2205	// By default, fields with empty or default values are omitted from API
2206	// requests. However, any non-pointer, non-interface field appearing in
2207	// ForceSendFields will be sent to the server regardless of whether the
2208	// field is empty or not. This may be used to include empty fields in
2209	// Patch requests.
2210	ForceSendFields []string `json:"-"`
2211
2212	// NullFields is a list of field names (e.g. "AdditionalExperiments") to
2213	// include in API requests with the JSON null value. By default, fields
2214	// with empty values are omitted from API requests. However, any field
2215	// with an empty value appearing in NullFields will be sent to the
2216	// server as null. It is an error if a field in this list has a
2217	// non-empty value. This may be used to include null fields in Patch
2218	// requests.
2219	NullFields []string `json:"-"`
2220}
2221
2222func (s *FlexTemplateRuntimeEnvironment) MarshalJSON() ([]byte, error) {
2223	type NoMethod FlexTemplateRuntimeEnvironment
2224	raw := NoMethod(*s)
2225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2226}
2227
2228// FloatingPointList: A metric value representing a list of floating
2229// point numbers.
2230type FloatingPointList struct {
2231	// Elements: Elements of the list.
2232	Elements []float64 `json:"elements,omitempty"`
2233
2234	// ForceSendFields is a list of field names (e.g. "Elements") to
2235	// unconditionally include in API requests. By default, fields with
2236	// empty or default values are omitted from API requests. However, any
2237	// non-pointer, non-interface field appearing in ForceSendFields will be
2238	// sent to the server regardless of whether the field is empty or not.
2239	// This may be used to include empty fields in Patch requests.
2240	ForceSendFields []string `json:"-"`
2241
2242	// NullFields is a list of field names (e.g. "Elements") to include in
2243	// API requests with the JSON null value. By default, fields with empty
2244	// values are omitted from API requests. However, any field with an
2245	// empty value appearing in NullFields will be sent to the server as
2246	// null. It is an error if a field in this list has a non-empty value.
2247	// This may be used to include null fields in Patch requests.
2248	NullFields []string `json:"-"`
2249}
2250
2251func (s *FloatingPointList) MarshalJSON() ([]byte, error) {
2252	type NoMethod FloatingPointList
2253	raw := NoMethod(*s)
2254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2255}
2256
2257// FloatingPointMean: A representation of a floating point mean metric
2258// contribution.
2259type FloatingPointMean struct {
2260	// Count: The number of values being aggregated.
2261	Count *SplitInt64 `json:"count,omitempty"`
2262
2263	// Sum: The sum of all values being aggregated.
2264	Sum float64 `json:"sum,omitempty"`
2265
2266	// ForceSendFields is a list of field names (e.g. "Count") to
2267	// unconditionally include in API requests. By default, fields with
2268	// empty or default values are omitted from API requests. However, any
2269	// non-pointer, non-interface field appearing in ForceSendFields will be
2270	// sent to the server regardless of whether the field is empty or not.
2271	// This may be used to include empty fields in Patch requests.
2272	ForceSendFields []string `json:"-"`
2273
2274	// NullFields is a list of field names (e.g. "Count") to include in API
2275	// requests with the JSON null value. By default, fields with empty
2276	// values are omitted from API requests. However, any field with an
2277	// empty value appearing in NullFields will be sent to the server as
2278	// null. It is an error if a field in this list has a non-empty value.
2279	// This may be used to include null fields in Patch requests.
2280	NullFields []string `json:"-"`
2281}
2282
2283func (s *FloatingPointMean) MarshalJSON() ([]byte, error) {
2284	type NoMethod FloatingPointMean
2285	raw := NoMethod(*s)
2286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2287}
2288
2289func (s *FloatingPointMean) UnmarshalJSON(data []byte) error {
2290	type NoMethod FloatingPointMean
2291	var s1 struct {
2292		Sum gensupport.JSONFloat64 `json:"sum"`
2293		*NoMethod
2294	}
2295	s1.NoMethod = (*NoMethod)(s)
2296	if err := json.Unmarshal(data, &s1); err != nil {
2297		return err
2298	}
2299	s.Sum = float64(s1.Sum)
2300	return nil
2301}
2302
2303// GetDebugConfigRequest: Request to get updated debug configuration for
2304// component.
2305type GetDebugConfigRequest struct {
2306	// ComponentId: The internal component id for which debug configuration
2307	// is requested.
2308	ComponentId string `json:"componentId,omitempty"`
2309
2310	// Location: The [regional endpoint]
2311	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
2312	// that contains the job specified by job_id.
2313	Location string `json:"location,omitempty"`
2314
2315	// WorkerId: The worker id, i.e., VM hostname.
2316	WorkerId string `json:"workerId,omitempty"`
2317
2318	// ForceSendFields is a list of field names (e.g. "ComponentId") to
2319	// unconditionally include in API requests. By default, fields with
2320	// empty or default values are omitted from API requests. However, any
2321	// non-pointer, non-interface field appearing in ForceSendFields will be
2322	// sent to the server regardless of whether the field is empty or not.
2323	// This may be used to include empty fields in Patch requests.
2324	ForceSendFields []string `json:"-"`
2325
2326	// NullFields is a list of field names (e.g. "ComponentId") to include
2327	// in API requests with the JSON null value. By default, fields with
2328	// empty values are omitted from API requests. However, any field with
2329	// an empty value appearing in NullFields will be sent to the server as
2330	// null. It is an error if a field in this list has a non-empty value.
2331	// This may be used to include null fields in Patch requests.
2332	NullFields []string `json:"-"`
2333}
2334
2335func (s *GetDebugConfigRequest) MarshalJSON() ([]byte, error) {
2336	type NoMethod GetDebugConfigRequest
2337	raw := NoMethod(*s)
2338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2339}
2340
2341// GetDebugConfigResponse: Response to a get debug configuration
2342// request.
2343type GetDebugConfigResponse struct {
2344	// Config: The encoded debug configuration for the requested component.
2345	Config string `json:"config,omitempty"`
2346
2347	// ServerResponse contains the HTTP response code and headers from the
2348	// server.
2349	googleapi.ServerResponse `json:"-"`
2350
2351	// ForceSendFields is a list of field names (e.g. "Config") to
2352	// unconditionally include in API requests. By default, fields with
2353	// empty or default values are omitted from API requests. However, any
2354	// non-pointer, non-interface field appearing in ForceSendFields will be
2355	// sent to the server regardless of whether the field is empty or not.
2356	// This may be used to include empty fields in Patch requests.
2357	ForceSendFields []string `json:"-"`
2358
2359	// NullFields is a list of field names (e.g. "Config") to include in API
2360	// requests with the JSON null value. By default, fields with empty
2361	// values are omitted from API requests. However, any field with an
2362	// empty value appearing in NullFields will be sent to the server as
2363	// null. It is an error if a field in this list has a non-empty value.
2364	// This may be used to include null fields in Patch requests.
2365	NullFields []string `json:"-"`
2366}
2367
2368func (s *GetDebugConfigResponse) MarshalJSON() ([]byte, error) {
2369	type NoMethod GetDebugConfigResponse
2370	raw := NoMethod(*s)
2371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2372}
2373
2374// GetTemplateResponse: The response to a GetTemplate request.
2375type GetTemplateResponse struct {
2376	// Metadata: The template metadata describing the template name,
2377	// available parameters, etc.
2378	Metadata *TemplateMetadata `json:"metadata,omitempty"`
2379
2380	// RuntimeMetadata: Describes the runtime metadata with SDKInfo and
2381	// available parameters.
2382	RuntimeMetadata *RuntimeMetadata `json:"runtimeMetadata,omitempty"`
2383
2384	// Status: The status of the get template request. Any problems with the
2385	// request will be indicated in the error_details.
2386	Status *Status `json:"status,omitempty"`
2387
2388	// TemplateType: Template Type.
2389	//
2390	// Possible values:
2391	//   "UNKNOWN" - Unknown Template Type.
2392	//   "LEGACY" - Legacy Template.
2393	//   "FLEX" - Flex Template.
2394	TemplateType string `json:"templateType,omitempty"`
2395
2396	// ServerResponse contains the HTTP response code and headers from the
2397	// server.
2398	googleapi.ServerResponse `json:"-"`
2399
2400	// ForceSendFields is a list of field names (e.g. "Metadata") to
2401	// unconditionally include in API requests. By default, fields with
2402	// empty or default values are omitted from API requests. However, any
2403	// non-pointer, non-interface field appearing in ForceSendFields will be
2404	// sent to the server regardless of whether the field is empty or not.
2405	// This may be used to include empty fields in Patch requests.
2406	ForceSendFields []string `json:"-"`
2407
2408	// NullFields is a list of field names (e.g. "Metadata") to include in
2409	// API requests with the JSON null value. By default, fields with empty
2410	// values are omitted from API requests. However, any field with an
2411	// empty value appearing in NullFields will be sent to the server as
2412	// null. It is an error if a field in this list has a non-empty value.
2413	// This may be used to include null fields in Patch requests.
2414	NullFields []string `json:"-"`
2415}
2416
2417func (s *GetTemplateResponse) MarshalJSON() ([]byte, error) {
2418	type NoMethod GetTemplateResponse
2419	raw := NoMethod(*s)
2420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2421}
2422
2423// Histogram: Histogram of value counts for a distribution. Buckets have
2424// an inclusive lower bound and exclusive upper bound and use "1,2,5
2425// bucketing": The first bucket range is from [0,1) and all subsequent
2426// bucket boundaries are powers of ten multiplied by 1, 2, or 5. Thus,
2427// bucket boundaries are 0, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000,
2428// ... Negative values are not supported.
2429type Histogram struct {
2430	// BucketCounts: Counts of values in each bucket. For efficiency, prefix
2431	// and trailing buckets with count = 0 are elided. Buckets can store the
2432	// full range of values of an unsigned long, with ULLONG_MAX falling
2433	// into the 59th bucket with range [1e19, 2e19).
2434	BucketCounts googleapi.Int64s `json:"bucketCounts,omitempty"`
2435
2436	// FirstBucketOffset: Starting index of first stored bucket. The
2437	// non-inclusive upper-bound of the ith bucket is given by:
2438	// pow(10,(i-first_bucket_offset)/3) *
2439	// (1,2,5)[(i-first_bucket_offset)%3]
2440	FirstBucketOffset int64 `json:"firstBucketOffset,omitempty"`
2441
2442	// ForceSendFields is a list of field names (e.g. "BucketCounts") to
2443	// unconditionally include in API requests. By default, fields with
2444	// empty or default values are omitted from API requests. However, any
2445	// non-pointer, non-interface field appearing in ForceSendFields will be
2446	// sent to the server regardless of whether the field is empty or not.
2447	// This may be used to include empty fields in Patch requests.
2448	ForceSendFields []string `json:"-"`
2449
2450	// NullFields is a list of field names (e.g. "BucketCounts") to include
2451	// in API requests with the JSON null value. By default, fields with
2452	// empty values are omitted from API requests. However, any field with
2453	// an empty value appearing in NullFields will be sent to the server as
2454	// null. It is an error if a field in this list has a non-empty value.
2455	// This may be used to include null fields in Patch requests.
2456	NullFields []string `json:"-"`
2457}
2458
2459func (s *Histogram) MarshalJSON() ([]byte, error) {
2460	type NoMethod Histogram
2461	raw := NoMethod(*s)
2462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2463}
2464
2465// HotKeyDetection: Proto describing a hot key detected on a given
2466// WorkItem.
2467type HotKeyDetection struct {
2468	// HotKeyAge: The age of the hot key measured from when it was first
2469	// detected.
2470	HotKeyAge string `json:"hotKeyAge,omitempty"`
2471
2472	// SystemName: System-defined name of the step containing this hot key.
2473	// Unique across the workflow.
2474	SystemName string `json:"systemName,omitempty"`
2475
2476	// UserStepName: User-provided name of the step that contains this hot
2477	// key.
2478	UserStepName string `json:"userStepName,omitempty"`
2479
2480	// ForceSendFields is a list of field names (e.g. "HotKeyAge") to
2481	// unconditionally include in API requests. By default, fields with
2482	// empty or default values are omitted from API requests. However, any
2483	// non-pointer, non-interface field appearing in ForceSendFields will be
2484	// sent to the server regardless of whether the field is empty or not.
2485	// This may be used to include empty fields in Patch requests.
2486	ForceSendFields []string `json:"-"`
2487
2488	// NullFields is a list of field names (e.g. "HotKeyAge") to include in
2489	// API requests with the JSON null value. By default, fields with empty
2490	// values are omitted from API requests. However, any field with an
2491	// empty value appearing in NullFields will be sent to the server as
2492	// null. It is an error if a field in this list has a non-empty value.
2493	// This may be used to include null fields in Patch requests.
2494	NullFields []string `json:"-"`
2495}
2496
2497func (s *HotKeyDetection) MarshalJSON() ([]byte, error) {
2498	type NoMethod HotKeyDetection
2499	raw := NoMethod(*s)
2500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2501}
2502
2503// InstructionInput: An input of an instruction, as a reference to an
2504// output of a producer instruction.
2505type InstructionInput struct {
2506	// OutputNum: The output index (origin zero) within the producer.
2507	OutputNum int64 `json:"outputNum,omitempty"`
2508
2509	// ProducerInstructionIndex: The index (origin zero) of the parallel
2510	// instruction that produces the output to be consumed by this input.
2511	// This index is relative to the list of instructions in this input's
2512	// instruction's containing MapTask.
2513	ProducerInstructionIndex int64 `json:"producerInstructionIndex,omitempty"`
2514
2515	// ForceSendFields is a list of field names (e.g. "OutputNum") to
2516	// unconditionally include in API requests. By default, fields with
2517	// empty or default values are omitted from API requests. However, any
2518	// non-pointer, non-interface field appearing in ForceSendFields will be
2519	// sent to the server regardless of whether the field is empty or not.
2520	// This may be used to include empty fields in Patch requests.
2521	ForceSendFields []string `json:"-"`
2522
2523	// NullFields is a list of field names (e.g. "OutputNum") to include in
2524	// API requests with the JSON null value. By default, fields with empty
2525	// values are omitted from API requests. However, any field with an
2526	// empty value appearing in NullFields will be sent to the server as
2527	// null. It is an error if a field in this list has a non-empty value.
2528	// This may be used to include null fields in Patch requests.
2529	NullFields []string `json:"-"`
2530}
2531
2532func (s *InstructionInput) MarshalJSON() ([]byte, error) {
2533	type NoMethod InstructionInput
2534	raw := NoMethod(*s)
2535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2536}
2537
2538// InstructionOutput: An output of an instruction.
2539type InstructionOutput struct {
2540	// Codec: The codec to use to encode data being written via this output.
2541	Codec googleapi.RawMessage `json:"codec,omitempty"`
2542
2543	// Name: The user-provided name of this output.
2544	Name string `json:"name,omitempty"`
2545
2546	// OnlyCountKeyBytes: For system-generated byte and mean byte metrics,
2547	// certain instructions should only report the key size.
2548	OnlyCountKeyBytes bool `json:"onlyCountKeyBytes,omitempty"`
2549
2550	// OnlyCountValueBytes: For system-generated byte and mean byte metrics,
2551	// certain instructions should only report the value size.
2552	OnlyCountValueBytes bool `json:"onlyCountValueBytes,omitempty"`
2553
2554	// OriginalName: System-defined name for this output in the original
2555	// workflow graph. Outputs that do not contribute to an original
2556	// instruction do not set this.
2557	OriginalName string `json:"originalName,omitempty"`
2558
2559	// SystemName: System-defined name of this output. Unique across the
2560	// workflow.
2561	SystemName string `json:"systemName,omitempty"`
2562
2563	// ForceSendFields is a list of field names (e.g. "Codec") to
2564	// unconditionally include in API requests. By default, fields with
2565	// empty or default values are omitted from API requests. However, any
2566	// non-pointer, non-interface field appearing in ForceSendFields will be
2567	// sent to the server regardless of whether the field is empty or not.
2568	// This may be used to include empty fields in Patch requests.
2569	ForceSendFields []string `json:"-"`
2570
2571	// NullFields is a list of field names (e.g. "Codec") to include in API
2572	// requests with the JSON null value. By default, fields with empty
2573	// values are omitted from API requests. However, any field with an
2574	// empty value appearing in NullFields will be sent to the server as
2575	// null. It is an error if a field in this list has a non-empty value.
2576	// This may be used to include null fields in Patch requests.
2577	NullFields []string `json:"-"`
2578}
2579
2580func (s *InstructionOutput) MarshalJSON() ([]byte, error) {
2581	type NoMethod InstructionOutput
2582	raw := NoMethod(*s)
2583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2584}
2585
2586// IntegerGauge: A metric value representing temporal values of a
2587// variable.
2588type IntegerGauge struct {
2589	// Timestamp: The time at which this value was measured. Measured as
2590	// msecs from epoch.
2591	Timestamp string `json:"timestamp,omitempty"`
2592
2593	// Value: The value of the variable represented by this gauge.
2594	Value *SplitInt64 `json:"value,omitempty"`
2595
2596	// ForceSendFields is a list of field names (e.g. "Timestamp") to
2597	// unconditionally include in API requests. By default, fields with
2598	// empty or default values are omitted from API requests. However, any
2599	// non-pointer, non-interface field appearing in ForceSendFields will be
2600	// sent to the server regardless of whether the field is empty or not.
2601	// This may be used to include empty fields in Patch requests.
2602	ForceSendFields []string `json:"-"`
2603
2604	// NullFields is a list of field names (e.g. "Timestamp") to include in
2605	// API requests with the JSON null value. By default, fields with empty
2606	// values are omitted from API requests. However, any field with an
2607	// empty value appearing in NullFields will be sent to the server as
2608	// null. It is an error if a field in this list has a non-empty value.
2609	// This may be used to include null fields in Patch requests.
2610	NullFields []string `json:"-"`
2611}
2612
2613func (s *IntegerGauge) MarshalJSON() ([]byte, error) {
2614	type NoMethod IntegerGauge
2615	raw := NoMethod(*s)
2616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2617}
2618
2619// IntegerList: A metric value representing a list of integers.
2620type IntegerList struct {
2621	// Elements: Elements of the list.
2622	Elements []*SplitInt64 `json:"elements,omitempty"`
2623
2624	// ForceSendFields is a list of field names (e.g. "Elements") to
2625	// unconditionally include in API requests. By default, fields with
2626	// empty or default values are omitted from API requests. However, any
2627	// non-pointer, non-interface field appearing in ForceSendFields will be
2628	// sent to the server regardless of whether the field is empty or not.
2629	// This may be used to include empty fields in Patch requests.
2630	ForceSendFields []string `json:"-"`
2631
2632	// NullFields is a list of field names (e.g. "Elements") to include in
2633	// API requests with the JSON null value. By default, fields with empty
2634	// values are omitted from API requests. However, any field with an
2635	// empty value appearing in NullFields will be sent to the server as
2636	// null. It is an error if a field in this list has a non-empty value.
2637	// This may be used to include null fields in Patch requests.
2638	NullFields []string `json:"-"`
2639}
2640
2641func (s *IntegerList) MarshalJSON() ([]byte, error) {
2642	type NoMethod IntegerList
2643	raw := NoMethod(*s)
2644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2645}
2646
2647// IntegerMean: A representation of an integer mean metric contribution.
2648type IntegerMean struct {
2649	// Count: The number of values being aggregated.
2650	Count *SplitInt64 `json:"count,omitempty"`
2651
2652	// Sum: The sum of all values being aggregated.
2653	Sum *SplitInt64 `json:"sum,omitempty"`
2654
2655	// ForceSendFields is a list of field names (e.g. "Count") to
2656	// unconditionally include in API requests. By default, fields with
2657	// empty or default values are omitted from API requests. However, any
2658	// non-pointer, non-interface field appearing in ForceSendFields will be
2659	// sent to the server regardless of whether the field is empty or not.
2660	// This may be used to include empty fields in Patch requests.
2661	ForceSendFields []string `json:"-"`
2662
2663	// NullFields is a list of field names (e.g. "Count") to include in API
2664	// requests with the JSON null value. By default, fields with empty
2665	// values are omitted from API requests. However, any field with an
2666	// empty value appearing in NullFields will be sent to the server as
2667	// null. It is an error if a field in this list has a non-empty value.
2668	// This may be used to include null fields in Patch requests.
2669	NullFields []string `json:"-"`
2670}
2671
2672func (s *IntegerMean) MarshalJSON() ([]byte, error) {
2673	type NoMethod IntegerMean
2674	raw := NoMethod(*s)
2675	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2676}
2677
2678// Job: Defines a job to be run by the Cloud Dataflow service. nextID:
2679// 26
2680type Job struct {
2681	// ClientRequestId: The client's unique identifier of the job, re-used
2682	// across retried attempts. If this field is set, the service will
2683	// ensure its uniqueness. The request to create a job will fail if the
2684	// service has knowledge of a previously submitted job with the same
2685	// client's ID and job name. The caller may use this field to ensure
2686	// idempotence of job creation across retried attempts to create a job.
2687	// By default, the field is empty and, in that case, the service ignores
2688	// it.
2689	ClientRequestId string `json:"clientRequestId,omitempty"`
2690
2691	// CreateTime: The timestamp when the job was initially created.
2692	// Immutable and set by the Cloud Dataflow service.
2693	CreateTime string `json:"createTime,omitempty"`
2694
2695	// CreatedFromSnapshotId: If this is specified, the job's initial state
2696	// is populated from the given snapshot.
2697	CreatedFromSnapshotId string `json:"createdFromSnapshotId,omitempty"`
2698
2699	// CurrentState: The current state of the job. Jobs are created in the
2700	// `JOB_STATE_STOPPED` state unless otherwise specified. A job in the
2701	// `JOB_STATE_RUNNING` state may asynchronously enter a terminal state.
2702	// After a job has reached a terminal state, no further state updates
2703	// may be made. This field may be mutated by the Cloud Dataflow service;
2704	// callers cannot mutate it.
2705	//
2706	// Possible values:
2707	//   "JOB_STATE_UNKNOWN" - The job's run state isn't specified.
2708	//   "JOB_STATE_STOPPED" - `JOB_STATE_STOPPED` indicates that the job
2709	// has not yet started to run.
2710	//   "JOB_STATE_RUNNING" - `JOB_STATE_RUNNING` indicates that the job is
2711	// currently running.
2712	//   "JOB_STATE_DONE" - `JOB_STATE_DONE` indicates that the job has
2713	// successfully completed. This is a terminal job state. This state may
2714	// be set by the Cloud Dataflow service, as a transition from
2715	// `JOB_STATE_RUNNING`. It may also be set via a Cloud Dataflow
2716	// `UpdateJob` call, if the job has not yet reached a terminal state.
2717	//   "JOB_STATE_FAILED" - `JOB_STATE_FAILED` indicates that the job has
2718	// failed. This is a terminal job state. This state may only be set by
2719	// the Cloud Dataflow service, and only as a transition from
2720	// `JOB_STATE_RUNNING`.
2721	//   "JOB_STATE_CANCELLED" - `JOB_STATE_CANCELLED` indicates that the
2722	// job has been explicitly cancelled. This is a terminal job state. This
2723	// state may only be set via a Cloud Dataflow `UpdateJob` call, and only
2724	// if the job has not yet reached another terminal state.
2725	//   "JOB_STATE_UPDATED" - `JOB_STATE_UPDATED` indicates that the job
2726	// was successfully updated, meaning that this job was stopped and
2727	// another job was started, inheriting state from this one. This is a
2728	// terminal job state. This state may only be set by the Cloud Dataflow
2729	// service, and only as a transition from `JOB_STATE_RUNNING`.
2730	//   "JOB_STATE_DRAINING" - `JOB_STATE_DRAINING` indicates that the job
2731	// is in the process of draining. A draining job has stopped pulling
2732	// from its input sources and is processing any data that remains
2733	// in-flight. This state may be set via a Cloud Dataflow `UpdateJob`
2734	// call, but only as a transition from `JOB_STATE_RUNNING`. Jobs that
2735	// are draining may only transition to `JOB_STATE_DRAINED`,
2736	// `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.
2737	//   "JOB_STATE_DRAINED" - `JOB_STATE_DRAINED` indicates that the job
2738	// has been drained. A drained job terminated by stopping pulling from
2739	// its input sources and processing any data that remained in-flight
2740	// when draining was requested. This state is a terminal state, may only
2741	// be set by the Cloud Dataflow service, and only as a transition from
2742	// `JOB_STATE_DRAINING`.
2743	//   "JOB_STATE_PENDING" - `JOB_STATE_PENDING` indicates that the job
2744	// has been created but is not yet running. Jobs that are pending may
2745	// only transition to `JOB_STATE_RUNNING`, or `JOB_STATE_FAILED`.
2746	//   "JOB_STATE_CANCELLING" - `JOB_STATE_CANCELLING` indicates that the
2747	// job has been explicitly cancelled and is in the process of stopping.
2748	// Jobs that are cancelling may only transition to `JOB_STATE_CANCELLED`
2749	// or `JOB_STATE_FAILED`.
2750	//   "JOB_STATE_QUEUED" - `JOB_STATE_QUEUED` indicates that the job has
2751	// been created but is being delayed until launch. Jobs that are queued
2752	// may only transition to `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.
2753	//   "JOB_STATE_RESOURCE_CLEANING_UP" - `JOB_STATE_RESOURCE_CLEANING_UP`
2754	// indicates that the batch job's associated resources are currently
2755	// being cleaned up after a successful run. Currently, this is an opt-in
2756	// feature, please reach out to Cloud support team if you are
2757	// interested.
2758	CurrentState string `json:"currentState,omitempty"`
2759
2760	// CurrentStateTime: The timestamp associated with the current state.
2761	CurrentStateTime string `json:"currentStateTime,omitempty"`
2762
2763	// Environment: The environment for the job.
2764	Environment *Environment `json:"environment,omitempty"`
2765
2766	// ExecutionInfo: Deprecated.
2767	ExecutionInfo *JobExecutionInfo `json:"executionInfo,omitempty"`
2768
2769	// Id: The unique ID of this job. This field is set by the Cloud
2770	// Dataflow service when the Job is created, and is immutable for the
2771	// life of the job.
2772	Id string `json:"id,omitempty"`
2773
2774	// JobMetadata: This field is populated by the Dataflow service to
2775	// support filtering jobs by the metadata values provided here.
2776	// Populated for ListJobs and all GetJob views SUMMARY and higher.
2777	JobMetadata *JobMetadata `json:"jobMetadata,omitempty"`
2778
2779	// Labels: User-defined labels for this job. The labels map can contain
2780	// no more than 64 entries. Entries of the labels map are UTF8 strings
2781	// that comply with the following restrictions: * Keys must conform to
2782	// regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp:
2783	// [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally
2784	// constrained to be <= 128 bytes in size.
2785	Labels map[string]string `json:"labels,omitempty"`
2786
2787	// Location: The [regional endpoint]
2788	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
2789	// that contains this job.
2790	Location string `json:"location,omitempty"`
2791
2792	// Name: The user-specified Cloud Dataflow job name. Only one Job with a
2793	// given name may exist in a project at any given time. If a caller
2794	// attempts to create a Job with the same name as an already-existing
2795	// Job, the attempt returns the existing Job. The name must match the
2796	// regular expression `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
2797	Name string `json:"name,omitempty"`
2798
2799	// PipelineDescription: Preliminary field: The format of this data may
2800	// change at any time. A description of the user pipeline and stages
2801	// through which it is executed. Created by Cloud Dataflow service. Only
2802	// retrieved with JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
2803	PipelineDescription *PipelineDescription `json:"pipelineDescription,omitempty"`
2804
2805	// ProjectId: The ID of the Cloud Platform project that the job belongs
2806	// to.
2807	ProjectId string `json:"projectId,omitempty"`
2808
2809	// ReplaceJobId: If this job is an update of an existing job, this field
2810	// is the job ID of the job it replaced. When sending a
2811	// `CreateJobRequest`, you can update a job by specifying it here. The
2812	// job named here is stopped, and its intermediate state is transferred
2813	// to this job.
2814	ReplaceJobId string `json:"replaceJobId,omitempty"`
2815
2816	// ReplacedByJobId: If another job is an update of this job (and thus,
2817	// this job is in `JOB_STATE_UPDATED`), this field contains the ID of
2818	// that job.
2819	ReplacedByJobId string `json:"replacedByJobId,omitempty"`
2820
2821	// RequestedState: The job's requested state. `UpdateJob` may be used to
2822	// switch between the `JOB_STATE_STOPPED` and `JOB_STATE_RUNNING`
2823	// states, by setting requested_state. `UpdateJob` may also be used to
2824	// directly set a job's requested state to `JOB_STATE_CANCELLED` or
2825	// `JOB_STATE_DONE`, irrevocably terminating the job if it has not
2826	// already reached a terminal state.
2827	//
2828	// Possible values:
2829	//   "JOB_STATE_UNKNOWN" - The job's run state isn't specified.
2830	//   "JOB_STATE_STOPPED" - `JOB_STATE_STOPPED` indicates that the job
2831	// has not yet started to run.
2832	//   "JOB_STATE_RUNNING" - `JOB_STATE_RUNNING` indicates that the job is
2833	// currently running.
2834	//   "JOB_STATE_DONE" - `JOB_STATE_DONE` indicates that the job has
2835	// successfully completed. This is a terminal job state. This state may
2836	// be set by the Cloud Dataflow service, as a transition from
2837	// `JOB_STATE_RUNNING`. It may also be set via a Cloud Dataflow
2838	// `UpdateJob` call, if the job has not yet reached a terminal state.
2839	//   "JOB_STATE_FAILED" - `JOB_STATE_FAILED` indicates that the job has
2840	// failed. This is a terminal job state. This state may only be set by
2841	// the Cloud Dataflow service, and only as a transition from
2842	// `JOB_STATE_RUNNING`.
2843	//   "JOB_STATE_CANCELLED" - `JOB_STATE_CANCELLED` indicates that the
2844	// job has been explicitly cancelled. This is a terminal job state. This
2845	// state may only be set via a Cloud Dataflow `UpdateJob` call, and only
2846	// if the job has not yet reached another terminal state.
2847	//   "JOB_STATE_UPDATED" - `JOB_STATE_UPDATED` indicates that the job
2848	// was successfully updated, meaning that this job was stopped and
2849	// another job was started, inheriting state from this one. This is a
2850	// terminal job state. This state may only be set by the Cloud Dataflow
2851	// service, and only as a transition from `JOB_STATE_RUNNING`.
2852	//   "JOB_STATE_DRAINING" - `JOB_STATE_DRAINING` indicates that the job
2853	// is in the process of draining. A draining job has stopped pulling
2854	// from its input sources and is processing any data that remains
2855	// in-flight. This state may be set via a Cloud Dataflow `UpdateJob`
2856	// call, but only as a transition from `JOB_STATE_RUNNING`. Jobs that
2857	// are draining may only transition to `JOB_STATE_DRAINED`,
2858	// `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.
2859	//   "JOB_STATE_DRAINED" - `JOB_STATE_DRAINED` indicates that the job
2860	// has been drained. A drained job terminated by stopping pulling from
2861	// its input sources and processing any data that remained in-flight
2862	// when draining was requested. This state is a terminal state, may only
2863	// be set by the Cloud Dataflow service, and only as a transition from
2864	// `JOB_STATE_DRAINING`.
2865	//   "JOB_STATE_PENDING" - `JOB_STATE_PENDING` indicates that the job
2866	// has been created but is not yet running. Jobs that are pending may
2867	// only transition to `JOB_STATE_RUNNING`, or `JOB_STATE_FAILED`.
2868	//   "JOB_STATE_CANCELLING" - `JOB_STATE_CANCELLING` indicates that the
2869	// job has been explicitly cancelled and is in the process of stopping.
2870	// Jobs that are cancelling may only transition to `JOB_STATE_CANCELLED`
2871	// or `JOB_STATE_FAILED`.
2872	//   "JOB_STATE_QUEUED" - `JOB_STATE_QUEUED` indicates that the job has
2873	// been created but is being delayed until launch. Jobs that are queued
2874	// may only transition to `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.
2875	//   "JOB_STATE_RESOURCE_CLEANING_UP" - `JOB_STATE_RESOURCE_CLEANING_UP`
2876	// indicates that the batch job's associated resources are currently
2877	// being cleaned up after a successful run. Currently, this is an opt-in
2878	// feature, please reach out to Cloud support team if you are
2879	// interested.
2880	RequestedState string `json:"requestedState,omitempty"`
2881
2882	// SatisfiesPzs: Reserved for future use. This field is set only in
2883	// responses from the server; it is ignored if it is set in any
2884	// requests.
2885	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
2886
2887	// StageStates: This field may be mutated by the Cloud Dataflow service;
2888	// callers cannot mutate it.
2889	StageStates []*ExecutionStageState `json:"stageStates,omitempty"`
2890
2891	// StartTime: The timestamp when the job was started (transitioned to
2892	// JOB_STATE_PENDING). Flexible resource scheduling jobs are started
2893	// with some delay after job creation, so start_time is unset before
2894	// start and is updated when the job is started by the Cloud Dataflow
2895	// service. For other jobs, start_time always equals to create_time and
2896	// is immutable and set by the Cloud Dataflow service.
2897	StartTime string `json:"startTime,omitempty"`
2898
2899	// Steps: Exactly one of step or steps_location should be specified. The
2900	// top-level steps that constitute the entire job. Only retrieved with
2901	// JOB_VIEW_ALL.
2902	Steps []*Step `json:"steps,omitempty"`
2903
2904	// StepsLocation: The Cloud Storage location where the steps are stored.
2905	StepsLocation string `json:"stepsLocation,omitempty"`
2906
2907	// TempFiles: A set of files the system should be aware of that are used
2908	// for temporary storage. These temporary files will be removed on job
2909	// completion. No duplicates are allowed. No file patterns are
2910	// supported. The supported files are: Google Cloud Storage:
2911	// storage.googleapis.com/{bucket}/{object}
2912	// bucket.storage.googleapis.com/{object}
2913	TempFiles []string `json:"tempFiles,omitempty"`
2914
2915	// TransformNameMapping: The map of transform name prefixes of the job
2916	// to be replaced to the corresponding name prefixes of the new job.
2917	TransformNameMapping map[string]string `json:"transformNameMapping,omitempty"`
2918
2919	// Type: The type of Cloud Dataflow job.
2920	//
2921	// Possible values:
2922	//   "JOB_TYPE_UNKNOWN" - The type of the job is unspecified, or
2923	// unknown.
2924	//   "JOB_TYPE_BATCH" - A batch job with a well-defined end point: data
2925	// is read, data is processed, data is written, and the job is done.
2926	//   "JOB_TYPE_STREAMING" - A continuously streaming job with no end:
2927	// data is read, processed, and written continuously.
2928	Type string `json:"type,omitempty"`
2929
2930	// ServerResponse contains the HTTP response code and headers from the
2931	// server.
2932	googleapi.ServerResponse `json:"-"`
2933
2934	// ForceSendFields is a list of field names (e.g. "ClientRequestId") to
2935	// unconditionally include in API requests. By default, fields with
2936	// empty or default values are omitted from API requests. However, any
2937	// non-pointer, non-interface field appearing in ForceSendFields will be
2938	// sent to the server regardless of whether the field is empty or not.
2939	// This may be used to include empty fields in Patch requests.
2940	ForceSendFields []string `json:"-"`
2941
2942	// NullFields is a list of field names (e.g. "ClientRequestId") to
2943	// include in API requests with the JSON null value. By default, fields
2944	// with empty values are omitted from API requests. However, any field
2945	// with an empty value appearing in NullFields will be sent to the
2946	// server as null. It is an error if a field in this list has a
2947	// non-empty value. This may be used to include null fields in Patch
2948	// requests.
2949	NullFields []string `json:"-"`
2950}
2951
2952func (s *Job) MarshalJSON() ([]byte, error) {
2953	type NoMethod Job
2954	raw := NoMethod(*s)
2955	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2956}
2957
2958// JobExecutionDetails: Information about the execution of a job.
2959type JobExecutionDetails struct {
2960	// NextPageToken: If present, this response does not contain all
2961	// requested tasks. To obtain the next page of results, repeat the
2962	// request with page_token set to this value.
2963	NextPageToken string `json:"nextPageToken,omitempty"`
2964
2965	// Stages: The stages of the job execution.
2966	Stages []*StageSummary `json:"stages,omitempty"`
2967
2968	// ServerResponse contains the HTTP response code and headers from the
2969	// server.
2970	googleapi.ServerResponse `json:"-"`
2971
2972	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2973	// unconditionally include in API requests. By default, fields with
2974	// empty or default values are omitted from API requests. However, any
2975	// non-pointer, non-interface field appearing in ForceSendFields will be
2976	// sent to the server regardless of whether the field is empty or not.
2977	// This may be used to include empty fields in Patch requests.
2978	ForceSendFields []string `json:"-"`
2979
2980	// NullFields is a list of field names (e.g. "NextPageToken") to include
2981	// in API requests with the JSON null value. By default, fields with
2982	// empty values are omitted from API requests. However, any field with
2983	// an empty value appearing in NullFields will be sent to the server as
2984	// null. It is an error if a field in this list has a non-empty value.
2985	// This may be used to include null fields in Patch requests.
2986	NullFields []string `json:"-"`
2987}
2988
2989func (s *JobExecutionDetails) MarshalJSON() ([]byte, error) {
2990	type NoMethod JobExecutionDetails
2991	raw := NoMethod(*s)
2992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2993}
2994
2995// JobExecutionInfo: Additional information about how a Cloud Dataflow
2996// job will be executed that isn't contained in the submitted job.
2997type JobExecutionInfo struct {
2998	// Stages: A mapping from each stage to the information about that
2999	// stage.
3000	Stages map[string]JobExecutionStageInfo `json:"stages,omitempty"`
3001
3002	// ForceSendFields is a list of field names (e.g. "Stages") to
3003	// unconditionally include in API requests. By default, fields with
3004	// empty or default values are omitted from API requests. However, any
3005	// non-pointer, non-interface field appearing in ForceSendFields will be
3006	// sent to the server regardless of whether the field is empty or not.
3007	// This may be used to include empty fields in Patch requests.
3008	ForceSendFields []string `json:"-"`
3009
3010	// NullFields is a list of field names (e.g. "Stages") to include in API
3011	// requests with the JSON null value. By default, fields with empty
3012	// values are omitted from API requests. However, any field with an
3013	// empty value appearing in NullFields will be sent to the server as
3014	// null. It is an error if a field in this list has a non-empty value.
3015	// This may be used to include null fields in Patch requests.
3016	NullFields []string `json:"-"`
3017}
3018
3019func (s *JobExecutionInfo) MarshalJSON() ([]byte, error) {
3020	type NoMethod JobExecutionInfo
3021	raw := NoMethod(*s)
3022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3023}
3024
3025// JobExecutionStageInfo: Contains information about how a particular
3026// google.dataflow.v1beta3.Step will be executed.
3027type JobExecutionStageInfo struct {
3028	// StepName: The steps associated with the execution stage. Note that
3029	// stages may have several steps, and that a given step might be run by
3030	// more than one stage.
3031	StepName []string `json:"stepName,omitempty"`
3032
3033	// ForceSendFields is a list of field names (e.g. "StepName") to
3034	// unconditionally include in API requests. By default, fields with
3035	// empty or default values are omitted from API requests. However, any
3036	// non-pointer, non-interface field appearing in ForceSendFields will be
3037	// sent to the server regardless of whether the field is empty or not.
3038	// This may be used to include empty fields in Patch requests.
3039	ForceSendFields []string `json:"-"`
3040
3041	// NullFields is a list of field names (e.g. "StepName") to include in
3042	// API requests with the JSON null value. By default, fields with empty
3043	// values are omitted from API requests. However, any field with an
3044	// empty value appearing in NullFields will be sent to the server as
3045	// null. It is an error if a field in this list has a non-empty value.
3046	// This may be used to include null fields in Patch requests.
3047	NullFields []string `json:"-"`
3048}
3049
3050func (s *JobExecutionStageInfo) MarshalJSON() ([]byte, error) {
3051	type NoMethod JobExecutionStageInfo
3052	raw := NoMethod(*s)
3053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3054}
3055
3056// JobMessage: A particular message pertaining to a Dataflow job.
3057type JobMessage struct {
3058	// Id: Deprecated.
3059	Id string `json:"id,omitempty"`
3060
3061	// MessageImportance: Importance level of the message.
3062	//
3063	// Possible values:
3064	//   "JOB_MESSAGE_IMPORTANCE_UNKNOWN" - The message importance isn't
3065	// specified, or is unknown.
3066	//   "JOB_MESSAGE_DEBUG" - The message is at the 'debug' level:
3067	// typically only useful for software engineers working on the code the
3068	// job is running. Typically, Dataflow pipeline runners do not display
3069	// log messages at this level by default.
3070	//   "JOB_MESSAGE_DETAILED" - The message is at the 'detailed' level:
3071	// somewhat verbose, but potentially useful to users. Typically,
3072	// Dataflow pipeline runners do not display log messages at this level
3073	// by default. These messages are displayed by default in the Dataflow
3074	// monitoring UI.
3075	//   "JOB_MESSAGE_BASIC" - The message is at the 'basic' level: useful
3076	// for keeping track of the execution of a Dataflow pipeline. Typically,
3077	// Dataflow pipeline runners display log messages at this level by
3078	// default, and these messages are displayed by default in the Dataflow
3079	// monitoring UI.
3080	//   "JOB_MESSAGE_WARNING" - The message is at the 'warning' level:
3081	// indicating a condition pertaining to a job which may require human
3082	// intervention. Typically, Dataflow pipeline runners display log
3083	// messages at this level by default, and these messages are displayed
3084	// by default in the Dataflow monitoring UI.
3085	//   "JOB_MESSAGE_ERROR" - The message is at the 'error' level:
3086	// indicating a condition preventing a job from succeeding. Typically,
3087	// Dataflow pipeline runners display log messages at this level by
3088	// default, and these messages are displayed by default in the Dataflow
3089	// monitoring UI.
3090	MessageImportance string `json:"messageImportance,omitempty"`
3091
3092	// MessageText: The text of the message.
3093	MessageText string `json:"messageText,omitempty"`
3094
3095	// Time: The timestamp of the message.
3096	Time string `json:"time,omitempty"`
3097
3098	// ForceSendFields is a list of field names (e.g. "Id") to
3099	// unconditionally include in API requests. By default, fields with
3100	// empty or default values are omitted from API requests. However, any
3101	// non-pointer, non-interface field appearing in ForceSendFields will be
3102	// sent to the server regardless of whether the field is empty or not.
3103	// This may be used to include empty fields in Patch requests.
3104	ForceSendFields []string `json:"-"`
3105
3106	// NullFields is a list of field names (e.g. "Id") to include in API
3107	// requests with the JSON null value. By default, fields with empty
3108	// values are omitted from API requests. However, any field with an
3109	// empty value appearing in NullFields will be sent to the server as
3110	// null. It is an error if a field in this list has a non-empty value.
3111	// This may be used to include null fields in Patch requests.
3112	NullFields []string `json:"-"`
3113}
3114
3115func (s *JobMessage) MarshalJSON() ([]byte, error) {
3116	type NoMethod JobMessage
3117	raw := NoMethod(*s)
3118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3119}
3120
3121// JobMetadata: Metadata available primarily for filtering jobs. Will be
3122// included in the ListJob response and Job SUMMARY view.
3123type JobMetadata struct {
3124	// BigTableDetails: Identification of a Cloud Bigtable source used in
3125	// the Dataflow job.
3126	BigTableDetails []*BigTableIODetails `json:"bigTableDetails,omitempty"`
3127
3128	// BigqueryDetails: Identification of a BigQuery source used in the
3129	// Dataflow job.
3130	BigqueryDetails []*BigQueryIODetails `json:"bigqueryDetails,omitempty"`
3131
3132	// DatastoreDetails: Identification of a Datastore source used in the
3133	// Dataflow job.
3134	DatastoreDetails []*DatastoreIODetails `json:"datastoreDetails,omitempty"`
3135
3136	// FileDetails: Identification of a File source used in the Dataflow
3137	// job.
3138	FileDetails []*FileIODetails `json:"fileDetails,omitempty"`
3139
3140	// PubsubDetails: Identification of a Pub/Sub source used in the
3141	// Dataflow job.
3142	PubsubDetails []*PubSubIODetails `json:"pubsubDetails,omitempty"`
3143
3144	// SdkVersion: The SDK version used to run the job.
3145	SdkVersion *SdkVersion `json:"sdkVersion,omitempty"`
3146
3147	// SpannerDetails: Identification of a Spanner source used in the
3148	// Dataflow job.
3149	SpannerDetails []*SpannerIODetails `json:"spannerDetails,omitempty"`
3150
3151	// ForceSendFields is a list of field names (e.g. "BigTableDetails") to
3152	// unconditionally include in API requests. By default, fields with
3153	// empty or default values are omitted from API requests. However, any
3154	// non-pointer, non-interface field appearing in ForceSendFields will be
3155	// sent to the server regardless of whether the field is empty or not.
3156	// This may be used to include empty fields in Patch requests.
3157	ForceSendFields []string `json:"-"`
3158
3159	// NullFields is a list of field names (e.g. "BigTableDetails") to
3160	// include in API requests with the JSON null value. By default, fields
3161	// with empty values are omitted from API requests. However, any field
3162	// with an empty value appearing in NullFields will be sent to the
3163	// server as null. It is an error if a field in this list has a
3164	// non-empty value. This may be used to include null fields in Patch
3165	// requests.
3166	NullFields []string `json:"-"`
3167}
3168
3169func (s *JobMetadata) MarshalJSON() ([]byte, error) {
3170	type NoMethod JobMetadata
3171	raw := NoMethod(*s)
3172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3173}
3174
3175// JobMetrics: JobMetrics contains a collection of metrics describing
3176// the detailed progress of a Dataflow job. Metrics correspond to
3177// user-defined and system-defined metrics in the job. This resource
3178// captures only the most recent values of each metric; time-series data
3179// can be queried for them (under the same metric names) from Cloud
3180// Monitoring.
3181type JobMetrics struct {
3182	// MetricTime: Timestamp as of which metric values are current.
3183	MetricTime string `json:"metricTime,omitempty"`
3184
3185	// Metrics: All metrics for this job.
3186	Metrics []*MetricUpdate `json:"metrics,omitempty"`
3187
3188	// ServerResponse contains the HTTP response code and headers from the
3189	// server.
3190	googleapi.ServerResponse `json:"-"`
3191
3192	// ForceSendFields is a list of field names (e.g. "MetricTime") to
3193	// unconditionally include in API requests. By default, fields with
3194	// empty or default values are omitted from API requests. However, any
3195	// non-pointer, non-interface field appearing in ForceSendFields will be
3196	// sent to the server regardless of whether the field is empty or not.
3197	// This may be used to include empty fields in Patch requests.
3198	ForceSendFields []string `json:"-"`
3199
3200	// NullFields is a list of field names (e.g. "MetricTime") 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 *JobMetrics) MarshalJSON() ([]byte, error) {
3210	type NoMethod JobMetrics
3211	raw := NoMethod(*s)
3212	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3213}
3214
3215// KeyRangeDataDiskAssignment: Data disk assignment information for a
3216// specific key-range of a sharded computation. Currently we only
3217// support UTF-8 character splits to simplify encoding into JSON.
3218type KeyRangeDataDiskAssignment 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	// End: The end (exclusive) of the key range.
3226	End string `json:"end,omitempty"`
3227
3228	// Start: The start (inclusive) of the key range.
3229	Start string `json:"start,omitempty"`
3230
3231	// ForceSendFields is a list of field names (e.g. "DataDisk") to
3232	// unconditionally include in API requests. By default, fields with
3233	// empty or default values are omitted from API requests. However, any
3234	// non-pointer, non-interface field appearing in ForceSendFields will be
3235	// sent to the server regardless of whether the field is empty or not.
3236	// This may be used to include empty fields in Patch requests.
3237	ForceSendFields []string `json:"-"`
3238
3239	// NullFields is a list of field names (e.g. "DataDisk") to include in
3240	// API requests with the JSON null value. By default, fields with empty
3241	// values are omitted from API requests. However, any field with an
3242	// empty value appearing in NullFields will be sent to the server as
3243	// null. It is an error if a field in this list has a non-empty value.
3244	// This may be used to include null fields in Patch requests.
3245	NullFields []string `json:"-"`
3246}
3247
3248func (s *KeyRangeDataDiskAssignment) MarshalJSON() ([]byte, error) {
3249	type NoMethod KeyRangeDataDiskAssignment
3250	raw := NoMethod(*s)
3251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3252}
3253
3254// KeyRangeLocation: Location information for a specific key-range of a
3255// sharded computation. Currently we only support UTF-8 character splits
3256// to simplify encoding into JSON.
3257type KeyRangeLocation struct {
3258	// DataDisk: The name of the data disk where data for this range is
3259	// stored. This name is local to the Google Cloud Platform project and
3260	// uniquely identifies the disk within that project, for example
3261	// "myproject-1014-104817-4c2-harness-0-disk-1".
3262	DataDisk string `json:"dataDisk,omitempty"`
3263
3264	// DeliveryEndpoint: The physical location of this range assignment to
3265	// be used for streaming computation cross-worker message delivery.
3266	DeliveryEndpoint string `json:"deliveryEndpoint,omitempty"`
3267
3268	// DeprecatedPersistentDirectory: DEPRECATED. The location of the
3269	// persistent state for this range, as a persistent directory in the
3270	// worker local filesystem.
3271	DeprecatedPersistentDirectory string `json:"deprecatedPersistentDirectory,omitempty"`
3272
3273	// End: The end (exclusive) of the key range.
3274	End string `json:"end,omitempty"`
3275
3276	// Start: The start (inclusive) of the key range.
3277	Start string `json:"start,omitempty"`
3278
3279	// ForceSendFields is a list of field names (e.g. "DataDisk") to
3280	// unconditionally include in API requests. By default, fields with
3281	// empty or default values are omitted from API requests. However, any
3282	// non-pointer, non-interface field appearing in ForceSendFields will be
3283	// sent to the server regardless of whether the field is empty or not.
3284	// This may be used to include empty fields in Patch requests.
3285	ForceSendFields []string `json:"-"`
3286
3287	// NullFields is a list of field names (e.g. "DataDisk") to include in
3288	// API requests with the JSON null value. By default, fields with empty
3289	// values are omitted from API requests. However, any field with an
3290	// empty value appearing in NullFields will be sent to the server as
3291	// null. It is an error if a field in this list has a non-empty value.
3292	// This may be used to include null fields in Patch requests.
3293	NullFields []string `json:"-"`
3294}
3295
3296func (s *KeyRangeLocation) MarshalJSON() ([]byte, error) {
3297	type NoMethod KeyRangeLocation
3298	raw := NoMethod(*s)
3299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3300}
3301
3302// LaunchFlexTemplateParameter: Launch FlexTemplate Parameter.
3303type LaunchFlexTemplateParameter struct {
3304	// ContainerSpec: Spec about the container image to launch.
3305	ContainerSpec *ContainerSpec `json:"containerSpec,omitempty"`
3306
3307	// ContainerSpecGcsPath: Cloud Storage path to a file with json
3308	// serialized ContainerSpec as content.
3309	ContainerSpecGcsPath string `json:"containerSpecGcsPath,omitempty"`
3310
3311	// Environment: The runtime environment for the FlexTemplate job
3312	Environment *FlexTemplateRuntimeEnvironment `json:"environment,omitempty"`
3313
3314	// JobName: Required. The job name to use for the created job. For
3315	// update job request, job name should be same as the existing running
3316	// job.
3317	JobName string `json:"jobName,omitempty"`
3318
3319	// LaunchOptions: Launch options for this flex template job. This is a
3320	// common set of options across languages and templates. This should not
3321	// be used to pass job parameters.
3322	LaunchOptions map[string]string `json:"launchOptions,omitempty"`
3323
3324	// Parameters: The parameters for FlexTemplate. Ex. {"num_workers":"5"}
3325	Parameters map[string]string `json:"parameters,omitempty"`
3326
3327	// TransformNameMappings: Use this to pass transform_name_mappings for
3328	// streaming update jobs.
3329	// Ex:{"oldTransformName":"newTransformName",...}'
3330	TransformNameMappings map[string]string `json:"transformNameMappings,omitempty"`
3331
3332	// Update: Set this to true if you are sending a request to update a
3333	// running streaming job. When set, the job name should be the same as
3334	// the running job.
3335	Update bool `json:"update,omitempty"`
3336
3337	// ForceSendFields is a list of field names (e.g. "ContainerSpec") to
3338	// unconditionally include in API requests. By default, fields with
3339	// empty or default values are omitted from API requests. However, any
3340	// non-pointer, non-interface field appearing in ForceSendFields will be
3341	// sent to the server regardless of whether the field is empty or not.
3342	// This may be used to include empty fields in Patch requests.
3343	ForceSendFields []string `json:"-"`
3344
3345	// NullFields is a list of field names (e.g. "ContainerSpec") to include
3346	// in API requests with the JSON null value. By default, fields with
3347	// empty values are omitted from API requests. However, any field with
3348	// an empty value appearing in NullFields will be sent to the server as
3349	// null. It is an error if a field in this list has a non-empty value.
3350	// This may be used to include null fields in Patch requests.
3351	NullFields []string `json:"-"`
3352}
3353
3354func (s *LaunchFlexTemplateParameter) MarshalJSON() ([]byte, error) {
3355	type NoMethod LaunchFlexTemplateParameter
3356	raw := NoMethod(*s)
3357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3358}
3359
3360// LaunchFlexTemplateRequest: A request to launch a Cloud Dataflow job
3361// from a FlexTemplate.
3362type LaunchFlexTemplateRequest struct {
3363	// LaunchParameter: Required. Parameter to launch a job form Flex
3364	// Template.
3365	LaunchParameter *LaunchFlexTemplateParameter `json:"launchParameter,omitempty"`
3366
3367	// ValidateOnly: If true, the request is validated but not actually
3368	// executed. Defaults to false.
3369	ValidateOnly bool `json:"validateOnly,omitempty"`
3370
3371	// ForceSendFields is a list of field names (e.g. "LaunchParameter") to
3372	// unconditionally include in API requests. By default, fields with
3373	// empty or default values are omitted from API requests. However, any
3374	// non-pointer, non-interface field appearing in ForceSendFields will be
3375	// sent to the server regardless of whether the field is empty or not.
3376	// This may be used to include empty fields in Patch requests.
3377	ForceSendFields []string `json:"-"`
3378
3379	// NullFields is a list of field names (e.g. "LaunchParameter") to
3380	// include in API requests with the JSON null value. By default, fields
3381	// with empty values are omitted from API requests. However, any field
3382	// with an empty value appearing in NullFields will be sent to the
3383	// server as null. It is an error if a field in this list has a
3384	// non-empty value. This may be used to include null fields in Patch
3385	// requests.
3386	NullFields []string `json:"-"`
3387}
3388
3389func (s *LaunchFlexTemplateRequest) MarshalJSON() ([]byte, error) {
3390	type NoMethod LaunchFlexTemplateRequest
3391	raw := NoMethod(*s)
3392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3393}
3394
3395// LaunchFlexTemplateResponse: Response to the request to launch a job
3396// from Flex Template.
3397type LaunchFlexTemplateResponse struct {
3398	// Job: The job that was launched, if the request was not a dry run and
3399	// the job was successfully launched.
3400	Job *Job `json:"job,omitempty"`
3401
3402	// ServerResponse contains the HTTP response code and headers from the
3403	// server.
3404	googleapi.ServerResponse `json:"-"`
3405
3406	// ForceSendFields is a list of field names (e.g. "Job") to
3407	// unconditionally include in API requests. By default, fields with
3408	// empty or default values are omitted from API requests. However, any
3409	// non-pointer, non-interface field appearing in ForceSendFields will be
3410	// sent to the server regardless of whether the field is empty or not.
3411	// This may be used to include empty fields in Patch requests.
3412	ForceSendFields []string `json:"-"`
3413
3414	// NullFields is a list of field names (e.g. "Job") to include in API
3415	// requests with the JSON null value. By default, fields with empty
3416	// values are omitted from API requests. However, any field with an
3417	// empty value appearing in NullFields will be sent to the server as
3418	// null. It is an error if a field in this list has a non-empty value.
3419	// This may be used to include null fields in Patch requests.
3420	NullFields []string `json:"-"`
3421}
3422
3423func (s *LaunchFlexTemplateResponse) MarshalJSON() ([]byte, error) {
3424	type NoMethod LaunchFlexTemplateResponse
3425	raw := NoMethod(*s)
3426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3427}
3428
3429// LaunchTemplateParameters: Parameters to provide to the template being
3430// launched.
3431type LaunchTemplateParameters struct {
3432	// Environment: The runtime environment for the job.
3433	Environment *RuntimeEnvironment `json:"environment,omitempty"`
3434
3435	// JobName: Required. The job name to use for the created job.
3436	JobName string `json:"jobName,omitempty"`
3437
3438	// Parameters: The runtime parameters to pass to the job.
3439	Parameters map[string]string `json:"parameters,omitempty"`
3440
3441	// TransformNameMapping: Only applicable when updating a pipeline. Map
3442	// of transform name prefixes of the job to be replaced to the
3443	// corresponding name prefixes of the new job.
3444	TransformNameMapping map[string]string `json:"transformNameMapping,omitempty"`
3445
3446	// Update: If set, replace the existing pipeline with the name specified
3447	// by jobName with this pipeline, preserving state.
3448	Update bool `json:"update,omitempty"`
3449
3450	// ForceSendFields is a list of field names (e.g. "Environment") to
3451	// unconditionally include in API requests. By default, fields with
3452	// empty or default values are omitted from API requests. However, any
3453	// non-pointer, non-interface field appearing in ForceSendFields will be
3454	// sent to the server regardless of whether the field is empty or not.
3455	// This may be used to include empty fields in Patch requests.
3456	ForceSendFields []string `json:"-"`
3457
3458	// NullFields is a list of field names (e.g. "Environment") to include
3459	// in API requests with the JSON null value. By default, fields with
3460	// empty values are omitted from API requests. However, any field with
3461	// an empty value appearing in NullFields will be sent to the server as
3462	// null. It is an error if a field in this list has a non-empty value.
3463	// This may be used to include null fields in Patch requests.
3464	NullFields []string `json:"-"`
3465}
3466
3467func (s *LaunchTemplateParameters) MarshalJSON() ([]byte, error) {
3468	type NoMethod LaunchTemplateParameters
3469	raw := NoMethod(*s)
3470	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3471}
3472
3473// LaunchTemplateResponse: Response to the request to launch a template.
3474type LaunchTemplateResponse struct {
3475	// Job: The job that was launched, if the request was not a dry run and
3476	// the job was successfully launched.
3477	Job *Job `json:"job,omitempty"`
3478
3479	// ServerResponse contains the HTTP response code and headers from the
3480	// server.
3481	googleapi.ServerResponse `json:"-"`
3482
3483	// ForceSendFields is a list of field names (e.g. "Job") to
3484	// unconditionally include in API requests. By default, fields with
3485	// empty or default values are omitted from API requests. However, any
3486	// non-pointer, non-interface field appearing in ForceSendFields will be
3487	// sent to the server regardless of whether the field is empty or not.
3488	// This may be used to include empty fields in Patch requests.
3489	ForceSendFields []string `json:"-"`
3490
3491	// NullFields is a list of field names (e.g. "Job") to include in API
3492	// requests with the JSON null value. By default, fields with empty
3493	// values are omitted from API requests. However, any field with an
3494	// empty value appearing in NullFields will be sent to the server as
3495	// null. It is an error if a field in this list has a non-empty value.
3496	// This may be used to include null fields in Patch requests.
3497	NullFields []string `json:"-"`
3498}
3499
3500func (s *LaunchTemplateResponse) MarshalJSON() ([]byte, error) {
3501	type NoMethod LaunchTemplateResponse
3502	raw := NoMethod(*s)
3503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3504}
3505
3506// LeaseWorkItemRequest: Request to lease WorkItems.
3507type LeaseWorkItemRequest struct {
3508	// CurrentWorkerTime: The current timestamp at the worker.
3509	CurrentWorkerTime string `json:"currentWorkerTime,omitempty"`
3510
3511	// Location: The [regional endpoint]
3512	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
3513	// that contains the WorkItem's job.
3514	Location string `json:"location,omitempty"`
3515
3516	// RequestedLeaseDuration: The initial lease period.
3517	RequestedLeaseDuration string `json:"requestedLeaseDuration,omitempty"`
3518
3519	// UnifiedWorkerRequest: Untranslated bag-of-bytes WorkRequest from
3520	// UnifiedWorker.
3521	UnifiedWorkerRequest googleapi.RawMessage `json:"unifiedWorkerRequest,omitempty"`
3522
3523	// WorkItemTypes: Filter for WorkItem type.
3524	WorkItemTypes []string `json:"workItemTypes,omitempty"`
3525
3526	// WorkerCapabilities: Worker capabilities. WorkItems might be limited
3527	// to workers with specific capabilities.
3528	WorkerCapabilities []string `json:"workerCapabilities,omitempty"`
3529
3530	// WorkerId: Identifies the worker leasing work -- typically the ID of
3531	// the virtual machine running the worker.
3532	WorkerId string `json:"workerId,omitempty"`
3533
3534	// ForceSendFields is a list of field names (e.g. "CurrentWorkerTime")
3535	// to unconditionally include in API requests. By default, fields with
3536	// empty or default values are omitted from API requests. However, any
3537	// non-pointer, non-interface field appearing in ForceSendFields will be
3538	// sent to the server regardless of whether the field is empty or not.
3539	// This may be used to include empty fields in Patch requests.
3540	ForceSendFields []string `json:"-"`
3541
3542	// NullFields is a list of field names (e.g. "CurrentWorkerTime") to
3543	// include in API requests with the JSON null value. By default, fields
3544	// with empty values are omitted from API requests. However, any field
3545	// with an empty value appearing in NullFields will be sent to the
3546	// server as null. It is an error if a field in this list has a
3547	// non-empty value. This may be used to include null fields in Patch
3548	// requests.
3549	NullFields []string `json:"-"`
3550}
3551
3552func (s *LeaseWorkItemRequest) MarshalJSON() ([]byte, error) {
3553	type NoMethod LeaseWorkItemRequest
3554	raw := NoMethod(*s)
3555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3556}
3557
3558// LeaseWorkItemResponse: Response to a request to lease WorkItems.
3559type LeaseWorkItemResponse struct {
3560	// UnifiedWorkerResponse: Untranslated bag-of-bytes WorkResponse for
3561	// UnifiedWorker.
3562	UnifiedWorkerResponse googleapi.RawMessage `json:"unifiedWorkerResponse,omitempty"`
3563
3564	// WorkItems: A list of the leased WorkItems.
3565	WorkItems []*WorkItem `json:"workItems,omitempty"`
3566
3567	// ServerResponse contains the HTTP response code and headers from the
3568	// server.
3569	googleapi.ServerResponse `json:"-"`
3570
3571	// ForceSendFields is a list of field names (e.g.
3572	// "UnifiedWorkerResponse") to unconditionally include in API requests.
3573	// By default, fields with empty or default values are omitted from API
3574	// requests. However, any non-pointer, non-interface field appearing in
3575	// ForceSendFields will be sent to the server regardless of whether the
3576	// field is empty or not. This may be used to include empty fields in
3577	// Patch requests.
3578	ForceSendFields []string `json:"-"`
3579
3580	// NullFields is a list of field names (e.g. "UnifiedWorkerResponse") to
3581	// include in API requests with the JSON null value. By default, fields
3582	// with empty values are omitted from API requests. However, any field
3583	// with an empty value appearing in NullFields will be sent to the
3584	// server as null. It is an error if a field in this list has a
3585	// non-empty value. This may be used to include null fields in Patch
3586	// requests.
3587	NullFields []string `json:"-"`
3588}
3589
3590func (s *LeaseWorkItemResponse) MarshalJSON() ([]byte, error) {
3591	type NoMethod LeaseWorkItemResponse
3592	raw := NoMethod(*s)
3593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3594}
3595
3596// ListJobMessagesResponse: Response to a request to list job messages.
3597type ListJobMessagesResponse struct {
3598	// AutoscalingEvents: Autoscaling events in ascending timestamp order.
3599	AutoscalingEvents []*AutoscalingEvent `json:"autoscalingEvents,omitempty"`
3600
3601	// JobMessages: Messages in ascending timestamp order.
3602	JobMessages []*JobMessage `json:"jobMessages,omitempty"`
3603
3604	// NextPageToken: The token to obtain the next page of results if there
3605	// are more.
3606	NextPageToken string `json:"nextPageToken,omitempty"`
3607
3608	// ServerResponse contains the HTTP response code and headers from the
3609	// server.
3610	googleapi.ServerResponse `json:"-"`
3611
3612	// ForceSendFields is a list of field names (e.g. "AutoscalingEvents")
3613	// to unconditionally include in API requests. By default, fields with
3614	// empty or default values are omitted from API requests. However, any
3615	// non-pointer, non-interface field appearing in ForceSendFields will be
3616	// sent to the server regardless of whether the field is empty or not.
3617	// This may be used to include empty fields in Patch requests.
3618	ForceSendFields []string `json:"-"`
3619
3620	// NullFields is a list of field names (e.g. "AutoscalingEvents") to
3621	// include in API requests with the JSON null value. By default, fields
3622	// with empty values are omitted from API requests. However, any field
3623	// with an empty value appearing in NullFields will be sent to the
3624	// server as null. It is an error if a field in this list has a
3625	// non-empty value. This may be used to include null fields in Patch
3626	// requests.
3627	NullFields []string `json:"-"`
3628}
3629
3630func (s *ListJobMessagesResponse) MarshalJSON() ([]byte, error) {
3631	type NoMethod ListJobMessagesResponse
3632	raw := NoMethod(*s)
3633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3634}
3635
3636// ListJobsResponse: Response to a request to list Cloud Dataflow jobs
3637// in a project. This might be a partial response, depending on the page
3638// size in the ListJobsRequest. However, if the project does not have
3639// any jobs, an instance of ListJobsResponse is not returned and the
3640// requests's response body is empty {}.
3641type ListJobsResponse struct {
3642	// FailedLocation: Zero or more messages describing the [regional
3643	// endpoints]
3644	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
3645	// that failed to respond.
3646	FailedLocation []*FailedLocation `json:"failedLocation,omitempty"`
3647
3648	// Jobs: A subset of the requested job information.
3649	Jobs []*Job `json:"jobs,omitempty"`
3650
3651	// NextPageToken: Set if there may be more results than fit in this
3652	// response.
3653	NextPageToken string `json:"nextPageToken,omitempty"`
3654
3655	// ServerResponse contains the HTTP response code and headers from the
3656	// server.
3657	googleapi.ServerResponse `json:"-"`
3658
3659	// ForceSendFields is a list of field names (e.g. "FailedLocation") to
3660	// unconditionally include in API requests. By default, fields with
3661	// empty or default values are omitted from API requests. However, any
3662	// non-pointer, non-interface field appearing in ForceSendFields will be
3663	// sent to the server regardless of whether the field is empty or not.
3664	// This may be used to include empty fields in Patch requests.
3665	ForceSendFields []string `json:"-"`
3666
3667	// NullFields is a list of field names (e.g. "FailedLocation") to
3668	// include in API requests with the JSON null value. By default, fields
3669	// with empty values are omitted from API requests. However, any field
3670	// with an empty value appearing in NullFields will be sent to the
3671	// server as null. It is an error if a field in this list has a
3672	// non-empty value. This may be used to include null fields in Patch
3673	// requests.
3674	NullFields []string `json:"-"`
3675}
3676
3677func (s *ListJobsResponse) MarshalJSON() ([]byte, error) {
3678	type NoMethod ListJobsResponse
3679	raw := NoMethod(*s)
3680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3681}
3682
3683// ListSnapshotsResponse: List of snapshots.
3684type ListSnapshotsResponse struct {
3685	// Snapshots: Returned snapshots.
3686	Snapshots []*Snapshot `json:"snapshots,omitempty"`
3687
3688	// ServerResponse contains the HTTP response code and headers from the
3689	// server.
3690	googleapi.ServerResponse `json:"-"`
3691
3692	// ForceSendFields is a list of field names (e.g. "Snapshots") to
3693	// unconditionally include in API requests. By default, fields with
3694	// empty or default values are omitted from API requests. However, any
3695	// non-pointer, non-interface field appearing in ForceSendFields will be
3696	// sent to the server regardless of whether the field is empty or not.
3697	// This may be used to include empty fields in Patch requests.
3698	ForceSendFields []string `json:"-"`
3699
3700	// NullFields is a list of field names (e.g. "Snapshots") to include in
3701	// API requests with the JSON null value. By default, fields with empty
3702	// values are omitted from API requests. However, any field with an
3703	// empty value appearing in NullFields will be sent to the server as
3704	// null. It is an error if a field in this list has a non-empty value.
3705	// This may be used to include null fields in Patch requests.
3706	NullFields []string `json:"-"`
3707}
3708
3709func (s *ListSnapshotsResponse) MarshalJSON() ([]byte, error) {
3710	type NoMethod ListSnapshotsResponse
3711	raw := NoMethod(*s)
3712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3713}
3714
3715// MapTask: MapTask consists of an ordered set of instructions, each of
3716// which describes one particular low-level operation for the worker to
3717// perform in order to accomplish the MapTask's WorkItem. Each
3718// instruction must appear in the list before any instructions which
3719// depends on its output.
3720type MapTask struct {
3721	// CounterPrefix: Counter prefix that can be used to prefix counters.
3722	// Not currently used in Dataflow.
3723	CounterPrefix string `json:"counterPrefix,omitempty"`
3724
3725	// Instructions: The instructions in the MapTask.
3726	Instructions []*ParallelInstruction `json:"instructions,omitempty"`
3727
3728	// StageName: System-defined name of the stage containing this MapTask.
3729	// Unique across the workflow.
3730	StageName string `json:"stageName,omitempty"`
3731
3732	// SystemName: System-defined name of this MapTask. Unique across the
3733	// workflow.
3734	SystemName string `json:"systemName,omitempty"`
3735
3736	// ForceSendFields is a list of field names (e.g. "CounterPrefix") to
3737	// unconditionally include in API requests. By default, fields with
3738	// empty or default values are omitted from API requests. However, any
3739	// non-pointer, non-interface field appearing in ForceSendFields will be
3740	// sent to the server regardless of whether the field is empty or not.
3741	// This may be used to include empty fields in Patch requests.
3742	ForceSendFields []string `json:"-"`
3743
3744	// NullFields is a list of field names (e.g. "CounterPrefix") to include
3745	// in API requests with the JSON null value. By default, fields with
3746	// empty values are omitted from API requests. However, any field with
3747	// an empty value appearing in NullFields will be sent to the server as
3748	// null. It is an error if a field in this list has a non-empty value.
3749	// This may be used to include null fields in Patch requests.
3750	NullFields []string `json:"-"`
3751}
3752
3753func (s *MapTask) MarshalJSON() ([]byte, error) {
3754	type NoMethod MapTask
3755	raw := NoMethod(*s)
3756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3757}
3758
3759// MemInfo: Information about the memory usage of a worker or a
3760// container within a worker.
3761type MemInfo struct {
3762	// CurrentLimitBytes: Instantenous memory limit in bytes.
3763	CurrentLimitBytes uint64 `json:"currentLimitBytes,omitempty,string"`
3764
3765	// CurrentRssBytes: Instantenous memory (RSS) size in bytes.
3766	CurrentRssBytes uint64 `json:"currentRssBytes,omitempty,string"`
3767
3768	// Timestamp: Timestamp of the measurement.
3769	Timestamp string `json:"timestamp,omitempty"`
3770
3771	// TotalGbMs: Total memory (RSS) usage since start up in GB * ms.
3772	TotalGbMs uint64 `json:"totalGbMs,omitempty,string"`
3773
3774	// ForceSendFields is a list of field names (e.g. "CurrentLimitBytes")
3775	// to unconditionally include in API requests. By default, fields with
3776	// empty or default values are omitted from API requests. However, any
3777	// non-pointer, non-interface field appearing in ForceSendFields will be
3778	// sent to the server regardless of whether the field is empty or not.
3779	// This may be used to include empty fields in Patch requests.
3780	ForceSendFields []string `json:"-"`
3781
3782	// NullFields is a list of field names (e.g. "CurrentLimitBytes") to
3783	// include in API requests with the JSON null value. By default, fields
3784	// with empty values are omitted from API requests. However, any field
3785	// with an empty value appearing in NullFields will be sent to the
3786	// server as null. It is an error if a field in this list has a
3787	// non-empty value. This may be used to include null fields in Patch
3788	// requests.
3789	NullFields []string `json:"-"`
3790}
3791
3792func (s *MemInfo) MarshalJSON() ([]byte, error) {
3793	type NoMethod MemInfo
3794	raw := NoMethod(*s)
3795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3796}
3797
3798// MetricShortId: The metric short id is returned to the user alongside
3799// an offset into ReportWorkItemStatusRequest
3800type MetricShortId struct {
3801	// MetricIndex: The index of the corresponding metric in the
3802	// ReportWorkItemStatusRequest. Required.
3803	MetricIndex int64 `json:"metricIndex,omitempty"`
3804
3805	// ShortId: The service-generated short identifier for the metric.
3806	ShortId int64 `json:"shortId,omitempty,string"`
3807
3808	// ForceSendFields is a list of field names (e.g. "MetricIndex") to
3809	// unconditionally include in API requests. By default, fields with
3810	// empty or default values are omitted from API requests. However, any
3811	// non-pointer, non-interface field appearing in ForceSendFields will be
3812	// sent to the server regardless of whether the field is empty or not.
3813	// This may be used to include empty fields in Patch requests.
3814	ForceSendFields []string `json:"-"`
3815
3816	// NullFields is a list of field names (e.g. "MetricIndex") to include
3817	// in API requests with the JSON null value. By default, fields with
3818	// empty values are omitted from API requests. However, any field with
3819	// an empty value appearing in NullFields will be sent to the server as
3820	// null. It is an error if a field in this list has a non-empty value.
3821	// This may be used to include null fields in Patch requests.
3822	NullFields []string `json:"-"`
3823}
3824
3825func (s *MetricShortId) MarshalJSON() ([]byte, error) {
3826	type NoMethod MetricShortId
3827	raw := NoMethod(*s)
3828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3829}
3830
3831// MetricStructuredName: Identifies a metric, by describing the source
3832// which generated the metric.
3833type MetricStructuredName struct {
3834	// Context: Zero or more labeled fields which identify the part of the
3835	// job this metric is associated with, such as the name of a step or
3836	// collection. For example, built-in counters associated with steps will
3837	// have context['step'] = . Counters associated with PCollections in the
3838	// SDK will have context['pcollection'] = .
3839	Context map[string]string `json:"context,omitempty"`
3840
3841	// Name: Worker-defined metric name.
3842	Name string `json:"name,omitempty"`
3843
3844	// Origin: Origin (namespace) of metric name. May be blank for
3845	// user-define metrics; will be "dataflow" for metrics defined by the
3846	// Dataflow service or SDK.
3847	Origin string `json:"origin,omitempty"`
3848
3849	// ForceSendFields is a list of field names (e.g. "Context") to
3850	// unconditionally include in API requests. By default, fields with
3851	// empty or default values are omitted from API requests. However, any
3852	// non-pointer, non-interface field appearing in ForceSendFields will be
3853	// sent to the server regardless of whether the field is empty or not.
3854	// This may be used to include empty fields in Patch requests.
3855	ForceSendFields []string `json:"-"`
3856
3857	// NullFields is a list of field names (e.g. "Context") to include in
3858	// API requests with the JSON null value. By default, fields with empty
3859	// values are omitted from API requests. However, any field with an
3860	// empty value appearing in NullFields will be sent to the server as
3861	// null. It is an error if a field in this list has a non-empty value.
3862	// This may be used to include null fields in Patch requests.
3863	NullFields []string `json:"-"`
3864}
3865
3866func (s *MetricStructuredName) MarshalJSON() ([]byte, error) {
3867	type NoMethod MetricStructuredName
3868	raw := NoMethod(*s)
3869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3870}
3871
3872// MetricUpdate: Describes the state of a metric.
3873type MetricUpdate struct {
3874	// Cumulative: True if this metric is reported as the total cumulative
3875	// aggregate value accumulated since the worker started working on this
3876	// WorkItem. By default this is false, indicating that this metric is
3877	// reported as a delta that is not associated with any WorkItem.
3878	Cumulative bool `json:"cumulative,omitempty"`
3879
3880	// Distribution: A struct value describing properties of a distribution
3881	// of numeric values.
3882	Distribution interface{} `json:"distribution,omitempty"`
3883
3884	// Gauge: A struct value describing properties of a Gauge. Metrics of
3885	// gauge type show the value of a metric across time, and is aggregated
3886	// based on the newest value.
3887	Gauge interface{} `json:"gauge,omitempty"`
3888
3889	// Internal: Worker-computed aggregate value for internal use by the
3890	// Dataflow service.
3891	Internal interface{} `json:"internal,omitempty"`
3892
3893	// Kind: Metric aggregation kind. The possible metric aggregation kinds
3894	// are "Sum", "Max", "Min", "Mean", "Set", "And", "Or", and
3895	// "Distribution". The specified aggregation kind is case-insensitive.
3896	// If omitted, this is not an aggregated value but instead a single
3897	// metric sample value.
3898	Kind string `json:"kind,omitempty"`
3899
3900	// MeanCount: Worker-computed aggregate value for the "Mean" aggregation
3901	// kind. This holds the count of the aggregated values and is used in
3902	// combination with mean_sum above to obtain the actual mean aggregate
3903	// value. The only possible value type is Long.
3904	MeanCount interface{} `json:"meanCount,omitempty"`
3905
3906	// MeanSum: Worker-computed aggregate value for the "Mean" aggregation
3907	// kind. This holds the sum of the aggregated values and is used in
3908	// combination with mean_count below to obtain the actual mean aggregate
3909	// value. The only possible value types are Long and Double.
3910	MeanSum interface{} `json:"meanSum,omitempty"`
3911
3912	// Name: Name of the metric.
3913	Name *MetricStructuredName `json:"name,omitempty"`
3914
3915	// Scalar: Worker-computed aggregate value for aggregation kinds "Sum",
3916	// "Max", "Min", "And", and "Or". The possible value types are Long,
3917	// Double, and Boolean.
3918	Scalar interface{} `json:"scalar,omitempty"`
3919
3920	// Set: Worker-computed aggregate value for the "Set" aggregation kind.
3921	// The only possible value type is a list of Values whose type can be
3922	// Long, Double, or String, according to the metric's type. All Values
3923	// in the list must be of the same type.
3924	Set interface{} `json:"set,omitempty"`
3925
3926	// UpdateTime: Timestamp associated with the metric value. Optional when
3927	// workers are reporting work progress; it will be filled in responses
3928	// from the metrics API.
3929	UpdateTime string `json:"updateTime,omitempty"`
3930
3931	// ForceSendFields is a list of field names (e.g. "Cumulative") to
3932	// unconditionally include in API requests. By default, fields with
3933	// empty or default values are omitted from API requests. However, any
3934	// non-pointer, non-interface field appearing in ForceSendFields will be
3935	// sent to the server regardless of whether the field is empty or not.
3936	// This may be used to include empty fields in Patch requests.
3937	ForceSendFields []string `json:"-"`
3938
3939	// NullFields is a list of field names (e.g. "Cumulative") to include in
3940	// API requests with the JSON null value. By default, fields with empty
3941	// values are omitted from API requests. However, any field with an
3942	// empty value appearing in NullFields will be sent to the server as
3943	// null. It is an error if a field in this list has a non-empty value.
3944	// This may be used to include null fields in Patch requests.
3945	NullFields []string `json:"-"`
3946}
3947
3948func (s *MetricUpdate) MarshalJSON() ([]byte, error) {
3949	type NoMethod MetricUpdate
3950	raw := NoMethod(*s)
3951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3952}
3953
3954// MountedDataDisk: Describes mounted data disk.
3955type MountedDataDisk struct {
3956	// DataDisk: The name of the data disk. This name is local to the Google
3957	// Cloud Platform project and uniquely identifies the disk within that
3958	// project, for example "myproject-1014-104817-4c2-harness-0-disk-1".
3959	DataDisk string `json:"dataDisk,omitempty"`
3960
3961	// ForceSendFields is a list of field names (e.g. "DataDisk") to
3962	// unconditionally include in API requests. By default, fields with
3963	// empty or default values are omitted from API requests. However, any
3964	// non-pointer, non-interface field appearing in ForceSendFields will be
3965	// sent to the server regardless of whether the field is empty or not.
3966	// This may be used to include empty fields in Patch requests.
3967	ForceSendFields []string `json:"-"`
3968
3969	// NullFields is a list of field names (e.g. "DataDisk") to include in
3970	// API requests with the JSON null value. By default, fields with empty
3971	// values are omitted from API requests. However, any field with an
3972	// empty value appearing in NullFields will be sent to the server as
3973	// null. It is an error if a field in this list has a non-empty value.
3974	// This may be used to include null fields in Patch requests.
3975	NullFields []string `json:"-"`
3976}
3977
3978func (s *MountedDataDisk) MarshalJSON() ([]byte, error) {
3979	type NoMethod MountedDataDisk
3980	raw := NoMethod(*s)
3981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3982}
3983
3984// MultiOutputInfo: Information about an output of a multi-output DoFn.
3985type MultiOutputInfo struct {
3986	// Tag: The id of the tag the user code will emit to this output by;
3987	// this should correspond to the tag of some SideInputInfo.
3988	Tag string `json:"tag,omitempty"`
3989
3990	// ForceSendFields is a list of field names (e.g. "Tag") to
3991	// unconditionally include in API requests. By default, fields with
3992	// empty or default values are omitted from API requests. However, any
3993	// non-pointer, non-interface field appearing in ForceSendFields will be
3994	// sent to the server regardless of whether the field is empty or not.
3995	// This may be used to include empty fields in Patch requests.
3996	ForceSendFields []string `json:"-"`
3997
3998	// NullFields is a list of field names (e.g. "Tag") to include in API
3999	// requests with the JSON null value. By default, fields with empty
4000	// values are omitted from API requests. However, any field with an
4001	// empty value appearing in NullFields will be sent to the server as
4002	// null. It is an error if a field in this list has a non-empty value.
4003	// This may be used to include null fields in Patch requests.
4004	NullFields []string `json:"-"`
4005}
4006
4007func (s *MultiOutputInfo) MarshalJSON() ([]byte, error) {
4008	type NoMethod MultiOutputInfo
4009	raw := NoMethod(*s)
4010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4011}
4012
4013// NameAndKind: Basic metadata about a counter.
4014type NameAndKind struct {
4015	// Kind: Counter aggregation kind.
4016	//
4017	// Possible values:
4018	//   "INVALID" - Counter aggregation kind was not set.
4019	//   "SUM" - Aggregated value is the sum of all contributed values.
4020	//   "MAX" - Aggregated value is the max of all contributed values.
4021	//   "MIN" - Aggregated value is the min of all contributed values.
4022	//   "MEAN" - Aggregated value is the mean of all contributed values.
4023	//   "OR" - Aggregated value represents the logical 'or' of all
4024	// contributed values.
4025	//   "AND" - Aggregated value represents the logical 'and' of all
4026	// contributed values.
4027	//   "SET" - Aggregated value is a set of unique contributed values.
4028	//   "DISTRIBUTION" - Aggregated value captures statistics about a
4029	// distribution.
4030	//   "LATEST_VALUE" - Aggregated value tracks the latest value of a
4031	// variable.
4032	Kind string `json:"kind,omitempty"`
4033
4034	// Name: Name of the counter.
4035	Name string `json:"name,omitempty"`
4036
4037	// ForceSendFields is a list of field names (e.g. "Kind") to
4038	// unconditionally include in API requests. By default, fields with
4039	// empty or default values are omitted from API requests. However, any
4040	// non-pointer, non-interface field appearing in ForceSendFields will be
4041	// sent to the server regardless of whether the field is empty or not.
4042	// This may be used to include empty fields in Patch requests.
4043	ForceSendFields []string `json:"-"`
4044
4045	// NullFields is a list of field names (e.g. "Kind") to include in API
4046	// 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 *NameAndKind) MarshalJSON() ([]byte, error) {
4055	type NoMethod NameAndKind
4056	raw := NoMethod(*s)
4057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4058}
4059
4060// Package: The packages that must be installed in order for a worker to
4061// run the steps of the Cloud Dataflow job that will be assigned to its
4062// worker pool. This is the mechanism by which the Cloud Dataflow SDK
4063// causes code to be loaded onto the workers. For example, the Cloud
4064// Dataflow Java SDK might use this to install jars containing the
4065// user's code and all of the various dependencies (libraries, data
4066// files, etc.) required in order for that code to run.
4067type Package struct {
4068	// Location: The resource to read the package from. The supported
4069	// resource type is: Google Cloud Storage:
4070	// storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
4071	Location string `json:"location,omitempty"`
4072
4073	// Name: The name of the package.
4074	Name string `json:"name,omitempty"`
4075
4076	// ForceSendFields is a list of field names (e.g. "Location") to
4077	// unconditionally include in API requests. By default, fields with
4078	// empty or default values are omitted from API requests. However, any
4079	// non-pointer, non-interface field appearing in ForceSendFields will be
4080	// sent to the server regardless of whether the field is empty or not.
4081	// This may be used to include empty fields in Patch requests.
4082	ForceSendFields []string `json:"-"`
4083
4084	// NullFields is a list of field names (e.g. "Location") to include in
4085	// API requests with the JSON null value. By default, fields with empty
4086	// values are omitted from API requests. However, any field with an
4087	// empty value appearing in NullFields will be sent to the server as
4088	// null. It is an error if a field in this list has a non-empty value.
4089	// This may be used to include null fields in Patch requests.
4090	NullFields []string `json:"-"`
4091}
4092
4093func (s *Package) MarshalJSON() ([]byte, error) {
4094	type NoMethod Package
4095	raw := NoMethod(*s)
4096	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4097}
4098
4099// ParDoInstruction: An instruction that does a ParDo operation. Takes
4100// one main input and zero or more side inputs, and produces zero or
4101// more outputs. Runs user code.
4102type ParDoInstruction struct {
4103	// Input: The input.
4104	Input *InstructionInput `json:"input,omitempty"`
4105
4106	// MultiOutputInfos: Information about each of the outputs, if user_fn
4107	// is a MultiDoFn.
4108	MultiOutputInfos []*MultiOutputInfo `json:"multiOutputInfos,omitempty"`
4109
4110	// NumOutputs: The number of outputs.
4111	NumOutputs int64 `json:"numOutputs,omitempty"`
4112
4113	// SideInputs: Zero or more side inputs.
4114	SideInputs []*SideInputInfo `json:"sideInputs,omitempty"`
4115
4116	// UserFn: The user function to invoke.
4117	UserFn googleapi.RawMessage `json:"userFn,omitempty"`
4118
4119	// ForceSendFields is a list of field names (e.g. "Input") to
4120	// unconditionally include in API requests. By default, fields with
4121	// empty or default values are omitted from API requests. However, any
4122	// non-pointer, non-interface field appearing in ForceSendFields will be
4123	// sent to the server regardless of whether the field is empty or not.
4124	// This may be used to include empty fields in Patch requests.
4125	ForceSendFields []string `json:"-"`
4126
4127	// NullFields is a list of field names (e.g. "Input") to include in API
4128	// requests with the JSON null value. By default, fields with empty
4129	// values are omitted from API requests. However, any field with an
4130	// empty value appearing in NullFields will be sent to the server as
4131	// null. It is an error if a field in this list has a non-empty value.
4132	// This may be used to include null fields in Patch requests.
4133	NullFields []string `json:"-"`
4134}
4135
4136func (s *ParDoInstruction) MarshalJSON() ([]byte, error) {
4137	type NoMethod ParDoInstruction
4138	raw := NoMethod(*s)
4139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4140}
4141
4142// ParallelInstruction: Describes a particular operation comprising a
4143// MapTask.
4144type ParallelInstruction struct {
4145	// Flatten: Additional information for Flatten instructions.
4146	Flatten *FlattenInstruction `json:"flatten,omitempty"`
4147
4148	// Name: User-provided name of this operation.
4149	Name string `json:"name,omitempty"`
4150
4151	// OriginalName: System-defined name for the operation in the original
4152	// workflow graph.
4153	OriginalName string `json:"originalName,omitempty"`
4154
4155	// Outputs: Describes the outputs of the instruction.
4156	Outputs []*InstructionOutput `json:"outputs,omitempty"`
4157
4158	// ParDo: Additional information for ParDo instructions.
4159	ParDo *ParDoInstruction `json:"parDo,omitempty"`
4160
4161	// PartialGroupByKey: Additional information for PartialGroupByKey
4162	// instructions.
4163	PartialGroupByKey *PartialGroupByKeyInstruction `json:"partialGroupByKey,omitempty"`
4164
4165	// Read: Additional information for Read instructions.
4166	Read *ReadInstruction `json:"read,omitempty"`
4167
4168	// SystemName: System-defined name of this operation. Unique across the
4169	// workflow.
4170	SystemName string `json:"systemName,omitempty"`
4171
4172	// Write: Additional information for Write instructions.
4173	Write *WriteInstruction `json:"write,omitempty"`
4174
4175	// ForceSendFields is a list of field names (e.g. "Flatten") to
4176	// unconditionally include in API requests. By default, fields with
4177	// empty or default values are omitted from API requests. However, any
4178	// non-pointer, non-interface field appearing in ForceSendFields will be
4179	// sent to the server regardless of whether the field is empty or not.
4180	// This may be used to include empty fields in Patch requests.
4181	ForceSendFields []string `json:"-"`
4182
4183	// NullFields is a list of field names (e.g. "Flatten") to include in
4184	// API requests with the JSON null value. By default, fields with empty
4185	// values are omitted from API requests. However, any field with an
4186	// empty value appearing in NullFields will be sent to the server as
4187	// null. It is an error if a field in this list has a non-empty value.
4188	// This may be used to include null fields in Patch requests.
4189	NullFields []string `json:"-"`
4190}
4191
4192func (s *ParallelInstruction) MarshalJSON() ([]byte, error) {
4193	type NoMethod ParallelInstruction
4194	raw := NoMethod(*s)
4195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4196}
4197
4198// Parameter: Structured data associated with this message.
4199type Parameter struct {
4200	// Key: Key or name for this parameter.
4201	Key string `json:"key,omitempty"`
4202
4203	// Value: Value for this parameter.
4204	Value interface{} `json:"value,omitempty"`
4205
4206	// ForceSendFields is a list of field names (e.g. "Key") to
4207	// unconditionally include in API requests. By default, fields with
4208	// empty or default values are omitted from API requests. However, any
4209	// non-pointer, non-interface field appearing in ForceSendFields will be
4210	// sent to the server regardless of whether the field is empty or not.
4211	// This may be used to include empty fields in Patch requests.
4212	ForceSendFields []string `json:"-"`
4213
4214	// NullFields is a list of field names (e.g. "Key") to include in API
4215	// requests with the JSON null value. By default, fields with empty
4216	// values are omitted from API requests. However, any field with an
4217	// empty value appearing in NullFields will be sent to the server as
4218	// null. It is an error if a field in this list has a non-empty value.
4219	// This may be used to include null fields in Patch requests.
4220	NullFields []string `json:"-"`
4221}
4222
4223func (s *Parameter) MarshalJSON() ([]byte, error) {
4224	type NoMethod Parameter
4225	raw := NoMethod(*s)
4226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4227}
4228
4229// ParameterMetadata: Metadata for a specific parameter.
4230type ParameterMetadata struct {
4231	// CustomMetadata: Optional. Additional metadata for describing this
4232	// parameter.
4233	CustomMetadata map[string]string `json:"customMetadata,omitempty"`
4234
4235	// HelpText: Required. The help text to display for the parameter.
4236	HelpText string `json:"helpText,omitempty"`
4237
4238	// IsOptional: Optional. Whether the parameter is optional. Defaults to
4239	// false.
4240	IsOptional bool `json:"isOptional,omitempty"`
4241
4242	// Label: Required. The label to display for the parameter.
4243	Label string `json:"label,omitempty"`
4244
4245	// Name: Required. The name of the parameter.
4246	Name string `json:"name,omitempty"`
4247
4248	// ParamType: Optional. The type of the parameter. Used for selecting
4249	// input picker.
4250	//
4251	// Possible values:
4252	//   "DEFAULT" - Default input type.
4253	//   "TEXT" - The parameter specifies generic text input.
4254	//   "GCS_READ_BUCKET" - The parameter specifies a Cloud Storage Bucket
4255	// to read from.
4256	//   "GCS_WRITE_BUCKET" - The parameter specifies a Cloud Storage Bucket
4257	// to write to.
4258	//   "GCS_READ_FILE" - The parameter specifies a Cloud Storage file path
4259	// to read from.
4260	//   "GCS_WRITE_FILE" - The parameter specifies a Cloud Storage file
4261	// path to write to.
4262	//   "GCS_READ_FOLDER" - The parameter specifies a Cloud Storage folder
4263	// path to read from.
4264	//   "GCS_WRITE_FOLDER" - The parameter specifies a Cloud Storage folder
4265	// to write to.
4266	//   "PUBSUB_TOPIC" - The parameter specifies a Pub/Sub Topic.
4267	//   "PUBSUB_SUBSCRIPTION" - The parameter specifies a Pub/Sub
4268	// Subscription.
4269	ParamType string `json:"paramType,omitempty"`
4270
4271	// Regexes: Optional. Regexes that the parameter must match.
4272	Regexes []string `json:"regexes,omitempty"`
4273
4274	// ForceSendFields is a list of field names (e.g. "CustomMetadata") to
4275	// unconditionally include in API requests. By default, fields with
4276	// empty or default values are omitted from API requests. However, any
4277	// non-pointer, non-interface field appearing in ForceSendFields will be
4278	// sent to the server regardless of whether the field is empty or not.
4279	// This may be used to include empty fields in Patch requests.
4280	ForceSendFields []string `json:"-"`
4281
4282	// NullFields is a list of field names (e.g. "CustomMetadata") to
4283	// include in API requests with the JSON null value. By default, fields
4284	// with empty values are omitted from API requests. However, any field
4285	// with an empty value appearing in NullFields will be sent to the
4286	// server as null. It is an error if a field in this list has a
4287	// non-empty value. This may be used to include null fields in Patch
4288	// requests.
4289	NullFields []string `json:"-"`
4290}
4291
4292func (s *ParameterMetadata) MarshalJSON() ([]byte, error) {
4293	type NoMethod ParameterMetadata
4294	raw := NoMethod(*s)
4295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4296}
4297
4298// PartialGroupByKeyInstruction: An instruction that does a partial
4299// group-by-key. One input and one output.
4300type PartialGroupByKeyInstruction struct {
4301	// Input: Describes the input to the partial group-by-key instruction.
4302	Input *InstructionInput `json:"input,omitempty"`
4303
4304	// InputElementCodec: The codec to use for interpreting an element in
4305	// the input PTable.
4306	InputElementCodec googleapi.RawMessage `json:"inputElementCodec,omitempty"`
4307
4308	// OriginalCombineValuesInputStoreName: If this instruction includes a
4309	// combining function this is the name of the intermediate store between
4310	// the GBK and the CombineValues.
4311	OriginalCombineValuesInputStoreName string `json:"originalCombineValuesInputStoreName,omitempty"`
4312
4313	// OriginalCombineValuesStepName: If this instruction includes a
4314	// combining function, this is the name of the CombineValues instruction
4315	// lifted into this instruction.
4316	OriginalCombineValuesStepName string `json:"originalCombineValuesStepName,omitempty"`
4317
4318	// SideInputs: Zero or more side inputs.
4319	SideInputs []*SideInputInfo `json:"sideInputs,omitempty"`
4320
4321	// ValueCombiningFn: The value combining function to invoke.
4322	ValueCombiningFn googleapi.RawMessage `json:"valueCombiningFn,omitempty"`
4323
4324	// ForceSendFields is a list of field names (e.g. "Input") to
4325	// unconditionally include in API requests. By default, fields with
4326	// empty or default values are omitted from API requests. However, any
4327	// non-pointer, non-interface field appearing in ForceSendFields will be
4328	// sent to the server regardless of whether the field is empty or not.
4329	// This may be used to include empty fields in Patch requests.
4330	ForceSendFields []string `json:"-"`
4331
4332	// NullFields is a list of field names (e.g. "Input") to include in API
4333	// requests with the JSON null value. By default, fields with empty
4334	// values are omitted from API requests. However, any field with an
4335	// empty value appearing in NullFields will be sent to the server as
4336	// null. It is an error if a field in this list has a non-empty value.
4337	// This may be used to include null fields in Patch requests.
4338	NullFields []string `json:"-"`
4339}
4340
4341func (s *PartialGroupByKeyInstruction) MarshalJSON() ([]byte, error) {
4342	type NoMethod PartialGroupByKeyInstruction
4343	raw := NoMethod(*s)
4344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4345}
4346
4347// PipelineDescription: A descriptive representation of submitted
4348// pipeline as well as the executed form. This data is provided by the
4349// Dataflow service for ease of visualizing the pipeline and
4350// interpreting Dataflow provided metrics.
4351type PipelineDescription struct {
4352	// DisplayData: Pipeline level display data.
4353	DisplayData []*DisplayData `json:"displayData,omitempty"`
4354
4355	// ExecutionPipelineStage: Description of each stage of execution of the
4356	// pipeline.
4357	ExecutionPipelineStage []*ExecutionStageSummary `json:"executionPipelineStage,omitempty"`
4358
4359	// OriginalPipelineTransform: Description of each transform in the
4360	// pipeline and collections between them.
4361	OriginalPipelineTransform []*TransformSummary `json:"originalPipelineTransform,omitempty"`
4362
4363	// ForceSendFields is a list of field names (e.g. "DisplayData") to
4364	// unconditionally include in API requests. By default, fields with
4365	// empty or default values are omitted from API requests. However, any
4366	// non-pointer, non-interface field appearing in ForceSendFields will be
4367	// sent to the server regardless of whether the field is empty or not.
4368	// This may be used to include empty fields in Patch requests.
4369	ForceSendFields []string `json:"-"`
4370
4371	// NullFields is a list of field names (e.g. "DisplayData") to include
4372	// in API requests with the JSON null value. By default, fields with
4373	// empty values are omitted from API requests. However, any field with
4374	// an empty value appearing in NullFields will be sent to the server as
4375	// null. It is an error if a field in this list has a non-empty value.
4376	// This may be used to include null fields in Patch requests.
4377	NullFields []string `json:"-"`
4378}
4379
4380func (s *PipelineDescription) MarshalJSON() ([]byte, error) {
4381	type NoMethod PipelineDescription
4382	raw := NoMethod(*s)
4383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4384}
4385
4386// Point: A point in the timeseries.
4387type Point struct {
4388	// Time: The timestamp of the point.
4389	Time string `json:"time,omitempty"`
4390
4391	// Value: The value of the point.
4392	Value float64 `json:"value,omitempty"`
4393
4394	// ForceSendFields is a list of field names (e.g. "Time") to
4395	// unconditionally include in API requests. By default, fields with
4396	// empty or default values are omitted from API requests. However, any
4397	// non-pointer, non-interface field appearing in ForceSendFields will be
4398	// sent to the server regardless of whether the field is empty or not.
4399	// This may be used to include empty fields in Patch requests.
4400	ForceSendFields []string `json:"-"`
4401
4402	// NullFields is a list of field names (e.g. "Time") to include in API
4403	// requests with the JSON null value. By default, fields with empty
4404	// values are omitted from API requests. However, any field with an
4405	// empty value appearing in NullFields will be sent to the server as
4406	// null. It is an error if a field in this list has a non-empty value.
4407	// This may be used to include null fields in Patch requests.
4408	NullFields []string `json:"-"`
4409}
4410
4411func (s *Point) MarshalJSON() ([]byte, error) {
4412	type NoMethod Point
4413	raw := NoMethod(*s)
4414	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4415}
4416
4417func (s *Point) UnmarshalJSON(data []byte) error {
4418	type NoMethod Point
4419	var s1 struct {
4420		Value gensupport.JSONFloat64 `json:"value"`
4421		*NoMethod
4422	}
4423	s1.NoMethod = (*NoMethod)(s)
4424	if err := json.Unmarshal(data, &s1); err != nil {
4425		return err
4426	}
4427	s.Value = float64(s1.Value)
4428	return nil
4429}
4430
4431// Position: Position defines a position within a collection of data.
4432// The value can be either the end position, a key (used with ordered
4433// collections), a byte offset, or a record index.
4434type Position struct {
4435	// ByteOffset: Position is a byte offset.
4436	ByteOffset int64 `json:"byteOffset,omitempty,string"`
4437
4438	// ConcatPosition: CloudPosition is a concat position.
4439	ConcatPosition *ConcatPosition `json:"concatPosition,omitempty"`
4440
4441	// End: Position is past all other positions. Also useful for the end
4442	// position of an unbounded range.
4443	End bool `json:"end,omitempty"`
4444
4445	// Key: Position is a string key, ordered lexicographically.
4446	Key string `json:"key,omitempty"`
4447
4448	// RecordIndex: Position is a record index.
4449	RecordIndex int64 `json:"recordIndex,omitempty,string"`
4450
4451	// ShufflePosition: CloudPosition is a base64 encoded
4452	// BatchShufflePosition (with FIXED sharding).
4453	ShufflePosition string `json:"shufflePosition,omitempty"`
4454
4455	// ForceSendFields is a list of field names (e.g. "ByteOffset") to
4456	// unconditionally include in API requests. By default, fields with
4457	// empty or default values are omitted from API requests. However, any
4458	// non-pointer, non-interface field appearing in ForceSendFields will be
4459	// sent to the server regardless of whether the field is empty or not.
4460	// This may be used to include empty fields in Patch requests.
4461	ForceSendFields []string `json:"-"`
4462
4463	// NullFields is a list of field names (e.g. "ByteOffset") to include in
4464	// API requests with the JSON null value. By default, fields with empty
4465	// values are omitted from API requests. However, any field with an
4466	// empty value appearing in NullFields will be sent to the server as
4467	// null. It is an error if a field in this list has a non-empty value.
4468	// This may be used to include null fields in Patch requests.
4469	NullFields []string `json:"-"`
4470}
4471
4472func (s *Position) MarshalJSON() ([]byte, error) {
4473	type NoMethod Position
4474	raw := NoMethod(*s)
4475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4476}
4477
4478// ProgressTimeseries: Information about the progress of some component
4479// of job execution.
4480type ProgressTimeseries struct {
4481	// CurrentProgress: The current progress of the component, in the range
4482	// [0,1].
4483	CurrentProgress float64 `json:"currentProgress,omitempty"`
4484
4485	// DataPoints: History of progress for the component. Points are sorted
4486	// by time.
4487	DataPoints []*Point `json:"dataPoints,omitempty"`
4488
4489	// ForceSendFields is a list of field names (e.g. "CurrentProgress") to
4490	// unconditionally include in API requests. By default, fields with
4491	// empty or default values are omitted from API requests. However, any
4492	// non-pointer, non-interface field appearing in ForceSendFields will be
4493	// sent to the server regardless of whether the field is empty or not.
4494	// This may be used to include empty fields in Patch requests.
4495	ForceSendFields []string `json:"-"`
4496
4497	// NullFields is a list of field names (e.g. "CurrentProgress") to
4498	// include in API requests with the JSON null value. By default, fields
4499	// with empty values are omitted from API requests. However, any field
4500	// with an empty value appearing in NullFields will be sent to the
4501	// server as null. It is an error if a field in this list has a
4502	// non-empty value. This may be used to include null fields in Patch
4503	// requests.
4504	NullFields []string `json:"-"`
4505}
4506
4507func (s *ProgressTimeseries) MarshalJSON() ([]byte, error) {
4508	type NoMethod ProgressTimeseries
4509	raw := NoMethod(*s)
4510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4511}
4512
4513func (s *ProgressTimeseries) UnmarshalJSON(data []byte) error {
4514	type NoMethod ProgressTimeseries
4515	var s1 struct {
4516		CurrentProgress gensupport.JSONFloat64 `json:"currentProgress"`
4517		*NoMethod
4518	}
4519	s1.NoMethod = (*NoMethod)(s)
4520	if err := json.Unmarshal(data, &s1); err != nil {
4521		return err
4522	}
4523	s.CurrentProgress = float64(s1.CurrentProgress)
4524	return nil
4525}
4526
4527// PubSubIODetails: Metadata for a Pub/Sub connector used by the job.
4528type PubSubIODetails struct {
4529	// Subscription: Subscription used in the connection.
4530	Subscription string `json:"subscription,omitempty"`
4531
4532	// Topic: Topic accessed in the connection.
4533	Topic string `json:"topic,omitempty"`
4534
4535	// ForceSendFields is a list of field names (e.g. "Subscription") to
4536	// unconditionally include in API requests. By default, fields with
4537	// empty or default values are omitted from API requests. However, any
4538	// non-pointer, non-interface field appearing in ForceSendFields will be
4539	// sent to the server regardless of whether the field is empty or not.
4540	// This may be used to include empty fields in Patch requests.
4541	ForceSendFields []string `json:"-"`
4542
4543	// NullFields is a list of field names (e.g. "Subscription") to include
4544	// in API requests with the JSON null value. By default, fields with
4545	// empty values are omitted from API requests. However, any field with
4546	// an empty value appearing in NullFields will be sent to the server as
4547	// null. It is an error if a field in this list has a non-empty value.
4548	// This may be used to include null fields in Patch requests.
4549	NullFields []string `json:"-"`
4550}
4551
4552func (s *PubSubIODetails) MarshalJSON() ([]byte, error) {
4553	type NoMethod PubSubIODetails
4554	raw := NoMethod(*s)
4555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4556}
4557
4558// PubsubLocation: Identifies a pubsub location to use for transferring
4559// data into or out of a streaming Dataflow job.
4560type PubsubLocation struct {
4561	// DropLateData: Indicates whether the pipeline allows late-arriving
4562	// data.
4563	DropLateData bool `json:"dropLateData,omitempty"`
4564
4565	// IdLabel: If set, contains a pubsub label from which to extract record
4566	// ids. If left empty, record deduplication will be strictly best
4567	// effort.
4568	IdLabel string `json:"idLabel,omitempty"`
4569
4570	// Subscription: A pubsub subscription, in the form of
4571	// "pubsub.googleapis.com/subscriptions//"
4572	Subscription string `json:"subscription,omitempty"`
4573
4574	// TimestampLabel: If set, contains a pubsub label from which to extract
4575	// record timestamps. If left empty, record timestamps will be generated
4576	// upon arrival.
4577	TimestampLabel string `json:"timestampLabel,omitempty"`
4578
4579	// Topic: A pubsub topic, in the form of
4580	// "pubsub.googleapis.com/topics//"
4581	Topic string `json:"topic,omitempty"`
4582
4583	// TrackingSubscription: If set, specifies the pubsub subscription that
4584	// will be used for tracking custom time timestamps for watermark
4585	// estimation.
4586	TrackingSubscription string `json:"trackingSubscription,omitempty"`
4587
4588	// WithAttributes: If true, then the client has requested to get pubsub
4589	// attributes.
4590	WithAttributes bool `json:"withAttributes,omitempty"`
4591
4592	// ForceSendFields is a list of field names (e.g. "DropLateData") to
4593	// unconditionally include in API requests. By default, fields with
4594	// empty or default values are omitted from API requests. However, any
4595	// non-pointer, non-interface field appearing in ForceSendFields will be
4596	// sent to the server regardless of whether the field is empty or not.
4597	// This may be used to include empty fields in Patch requests.
4598	ForceSendFields []string `json:"-"`
4599
4600	// NullFields is a list of field names (e.g. "DropLateData") to include
4601	// in API requests with the JSON null value. By default, fields with
4602	// empty values are omitted from API requests. However, any field with
4603	// an empty value appearing in NullFields will be sent to the server as
4604	// null. It is an error if a field in this list has a non-empty value.
4605	// This may be used to include null fields in Patch requests.
4606	NullFields []string `json:"-"`
4607}
4608
4609func (s *PubsubLocation) MarshalJSON() ([]byte, error) {
4610	type NoMethod PubsubLocation
4611	raw := NoMethod(*s)
4612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4613}
4614
4615// PubsubSnapshotMetadata: Represents a Pubsub snapshot.
4616type PubsubSnapshotMetadata struct {
4617	// ExpireTime: The expire time of the Pubsub snapshot.
4618	ExpireTime string `json:"expireTime,omitempty"`
4619
4620	// SnapshotName: The name of the Pubsub snapshot.
4621	SnapshotName string `json:"snapshotName,omitempty"`
4622
4623	// TopicName: The name of the Pubsub topic.
4624	TopicName string `json:"topicName,omitempty"`
4625
4626	// ForceSendFields is a list of field names (e.g. "ExpireTime") to
4627	// unconditionally include in API requests. By default, fields with
4628	// empty or default values are omitted from API requests. However, any
4629	// non-pointer, non-interface field appearing in ForceSendFields will be
4630	// sent to the server regardless of whether the field is empty or not.
4631	// This may be used to include empty fields in Patch requests.
4632	ForceSendFields []string `json:"-"`
4633
4634	// NullFields is a list of field names (e.g. "ExpireTime") to include in
4635	// API requests with the JSON null value. By default, fields with empty
4636	// values are omitted from API requests. However, any field with an
4637	// empty value appearing in NullFields will be sent to the server as
4638	// null. It is an error if a field in this list has a non-empty value.
4639	// This may be used to include null fields in Patch requests.
4640	NullFields []string `json:"-"`
4641}
4642
4643func (s *PubsubSnapshotMetadata) MarshalJSON() ([]byte, error) {
4644	type NoMethod PubsubSnapshotMetadata
4645	raw := NoMethod(*s)
4646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4647}
4648
4649// QueryInfo: Information about a validated query.
4650type QueryInfo struct {
4651	// QueryProperty: Includes an entry for each satisfied QueryProperty.
4652	//
4653	// Possible values:
4654	//   "QUERY_PROPERTY_UNSPECIFIED" - The query property is unknown or
4655	// unspecified.
4656	//   "HAS_UNBOUNDED_SOURCE" - Indicates this query reads from >= 1
4657	// unbounded source.
4658	QueryProperty []string `json:"queryProperty,omitempty"`
4659
4660	// ForceSendFields is a list of field names (e.g. "QueryProperty") to
4661	// unconditionally include in API requests. By default, fields with
4662	// empty or default values are omitted from API requests. However, any
4663	// non-pointer, non-interface field appearing in ForceSendFields will be
4664	// sent to the server regardless of whether the field is empty or not.
4665	// This may be used to include empty fields in Patch requests.
4666	ForceSendFields []string `json:"-"`
4667
4668	// NullFields is a list of field names (e.g. "QueryProperty") to include
4669	// in API requests with the JSON null value. By default, fields with
4670	// empty values are omitted from API requests. However, any field with
4671	// an empty value appearing in NullFields will be sent to the server as
4672	// null. It is an error if a field in this list has a non-empty value.
4673	// This may be used to include null fields in Patch requests.
4674	NullFields []string `json:"-"`
4675}
4676
4677func (s *QueryInfo) MarshalJSON() ([]byte, error) {
4678	type NoMethod QueryInfo
4679	raw := NoMethod(*s)
4680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4681}
4682
4683// ReadInstruction: An instruction that reads records. Takes no inputs,
4684// produces one output.
4685type ReadInstruction struct {
4686	// Source: The source to read from.
4687	Source *Source `json:"source,omitempty"`
4688
4689	// ForceSendFields is a list of field names (e.g. "Source") to
4690	// unconditionally include in API requests. By default, fields with
4691	// empty or default values are omitted from API requests. However, any
4692	// non-pointer, non-interface field appearing in ForceSendFields will be
4693	// sent to the server regardless of whether the field is empty or not.
4694	// This may be used to include empty fields in Patch requests.
4695	ForceSendFields []string `json:"-"`
4696
4697	// NullFields is a list of field names (e.g. "Source") to include in API
4698	// requests with the JSON null value. By default, fields with empty
4699	// values are omitted from API requests. However, any field with an
4700	// empty value appearing in NullFields will be sent to the server as
4701	// null. It is an error if a field in this list has a non-empty value.
4702	// This may be used to include null fields in Patch requests.
4703	NullFields []string `json:"-"`
4704}
4705
4706func (s *ReadInstruction) MarshalJSON() ([]byte, error) {
4707	type NoMethod ReadInstruction
4708	raw := NoMethod(*s)
4709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4710}
4711
4712// ReportWorkItemStatusRequest: Request to report the status of
4713// WorkItems.
4714type ReportWorkItemStatusRequest struct {
4715	// CurrentWorkerTime: The current timestamp at the worker.
4716	CurrentWorkerTime string `json:"currentWorkerTime,omitempty"`
4717
4718	// Location: The [regional endpoint]
4719	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
4720	// that contains the WorkItem's job.
4721	Location string `json:"location,omitempty"`
4722
4723	// UnifiedWorkerRequest: Untranslated bag-of-bytes
4724	// WorkProgressUpdateRequest from UnifiedWorker.
4725	UnifiedWorkerRequest googleapi.RawMessage `json:"unifiedWorkerRequest,omitempty"`
4726
4727	// WorkItemStatuses: The order is unimportant, except that the order of
4728	// the WorkItemServiceState messages in the ReportWorkItemStatusResponse
4729	// corresponds to the order of WorkItemStatus messages here.
4730	WorkItemStatuses []*WorkItemStatus `json:"workItemStatuses,omitempty"`
4731
4732	// WorkerId: The ID of the worker reporting the WorkItem status. If this
4733	// does not match the ID of the worker which the Dataflow service
4734	// believes currently has the lease on the WorkItem, the report will be
4735	// dropped (with an error response).
4736	WorkerId string `json:"workerId,omitempty"`
4737
4738	// ForceSendFields is a list of field names (e.g. "CurrentWorkerTime")
4739	// to unconditionally include in API requests. By default, fields with
4740	// empty or default values are omitted from API requests. However, any
4741	// non-pointer, non-interface field appearing in ForceSendFields will be
4742	// sent to the server regardless of whether the field is empty or not.
4743	// This may be used to include empty fields in Patch requests.
4744	ForceSendFields []string `json:"-"`
4745
4746	// NullFields is a list of field names (e.g. "CurrentWorkerTime") to
4747	// include in API requests with the JSON null value. By default, fields
4748	// with empty values are omitted from API requests. However, any field
4749	// with an empty value appearing in NullFields will be sent to the
4750	// server as null. It is an error if a field in this list has a
4751	// non-empty value. This may be used to include null fields in Patch
4752	// requests.
4753	NullFields []string `json:"-"`
4754}
4755
4756func (s *ReportWorkItemStatusRequest) MarshalJSON() ([]byte, error) {
4757	type NoMethod ReportWorkItemStatusRequest
4758	raw := NoMethod(*s)
4759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4760}
4761
4762// ReportWorkItemStatusResponse: Response from a request to report the
4763// status of WorkItems.
4764type ReportWorkItemStatusResponse struct {
4765	// UnifiedWorkerResponse: Untranslated bag-of-bytes
4766	// WorkProgressUpdateResponse for UnifiedWorker.
4767	UnifiedWorkerResponse googleapi.RawMessage `json:"unifiedWorkerResponse,omitempty"`
4768
4769	// WorkItemServiceStates: A set of messages indicating the service-side
4770	// state for each WorkItem whose status was reported, in the same order
4771	// as the WorkItemStatus messages in the ReportWorkItemStatusRequest
4772	// which resulting in this response.
4773	WorkItemServiceStates []*WorkItemServiceState `json:"workItemServiceStates,omitempty"`
4774
4775	// ServerResponse contains the HTTP response code and headers from the
4776	// server.
4777	googleapi.ServerResponse `json:"-"`
4778
4779	// ForceSendFields is a list of field names (e.g.
4780	// "UnifiedWorkerResponse") to unconditionally include in API requests.
4781	// By default, fields with empty or default values are omitted from API
4782	// requests. However, any non-pointer, non-interface field appearing in
4783	// ForceSendFields will be sent to the server regardless of whether the
4784	// field is empty or not. This may be used to include empty fields in
4785	// Patch requests.
4786	ForceSendFields []string `json:"-"`
4787
4788	// NullFields is a list of field names (e.g. "UnifiedWorkerResponse") to
4789	// include in API requests with the JSON null value. By default, fields
4790	// with empty values are omitted from API requests. However, any field
4791	// with an empty value appearing in NullFields will be sent to the
4792	// server as null. It is an error if a field in this list has a
4793	// non-empty value. This may be used to include null fields in Patch
4794	// requests.
4795	NullFields []string `json:"-"`
4796}
4797
4798func (s *ReportWorkItemStatusResponse) MarshalJSON() ([]byte, error) {
4799	type NoMethod ReportWorkItemStatusResponse
4800	raw := NoMethod(*s)
4801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4802}
4803
4804// ReportedParallelism: Represents the level of parallelism in a
4805// WorkItem's input, reported by the worker.
4806type ReportedParallelism struct {
4807	// IsInfinite: Specifies whether the parallelism is infinite. If true,
4808	// "value" is ignored. Infinite parallelism means the service will
4809	// assume that the work item can always be split into more non-empty
4810	// work items by dynamic splitting. This is a work-around for lack of
4811	// support for infinity by the current JSON-based Java RPC stack.
4812	IsInfinite bool `json:"isInfinite,omitempty"`
4813
4814	// Value: Specifies the level of parallelism in case it is finite.
4815	Value float64 `json:"value,omitempty"`
4816
4817	// ForceSendFields is a list of field names (e.g. "IsInfinite") to
4818	// unconditionally include in API requests. By default, fields with
4819	// empty or default values are omitted from API requests. However, any
4820	// non-pointer, non-interface field appearing in ForceSendFields will be
4821	// sent to the server regardless of whether the field is empty or not.
4822	// This may be used to include empty fields in Patch requests.
4823	ForceSendFields []string `json:"-"`
4824
4825	// NullFields is a list of field names (e.g. "IsInfinite") to include in
4826	// API requests with the JSON null value. By default, fields with empty
4827	// values are omitted from API requests. However, any field with an
4828	// empty value appearing in NullFields will be sent to the server as
4829	// null. It is an error if a field in this list has a non-empty value.
4830	// This may be used to include null fields in Patch requests.
4831	NullFields []string `json:"-"`
4832}
4833
4834func (s *ReportedParallelism) MarshalJSON() ([]byte, error) {
4835	type NoMethod ReportedParallelism
4836	raw := NoMethod(*s)
4837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4838}
4839
4840func (s *ReportedParallelism) UnmarshalJSON(data []byte) error {
4841	type NoMethod ReportedParallelism
4842	var s1 struct {
4843		Value gensupport.JSONFloat64 `json:"value"`
4844		*NoMethod
4845	}
4846	s1.NoMethod = (*NoMethod)(s)
4847	if err := json.Unmarshal(data, &s1); err != nil {
4848		return err
4849	}
4850	s.Value = float64(s1.Value)
4851	return nil
4852}
4853
4854// ResourceUtilizationReport: Worker metrics exported from workers. This
4855// contains resource utilization metrics accumulated from a variety of
4856// sources. For more information, see go/df-resource-signals.
4857type ResourceUtilizationReport struct {
4858	// Containers: Per container information. Key: container name.
4859	Containers map[string]ResourceUtilizationReport `json:"containers,omitempty"`
4860
4861	// CpuTime: CPU utilization samples.
4862	CpuTime []*CPUTime `json:"cpuTime,omitempty"`
4863
4864	// MemoryInfo: Memory utilization samples.
4865	MemoryInfo []*MemInfo `json:"memoryInfo,omitempty"`
4866
4867	// ForceSendFields is a list of field names (e.g. "Containers") to
4868	// unconditionally include in API requests. By default, fields with
4869	// empty or default values are omitted from API requests. However, any
4870	// non-pointer, non-interface field appearing in ForceSendFields will be
4871	// sent to the server regardless of whether the field is empty or not.
4872	// This may be used to include empty fields in Patch requests.
4873	ForceSendFields []string `json:"-"`
4874
4875	// NullFields is a list of field names (e.g. "Containers") to include in
4876	// API requests with the JSON null value. By default, fields with empty
4877	// values are omitted from API requests. However, any field with an
4878	// empty value appearing in NullFields will be sent to the server as
4879	// null. It is an error if a field in this list has a non-empty value.
4880	// This may be used to include null fields in Patch requests.
4881	NullFields []string `json:"-"`
4882}
4883
4884func (s *ResourceUtilizationReport) MarshalJSON() ([]byte, error) {
4885	type NoMethod ResourceUtilizationReport
4886	raw := NoMethod(*s)
4887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4888}
4889
4890// ResourceUtilizationReportResponse: Service-side response to
4891// WorkerMessage reporting resource utilization.
4892type ResourceUtilizationReportResponse struct {
4893}
4894
4895// RuntimeEnvironment: The environment values to set at runtime.
4896type RuntimeEnvironment struct {
4897	// AdditionalExperiments: Additional experiment flags for the job,
4898	// specified with the `--experiments` option.
4899	AdditionalExperiments []string `json:"additionalExperiments,omitempty"`
4900
4901	// AdditionalUserLabels: Additional user labels to be specified for the
4902	// job. Keys and values should follow the restrictions specified in the
4903	// labeling restrictions
4904	// (https://cloud.google.com/compute/docs/labeling-resources#restrictions)
4905	// page. An object containing a list of "key": value pairs. Example: {
4906	// "name": "wrench", "mass": "1kg", "count": "3" }.
4907	AdditionalUserLabels map[string]string `json:"additionalUserLabels,omitempty"`
4908
4909	// BypassTempDirValidation: Whether to bypass the safety checks for the
4910	// job's temporary directory. Use with caution.
4911	BypassTempDirValidation bool `json:"bypassTempDirValidation,omitempty"`
4912
4913	// EnableStreamingEngine: Whether to enable Streaming Engine for the
4914	// job.
4915	EnableStreamingEngine bool `json:"enableStreamingEngine,omitempty"`
4916
4917	// IpConfiguration: Configuration for VM IPs.
4918	//
4919	// Possible values:
4920	//   "WORKER_IP_UNSPECIFIED" - The configuration is unknown, or
4921	// unspecified.
4922	//   "WORKER_IP_PUBLIC" - Workers should have public IP addresses.
4923	//   "WORKER_IP_PRIVATE" - Workers should have private IP addresses.
4924	IpConfiguration string `json:"ipConfiguration,omitempty"`
4925
4926	// KmsKeyName: Name for the Cloud KMS key for the job. Key format is:
4927	// projects//locations//keyRings//cryptoKeys/
4928	KmsKeyName string `json:"kmsKeyName,omitempty"`
4929
4930	// MachineType: The machine type to use for the job. Defaults to the
4931	// value from the template if not specified.
4932	MachineType string `json:"machineType,omitempty"`
4933
4934	// MaxWorkers: The maximum number of Google Compute Engine instances to
4935	// be made available to your pipeline during execution, from 1 to 1000.
4936	MaxWorkers int64 `json:"maxWorkers,omitempty"`
4937
4938	// Network: Network to which VMs will be assigned. If empty or
4939	// unspecified, the service will use the network "default".
4940	Network string `json:"network,omitempty"`
4941
4942	// NumWorkers: The initial number of Google Compute Engine instnaces for
4943	// the job.
4944	NumWorkers int64 `json:"numWorkers,omitempty"`
4945
4946	// ServiceAccountEmail: The email address of the service account to run
4947	// the job as.
4948	ServiceAccountEmail string `json:"serviceAccountEmail,omitempty"`
4949
4950	// Subnetwork: Subnetwork to which VMs will be assigned, if desired. You
4951	// can specify a subnetwork using either a complete URL or an
4952	// abbreviated path. Expected to be of the form
4953	// "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/region
4954	// s/REGION/subnetworks/SUBNETWORK" or
4955	// "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located
4956	// in a Shared VPC network, you must use the complete URL.
4957	Subnetwork string `json:"subnetwork,omitempty"`
4958
4959	// TempLocation: The Cloud Storage path to use for temporary files. Must
4960	// be a valid Cloud Storage URL, beginning with `gs://`.
4961	TempLocation string `json:"tempLocation,omitempty"`
4962
4963	// WorkerRegion: The Compute Engine region
4964	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
4965	// in which worker processing should occur, e.g. "us-west1". Mutually
4966	// exclusive with worker_zone. If neither worker_region nor worker_zone
4967	// is specified, default to the control plane's region.
4968	WorkerRegion string `json:"workerRegion,omitempty"`
4969
4970	// WorkerZone: The Compute Engine zone
4971	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
4972	// in which worker processing should occur, e.g. "us-west1-a". Mutually
4973	// exclusive with worker_region. If neither worker_region nor
4974	// worker_zone is specified, a zone in the control plane's region is
4975	// chosen based on available capacity. If both `worker_zone` and `zone`
4976	// are set, `worker_zone` takes precedence.
4977	WorkerZone string `json:"workerZone,omitempty"`
4978
4979	// Zone: The Compute Engine availability zone
4980	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones)
4981	// for launching worker instances to run your pipeline. In the future,
4982	// worker_zone will take precedence.
4983	Zone string `json:"zone,omitempty"`
4984
4985	// ForceSendFields is a list of field names (e.g.
4986	// "AdditionalExperiments") to unconditionally include in API requests.
4987	// By default, fields with empty or default values are omitted from API
4988	// requests. However, any non-pointer, non-interface field appearing in
4989	// ForceSendFields will be sent to the server regardless of whether the
4990	// field is empty or not. This may be used to include empty fields in
4991	// Patch requests.
4992	ForceSendFields []string `json:"-"`
4993
4994	// NullFields is a list of field names (e.g. "AdditionalExperiments") to
4995	// include in API requests with the JSON null value. By default, fields
4996	// with empty values are omitted from API requests. However, any field
4997	// with an empty value appearing in NullFields will be sent to the
4998	// server as null. It is an error if a field in this list has a
4999	// non-empty value. This may be used to include null fields in Patch
5000	// requests.
5001	NullFields []string `json:"-"`
5002}
5003
5004func (s *RuntimeEnvironment) MarshalJSON() ([]byte, error) {
5005	type NoMethod RuntimeEnvironment
5006	raw := NoMethod(*s)
5007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5008}
5009
5010// RuntimeMetadata: RuntimeMetadata describing a runtime environment.
5011type RuntimeMetadata struct {
5012	// Parameters: The parameters for the template.
5013	Parameters []*ParameterMetadata `json:"parameters,omitempty"`
5014
5015	// SdkInfo: SDK Info for the template.
5016	SdkInfo *SDKInfo `json:"sdkInfo,omitempty"`
5017
5018	// ForceSendFields is a list of field names (e.g. "Parameters") to
5019	// unconditionally include in API requests. By default, fields with
5020	// empty or default values are omitted from API requests. However, any
5021	// non-pointer, non-interface field appearing in ForceSendFields will be
5022	// sent to the server regardless of whether the field is empty or not.
5023	// This may be used to include empty fields in Patch requests.
5024	ForceSendFields []string `json:"-"`
5025
5026	// NullFields is a list of field names (e.g. "Parameters") to include in
5027	// API requests with the JSON null value. By default, fields with empty
5028	// values are omitted from API requests. However, any field with an
5029	// empty value appearing in NullFields will be sent to the server as
5030	// null. It is an error if a field in this list has a non-empty value.
5031	// This may be used to include null fields in Patch requests.
5032	NullFields []string `json:"-"`
5033}
5034
5035func (s *RuntimeMetadata) MarshalJSON() ([]byte, error) {
5036	type NoMethod RuntimeMetadata
5037	raw := NoMethod(*s)
5038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5039}
5040
5041// SDKInfo: SDK Information.
5042type SDKInfo struct {
5043	// Language: Required. The SDK Language.
5044	//
5045	// Possible values:
5046	//   "UNKNOWN" - UNKNOWN Language.
5047	//   "JAVA" - Java.
5048	//   "PYTHON" - Python.
5049	Language string `json:"language,omitempty"`
5050
5051	// Version: Optional. The SDK version.
5052	Version string `json:"version,omitempty"`
5053
5054	// ForceSendFields is a list of field names (e.g. "Language") to
5055	// unconditionally include in API requests. By default, fields with
5056	// empty or default values are omitted from API requests. However, any
5057	// non-pointer, non-interface field appearing in ForceSendFields will be
5058	// sent to the server regardless of whether the field is empty or not.
5059	// This may be used to include empty fields in Patch requests.
5060	ForceSendFields []string `json:"-"`
5061
5062	// NullFields is a list of field names (e.g. "Language") to include in
5063	// API requests with the JSON null value. By default, fields with empty
5064	// values are omitted from API requests. However, any field with an
5065	// empty value appearing in NullFields will be sent to the server as
5066	// null. It is an error if a field in this list has a non-empty value.
5067	// This may be used to include null fields in Patch requests.
5068	NullFields []string `json:"-"`
5069}
5070
5071func (s *SDKInfo) MarshalJSON() ([]byte, error) {
5072	type NoMethod SDKInfo
5073	raw := NoMethod(*s)
5074	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5075}
5076
5077// SdkHarnessContainerImage: Defines a SDK harness container for
5078// executing Dataflow pipelines.
5079type SdkHarnessContainerImage struct {
5080	// ContainerImage: A docker container image that resides in Google
5081	// Container Registry.
5082	ContainerImage string `json:"containerImage,omitempty"`
5083
5084	// EnvironmentId: Environment ID for the Beam runner API proto
5085	// Environment that corresponds to the current SDK Harness.
5086	EnvironmentId string `json:"environmentId,omitempty"`
5087
5088	// UseSingleCorePerContainer: If true, recommends the Dataflow service
5089	// to use only one core per SDK container instance with this image. If
5090	// false (or unset) recommends using more than one core per SDK
5091	// container instance with this image for efficiency. Note that Dataflow
5092	// service may choose to override this property if needed.
5093	UseSingleCorePerContainer bool `json:"useSingleCorePerContainer,omitempty"`
5094
5095	// ForceSendFields is a list of field names (e.g. "ContainerImage") to
5096	// unconditionally include in API requests. By default, fields with
5097	// empty or default values are omitted from API requests. However, any
5098	// non-pointer, non-interface field appearing in ForceSendFields will be
5099	// sent to the server regardless of whether the field is empty or not.
5100	// This may be used to include empty fields in Patch requests.
5101	ForceSendFields []string `json:"-"`
5102
5103	// NullFields is a list of field names (e.g. "ContainerImage") to
5104	// include in API requests with the JSON null value. By default, fields
5105	// with empty values are omitted from API requests. However, any field
5106	// with an empty value appearing in NullFields will be sent to the
5107	// server as null. It is an error if a field in this list has a
5108	// non-empty value. This may be used to include null fields in Patch
5109	// requests.
5110	NullFields []string `json:"-"`
5111}
5112
5113func (s *SdkHarnessContainerImage) MarshalJSON() ([]byte, error) {
5114	type NoMethod SdkHarnessContainerImage
5115	raw := NoMethod(*s)
5116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5117}
5118
5119// SdkVersion: The version of the SDK used to run the job.
5120type SdkVersion struct {
5121	// SdkSupportStatus: The support status for this SDK version.
5122	//
5123	// Possible values:
5124	//   "UNKNOWN" - Cloud Dataflow is unaware of this version.
5125	//   "SUPPORTED" - This is a known version of an SDK, and is supported.
5126	//   "STALE" - A newer version of the SDK family exists, and an update
5127	// is recommended.
5128	//   "DEPRECATED" - This version of the SDK is deprecated and will
5129	// eventually be unsupported.
5130	//   "UNSUPPORTED" - Support for this SDK version has ended and it
5131	// should no longer be used.
5132	SdkSupportStatus string `json:"sdkSupportStatus,omitempty"`
5133
5134	// Version: The version of the SDK used to run the job.
5135	Version string `json:"version,omitempty"`
5136
5137	// VersionDisplayName: A readable string describing the version of the
5138	// SDK.
5139	VersionDisplayName string `json:"versionDisplayName,omitempty"`
5140
5141	// ForceSendFields is a list of field names (e.g. "SdkSupportStatus") to
5142	// unconditionally include in API requests. By default, fields with
5143	// empty or default values are omitted from API requests. However, any
5144	// non-pointer, non-interface field appearing in ForceSendFields will be
5145	// sent to the server regardless of whether the field is empty or not.
5146	// This may be used to include empty fields in Patch requests.
5147	ForceSendFields []string `json:"-"`
5148
5149	// NullFields is a list of field names (e.g. "SdkSupportStatus") to
5150	// include in API requests with the JSON null value. By default, fields
5151	// with empty values are omitted from API requests. However, any field
5152	// with an empty value appearing in NullFields will be sent to the
5153	// server as null. It is an error if a field in this list has a
5154	// non-empty value. This may be used to include null fields in Patch
5155	// requests.
5156	NullFields []string `json:"-"`
5157}
5158
5159func (s *SdkVersion) MarshalJSON() ([]byte, error) {
5160	type NoMethod SdkVersion
5161	raw := NoMethod(*s)
5162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5163}
5164
5165// SendDebugCaptureRequest: Request to send encoded debug information.
5166type SendDebugCaptureRequest struct {
5167	// ComponentId: The internal component id for which debug information is
5168	// sent.
5169	ComponentId string `json:"componentId,omitempty"`
5170
5171	// Data: The encoded debug information.
5172	Data string `json:"data,omitempty"`
5173
5174	// Location: The [regional endpoint]
5175	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
5176	// that contains the job specified by job_id.
5177	Location string `json:"location,omitempty"`
5178
5179	// WorkerId: The worker id, i.e., VM hostname.
5180	WorkerId string `json:"workerId,omitempty"`
5181
5182	// ForceSendFields is a list of field names (e.g. "ComponentId") to
5183	// unconditionally include in API requests. By default, fields with
5184	// empty or default values are omitted from API requests. However, any
5185	// non-pointer, non-interface field appearing in ForceSendFields will be
5186	// sent to the server regardless of whether the field is empty or not.
5187	// This may be used to include empty fields in Patch requests.
5188	ForceSendFields []string `json:"-"`
5189
5190	// NullFields is a list of field names (e.g. "ComponentId") to include
5191	// in API requests with the JSON null value. By default, fields with
5192	// empty values are omitted from API requests. However, any field with
5193	// an empty value appearing in NullFields will be sent to the server as
5194	// null. It is an error if a field in this list has a non-empty value.
5195	// This may be used to include null fields in Patch requests.
5196	NullFields []string `json:"-"`
5197}
5198
5199func (s *SendDebugCaptureRequest) MarshalJSON() ([]byte, error) {
5200	type NoMethod SendDebugCaptureRequest
5201	raw := NoMethod(*s)
5202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5203}
5204
5205// SendDebugCaptureResponse: Response to a send capture request. nothing
5206type SendDebugCaptureResponse struct {
5207	// ServerResponse contains the HTTP response code and headers from the
5208	// server.
5209	googleapi.ServerResponse `json:"-"`
5210}
5211
5212// SendWorkerMessagesRequest: A request for sending worker messages to
5213// the service.
5214type SendWorkerMessagesRequest struct {
5215	// Location: The [regional endpoint]
5216	// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
5217	// that contains the job.
5218	Location string `json:"location,omitempty"`
5219
5220	// WorkerMessages: The WorkerMessages to send.
5221	WorkerMessages []*WorkerMessage `json:"workerMessages,omitempty"`
5222
5223	// ForceSendFields is a list of field names (e.g. "Location") to
5224	// unconditionally include in API requests. By default, fields with
5225	// empty or default values are omitted from API requests. However, any
5226	// non-pointer, non-interface field appearing in ForceSendFields will be
5227	// sent to the server regardless of whether the field is empty or not.
5228	// This may be used to include empty fields in Patch requests.
5229	ForceSendFields []string `json:"-"`
5230
5231	// NullFields is a list of field names (e.g. "Location") to include in
5232	// API requests with the JSON null value. By default, fields with empty
5233	// values are omitted from API requests. However, any field with an
5234	// empty value appearing in NullFields will be sent to the server as
5235	// null. It is an error if a field in this list has a non-empty value.
5236	// This may be used to include null fields in Patch requests.
5237	NullFields []string `json:"-"`
5238}
5239
5240func (s *SendWorkerMessagesRequest) MarshalJSON() ([]byte, error) {
5241	type NoMethod SendWorkerMessagesRequest
5242	raw := NoMethod(*s)
5243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5244}
5245
5246// SendWorkerMessagesResponse: The response to the worker messages.
5247type SendWorkerMessagesResponse struct {
5248	// WorkerMessageResponses: The servers response to the worker messages.
5249	WorkerMessageResponses []*WorkerMessageResponse `json:"workerMessageResponses,omitempty"`
5250
5251	// ServerResponse contains the HTTP response code and headers from the
5252	// server.
5253	googleapi.ServerResponse `json:"-"`
5254
5255	// ForceSendFields is a list of field names (e.g.
5256	// "WorkerMessageResponses") to unconditionally include in API requests.
5257	// By default, fields with empty or default values are omitted from API
5258	// requests. However, any non-pointer, non-interface field appearing in
5259	// ForceSendFields will be sent to the server regardless of whether the
5260	// field is empty or not. This may be used to include empty fields in
5261	// Patch requests.
5262	ForceSendFields []string `json:"-"`
5263
5264	// NullFields is a list of field names (e.g. "WorkerMessageResponses")
5265	// to include in API requests with the JSON null value. By default,
5266	// fields with empty values are omitted from API requests. However, any
5267	// field with an empty value appearing in NullFields will be sent to the
5268	// server as null. It is an error if a field in this list has a
5269	// non-empty value. This may be used to include null fields in Patch
5270	// requests.
5271	NullFields []string `json:"-"`
5272}
5273
5274func (s *SendWorkerMessagesResponse) MarshalJSON() ([]byte, error) {
5275	type NoMethod SendWorkerMessagesResponse
5276	raw := NoMethod(*s)
5277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5278}
5279
5280// SeqMapTask: Describes a particular function to invoke.
5281type SeqMapTask struct {
5282	// Inputs: Information about each of the inputs.
5283	Inputs []*SideInputInfo `json:"inputs,omitempty"`
5284
5285	// Name: The user-provided name of the SeqDo operation.
5286	Name string `json:"name,omitempty"`
5287
5288	// OutputInfos: Information about each of the outputs.
5289	OutputInfos []*SeqMapTaskOutputInfo `json:"outputInfos,omitempty"`
5290
5291	// StageName: System-defined name of the stage containing the SeqDo
5292	// operation. Unique across the workflow.
5293	StageName string `json:"stageName,omitempty"`
5294
5295	// SystemName: System-defined name of the SeqDo operation. Unique across
5296	// the workflow.
5297	SystemName string `json:"systemName,omitempty"`
5298
5299	// UserFn: The user function to invoke.
5300	UserFn googleapi.RawMessage `json:"userFn,omitempty"`
5301
5302	// ForceSendFields is a list of field names (e.g. "Inputs") to
5303	// unconditionally include in API requests. By default, fields with
5304	// empty or default values are omitted from API requests. However, any
5305	// non-pointer, non-interface field appearing in ForceSendFields will be
5306	// sent to the server regardless of whether the field is empty or not.
5307	// This may be used to include empty fields in Patch requests.
5308	ForceSendFields []string `json:"-"`
5309
5310	// NullFields is a list of field names (e.g. "Inputs") to include in API
5311	// requests with the JSON null value. By default, fields with empty
5312	// values are omitted from API requests. However, any field with an
5313	// empty value appearing in NullFields will be sent to the server as
5314	// null. It is an error if a field in this list has a non-empty value.
5315	// This may be used to include null fields in Patch requests.
5316	NullFields []string `json:"-"`
5317}
5318
5319func (s *SeqMapTask) MarshalJSON() ([]byte, error) {
5320	type NoMethod SeqMapTask
5321	raw := NoMethod(*s)
5322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5323}
5324
5325// SeqMapTaskOutputInfo: Information about an output of a SeqMapTask.
5326type SeqMapTaskOutputInfo struct {
5327	// Sink: The sink to write the output value to.
5328	Sink *Sink `json:"sink,omitempty"`
5329
5330	// Tag: The id of the TupleTag the user code will tag the output value
5331	// by.
5332	Tag string `json:"tag,omitempty"`
5333
5334	// ForceSendFields is a list of field names (e.g. "Sink") to
5335	// unconditionally include in API requests. By default, fields with
5336	// empty or default values are omitted from API requests. However, any
5337	// non-pointer, non-interface field appearing in ForceSendFields will be
5338	// sent to the server regardless of whether the field is empty or not.
5339	// This may be used to include empty fields in Patch requests.
5340	ForceSendFields []string `json:"-"`
5341
5342	// NullFields is a list of field names (e.g. "Sink") to include in API
5343	// requests with the JSON null value. By default, fields with empty
5344	// values are omitted from API requests. However, any field with an
5345	// empty value appearing in NullFields will be sent to the server as
5346	// null. It is an error if a field in this list has a non-empty value.
5347	// This may be used to include null fields in Patch requests.
5348	NullFields []string `json:"-"`
5349}
5350
5351func (s *SeqMapTaskOutputInfo) MarshalJSON() ([]byte, error) {
5352	type NoMethod SeqMapTaskOutputInfo
5353	raw := NoMethod(*s)
5354	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5355}
5356
5357// ShellTask: A task which consists of a shell command for the worker to
5358// execute.
5359type ShellTask struct {
5360	// Command: The shell command to run.
5361	Command string `json:"command,omitempty"`
5362
5363	// ExitCode: Exit code for the task.
5364	ExitCode int64 `json:"exitCode,omitempty"`
5365
5366	// ForceSendFields is a list of field names (e.g. "Command") to
5367	// unconditionally include in API requests. By default, fields with
5368	// empty or default values are omitted from API requests. However, any
5369	// non-pointer, non-interface field appearing in ForceSendFields will be
5370	// sent to the server regardless of whether the field is empty or not.
5371	// This may be used to include empty fields in Patch requests.
5372	ForceSendFields []string `json:"-"`
5373
5374	// NullFields is a list of field names (e.g. "Command") to include in
5375	// API requests with the JSON null value. By default, fields with empty
5376	// values are omitted from API requests. However, any field with an
5377	// empty value appearing in NullFields will be sent to the server as
5378	// null. It is an error if a field in this list has a non-empty value.
5379	// This may be used to include null fields in Patch requests.
5380	NullFields []string `json:"-"`
5381}
5382
5383func (s *ShellTask) MarshalJSON() ([]byte, error) {
5384	type NoMethod ShellTask
5385	raw := NoMethod(*s)
5386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5387}
5388
5389// SideInputInfo: Information about a side input of a DoFn or an input
5390// of a SeqDoFn.
5391type SideInputInfo struct {
5392	// Kind: How to interpret the source element(s) as a side input value.
5393	Kind googleapi.RawMessage `json:"kind,omitempty"`
5394
5395	// Sources: The source(s) to read element(s) from to get the value of
5396	// this side input. If more than one source, then the elements are taken
5397	// from the sources, in the specified order if order matters. At least
5398	// one source is required.
5399	Sources []*Source `json:"sources,omitempty"`
5400
5401	// Tag: The id of the tag the user code will access this side input by;
5402	// this should correspond to the tag of some MultiOutputInfo.
5403	Tag string `json:"tag,omitempty"`
5404
5405	// ForceSendFields is a list of field names (e.g. "Kind") to
5406	// unconditionally include in API requests. By default, fields with
5407	// empty or default values are omitted from API requests. However, any
5408	// non-pointer, non-interface field appearing in ForceSendFields will be
5409	// sent to the server regardless of whether the field is empty or not.
5410	// This may be used to include empty fields in Patch requests.
5411	ForceSendFields []string `json:"-"`
5412
5413	// NullFields is a list of field names (e.g. "Kind") to include in API
5414	// requests with the JSON null value. By default, fields with empty
5415	// values are omitted from API requests. However, any field with an
5416	// empty value appearing in NullFields will be sent to the server as
5417	// null. It is an error if a field in this list has a non-empty value.
5418	// This may be used to include null fields in Patch requests.
5419	NullFields []string `json:"-"`
5420}
5421
5422func (s *SideInputInfo) MarshalJSON() ([]byte, error) {
5423	type NoMethod SideInputInfo
5424	raw := NoMethod(*s)
5425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5426}
5427
5428// Sink: A sink that records can be encoded and written to.
5429type Sink struct {
5430	// Codec: The codec to use to encode data written to the sink.
5431	Codec googleapi.RawMessage `json:"codec,omitempty"`
5432
5433	// Spec: The sink to write to, plus its parameters.
5434	Spec googleapi.RawMessage `json:"spec,omitempty"`
5435
5436	// ForceSendFields is a list of field names (e.g. "Codec") to
5437	// unconditionally include in API requests. By default, fields with
5438	// empty or default values are omitted from API requests. However, any
5439	// non-pointer, non-interface field appearing in ForceSendFields will be
5440	// sent to the server regardless of whether the field is empty or not.
5441	// This may be used to include empty fields in Patch requests.
5442	ForceSendFields []string `json:"-"`
5443
5444	// NullFields is a list of field names (e.g. "Codec") to include in API
5445	// requests with the JSON null value. By default, fields with empty
5446	// values are omitted from API requests. However, any field with an
5447	// empty value appearing in NullFields will be sent to the server as
5448	// null. It is an error if a field in this list has a non-empty value.
5449	// This may be used to include null fields in Patch requests.
5450	NullFields []string `json:"-"`
5451}
5452
5453func (s *Sink) MarshalJSON() ([]byte, error) {
5454	type NoMethod Sink
5455	raw := NoMethod(*s)
5456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5457}
5458
5459// Snapshot: Represents a snapshot of a job.
5460type Snapshot struct {
5461	// CreationTime: The time this snapshot was created.
5462	CreationTime string `json:"creationTime,omitempty"`
5463
5464	// Description: User specified description of the snapshot. Maybe empty.
5465	Description string `json:"description,omitempty"`
5466
5467	// DiskSizeBytes: The disk byte size of the snapshot. Only available for
5468	// snapshots in READY state.
5469	DiskSizeBytes int64 `json:"diskSizeBytes,omitempty,string"`
5470
5471	// Id: The unique ID of this snapshot.
5472	Id string `json:"id,omitempty"`
5473
5474	// ProjectId: The project this snapshot belongs to.
5475	ProjectId string `json:"projectId,omitempty"`
5476
5477	// PubsubMetadata: Pub/Sub snapshot metadata.
5478	PubsubMetadata []*PubsubSnapshotMetadata `json:"pubsubMetadata,omitempty"`
5479
5480	// Region: Cloud region where this snapshot lives in, e.g.,
5481	// "us-central1".
5482	Region string `json:"region,omitempty"`
5483
5484	// SourceJobId: The job this snapshot was created from.
5485	SourceJobId string `json:"sourceJobId,omitempty"`
5486
5487	// State: State of the snapshot.
5488	//
5489	// Possible values:
5490	//   "UNKNOWN_SNAPSHOT_STATE" - Unknown state.
5491	//   "PENDING" - Snapshot intent to create has been persisted,
5492	// snapshotting of state has not yet started.
5493	//   "RUNNING" - Snapshotting is being performed.
5494	//   "READY" - Snapshot has been created and is ready to be used.
5495	//   "FAILED" - Snapshot failed to be created.
5496	//   "DELETED" - Snapshot has been deleted.
5497	State string `json:"state,omitempty"`
5498
5499	// Ttl: The time after which this snapshot will be automatically
5500	// deleted.
5501	Ttl string `json:"ttl,omitempty"`
5502
5503	// ServerResponse contains the HTTP response code and headers from the
5504	// server.
5505	googleapi.ServerResponse `json:"-"`
5506
5507	// ForceSendFields is a list of field names (e.g. "CreationTime") to
5508	// unconditionally include in API requests. By default, fields with
5509	// empty or default values are omitted from API requests. However, any
5510	// non-pointer, non-interface field appearing in ForceSendFields will be
5511	// sent to the server regardless of whether the field is empty or not.
5512	// This may be used to include empty fields in Patch requests.
5513	ForceSendFields []string `json:"-"`
5514
5515	// NullFields is a list of field names (e.g. "CreationTime") to include
5516	// in API requests with the JSON null value. By default, fields with
5517	// empty values are omitted from API requests. However, any field with
5518	// an empty value appearing in NullFields will be sent to the server as
5519	// null. It is an error if a field in this list has a non-empty value.
5520	// This may be used to include null fields in Patch requests.
5521	NullFields []string `json:"-"`
5522}
5523
5524func (s *Snapshot) MarshalJSON() ([]byte, error) {
5525	type NoMethod Snapshot
5526	raw := NoMethod(*s)
5527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5528}
5529
5530// SnapshotJobRequest: Request to create a snapshot of a job.
5531type SnapshotJobRequest struct {
5532	// Description: User specified description of the snapshot. Maybe empty.
5533	Description string `json:"description,omitempty"`
5534
5535	// Location: The location that contains this job.
5536	Location string `json:"location,omitempty"`
5537
5538	// SnapshotSources: If true, perform snapshots for sources which support
5539	// this.
5540	SnapshotSources bool `json:"snapshotSources,omitempty"`
5541
5542	// Ttl: TTL for the snapshot.
5543	Ttl string `json:"ttl,omitempty"`
5544
5545	// ForceSendFields is a list of field names (e.g. "Description") to
5546	// unconditionally include in API requests. By default, fields with
5547	// empty or default values are omitted from API requests. However, any
5548	// non-pointer, non-interface field appearing in ForceSendFields will be
5549	// sent to the server regardless of whether the field is empty or not.
5550	// This may be used to include empty fields in Patch requests.
5551	ForceSendFields []string `json:"-"`
5552
5553	// NullFields is a list of field names (e.g. "Description") to include
5554	// in API requests with the JSON null value. By default, fields with
5555	// empty values are omitted from API requests. However, any field with
5556	// an empty value appearing in NullFields will be sent to the server as
5557	// null. It is an error if a field in this list has a non-empty value.
5558	// This may be used to include null fields in Patch requests.
5559	NullFields []string `json:"-"`
5560}
5561
5562func (s *SnapshotJobRequest) MarshalJSON() ([]byte, error) {
5563	type NoMethod SnapshotJobRequest
5564	raw := NoMethod(*s)
5565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5566}
5567
5568// Source: A source that records can be read and decoded from.
5569type Source struct {
5570	// BaseSpecs: While splitting, sources may specify the produced bundles
5571	// as differences against another source, in order to save backend-side
5572	// memory and allow bigger jobs. For details, see SourceSplitRequest. To
5573	// support this use case, the full set of parameters of the source is
5574	// logically obtained by taking the latest explicitly specified value of
5575	// each parameter in the order: base_specs (later items win), spec
5576	// (overrides anything in base_specs).
5577	BaseSpecs []googleapi.RawMessage `json:"baseSpecs,omitempty"`
5578
5579	// Codec: The codec to use to decode data read from the source.
5580	Codec googleapi.RawMessage `json:"codec,omitempty"`
5581
5582	// DoesNotNeedSplitting: Setting this value to true hints to the
5583	// framework that the source doesn't need splitting, and using
5584	// SourceSplitRequest on it would yield
5585	// SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this
5586	// to true when splitting a single file into a set of byte ranges of
5587	// appropriate size, and set this to false when splitting a filepattern
5588	// into individual files. However, for efficiency, a file splitter may
5589	// decide to produce file subranges directly from the filepattern to
5590	// avoid a splitting round-trip. See SourceSplitRequest for an overview
5591	// of the splitting process. This field is meaningful only in the Source
5592	// objects populated by the user (e.g. when filling in a DerivedSource).
5593	// Source objects supplied by the framework to the user don't have this
5594	// field populated.
5595	DoesNotNeedSplitting bool `json:"doesNotNeedSplitting,omitempty"`
5596
5597	// Metadata: Optionally, metadata for this source can be supplied right
5598	// away, avoiding a SourceGetMetadataOperation roundtrip (see
5599	// SourceOperationRequest). This field is meaningful only in the Source
5600	// objects populated by the user (e.g. when filling in a DerivedSource).
5601	// Source objects supplied by the framework to the user don't have this
5602	// field populated.
5603	Metadata *SourceMetadata `json:"metadata,omitempty"`
5604
5605	// Spec: The source to read from, plus its parameters.
5606	Spec googleapi.RawMessage `json:"spec,omitempty"`
5607
5608	// ForceSendFields is a list of field names (e.g. "BaseSpecs") to
5609	// unconditionally include in API requests. By default, fields with
5610	// empty or default values are omitted from API requests. However, any
5611	// non-pointer, non-interface field appearing in ForceSendFields will be
5612	// sent to the server regardless of whether the field is empty or not.
5613	// This may be used to include empty fields in Patch requests.
5614	ForceSendFields []string `json:"-"`
5615
5616	// NullFields is a list of field names (e.g. "BaseSpecs") to include in
5617	// API requests with the JSON null value. By default, fields with empty
5618	// values are omitted from API requests. However, any field with an
5619	// empty value appearing in NullFields will be sent to the server as
5620	// null. It is an error if a field in this list has a non-empty value.
5621	// This may be used to include null fields in Patch requests.
5622	NullFields []string `json:"-"`
5623}
5624
5625func (s *Source) MarshalJSON() ([]byte, error) {
5626	type NoMethod Source
5627	raw := NoMethod(*s)
5628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5629}
5630
5631// SourceFork: DEPRECATED in favor of DynamicSourceSplit.
5632type SourceFork struct {
5633	// Primary: DEPRECATED
5634	Primary *SourceSplitShard `json:"primary,omitempty"`
5635
5636	// PrimarySource: DEPRECATED
5637	PrimarySource *DerivedSource `json:"primarySource,omitempty"`
5638
5639	// Residual: DEPRECATED
5640	Residual *SourceSplitShard `json:"residual,omitempty"`
5641
5642	// ResidualSource: DEPRECATED
5643	ResidualSource *DerivedSource `json:"residualSource,omitempty"`
5644
5645	// ForceSendFields is a list of field names (e.g. "Primary") to
5646	// unconditionally include in API requests. By default, fields with
5647	// empty or default values are omitted from API requests. However, any
5648	// non-pointer, non-interface field appearing in ForceSendFields will be
5649	// sent to the server regardless of whether the field is empty or not.
5650	// This may be used to include empty fields in Patch requests.
5651	ForceSendFields []string `json:"-"`
5652
5653	// NullFields is a list of field names (e.g. "Primary") to include in
5654	// API requests with the JSON null value. By default, fields with empty
5655	// values are omitted from API requests. However, any field with an
5656	// empty value appearing in NullFields will be sent to the server as
5657	// null. It is an error if a field in this list has a non-empty value.
5658	// This may be used to include null fields in Patch requests.
5659	NullFields []string `json:"-"`
5660}
5661
5662func (s *SourceFork) MarshalJSON() ([]byte, error) {
5663	type NoMethod SourceFork
5664	raw := NoMethod(*s)
5665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5666}
5667
5668// SourceGetMetadataRequest: A request to compute the SourceMetadata of
5669// a Source.
5670type SourceGetMetadataRequest struct {
5671	// Source: Specification of the source whose metadata should be
5672	// computed.
5673	Source *Source `json:"source,omitempty"`
5674
5675	// ForceSendFields is a list of field names (e.g. "Source") to
5676	// unconditionally include in API requests. By default, fields with
5677	// empty or default values are omitted from API requests. However, any
5678	// non-pointer, non-interface field appearing in ForceSendFields will be
5679	// sent to the server regardless of whether the field is empty or not.
5680	// This may be used to include empty fields in Patch requests.
5681	ForceSendFields []string `json:"-"`
5682
5683	// NullFields is a list of field names (e.g. "Source") to include in API
5684	// requests with the JSON null value. By default, fields with empty
5685	// values are omitted from API requests. However, any field with an
5686	// empty value appearing in NullFields will be sent to the server as
5687	// null. It is an error if a field in this list has a non-empty value.
5688	// This may be used to include null fields in Patch requests.
5689	NullFields []string `json:"-"`
5690}
5691
5692func (s *SourceGetMetadataRequest) MarshalJSON() ([]byte, error) {
5693	type NoMethod SourceGetMetadataRequest
5694	raw := NoMethod(*s)
5695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5696}
5697
5698// SourceGetMetadataResponse: The result of a
5699// SourceGetMetadataOperation.
5700type SourceGetMetadataResponse struct {
5701	// Metadata: The computed metadata.
5702	Metadata *SourceMetadata `json:"metadata,omitempty"`
5703
5704	// ForceSendFields is a list of field names (e.g. "Metadata") to
5705	// unconditionally include in API requests. By default, fields with
5706	// empty or default values are omitted from API requests. However, any
5707	// non-pointer, non-interface field appearing in ForceSendFields will be
5708	// sent to the server regardless of whether the field is empty or not.
5709	// This may be used to include empty fields in Patch requests.
5710	ForceSendFields []string `json:"-"`
5711
5712	// NullFields is a list of field names (e.g. "Metadata") to include in
5713	// API requests with the JSON null value. By default, fields with empty
5714	// values are omitted from API requests. However, any field with an
5715	// empty value appearing in NullFields will be sent to the server as
5716	// null. It is an error if a field in this list has a non-empty value.
5717	// This may be used to include null fields in Patch requests.
5718	NullFields []string `json:"-"`
5719}
5720
5721func (s *SourceGetMetadataResponse) MarshalJSON() ([]byte, error) {
5722	type NoMethod SourceGetMetadataResponse
5723	raw := NoMethod(*s)
5724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5725}
5726
5727// SourceMetadata: Metadata about a Source useful for automatically
5728// optimizing and tuning the pipeline, etc.
5729type SourceMetadata struct {
5730	// EstimatedSizeBytes: An estimate of the total size (in bytes) of the
5731	// data that would be read from this source. This estimate is in terms
5732	// of external storage size, before any decompression or other
5733	// processing done by the reader.
5734	EstimatedSizeBytes int64 `json:"estimatedSizeBytes,omitempty,string"`
5735
5736	// Infinite: Specifies that the size of this source is known to be
5737	// infinite (this is a streaming source).
5738	Infinite bool `json:"infinite,omitempty"`
5739
5740	// ProducesSortedKeys: Whether this source is known to produce key/value
5741	// pairs with the (encoded) keys in lexicographically sorted order.
5742	ProducesSortedKeys bool `json:"producesSortedKeys,omitempty"`
5743
5744	// ForceSendFields is a list of field names (e.g. "EstimatedSizeBytes")
5745	// to unconditionally include in API requests. By default, fields with
5746	// empty or default values are omitted from API requests. However, any
5747	// non-pointer, non-interface field appearing in ForceSendFields will be
5748	// sent to the server regardless of whether the field is empty or not.
5749	// This may be used to include empty fields in Patch requests.
5750	ForceSendFields []string `json:"-"`
5751
5752	// NullFields is a list of field names (e.g. "EstimatedSizeBytes") to
5753	// include in API requests with the JSON null value. By default, fields
5754	// with empty values are omitted from API requests. However, any field
5755	// with an empty value appearing in NullFields will be sent to the
5756	// server as null. It is an error if a field in this list has a
5757	// non-empty value. This may be used to include null fields in Patch
5758	// requests.
5759	NullFields []string `json:"-"`
5760}
5761
5762func (s *SourceMetadata) MarshalJSON() ([]byte, error) {
5763	type NoMethod SourceMetadata
5764	raw := NoMethod(*s)
5765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5766}
5767
5768// SourceOperationRequest: A work item that represents the different
5769// operations that can be performed on a user-defined Source
5770// specification.
5771type SourceOperationRequest struct {
5772	// GetMetadata: Information about a request to get metadata about a
5773	// source.
5774	GetMetadata *SourceGetMetadataRequest `json:"getMetadata,omitempty"`
5775
5776	// Name: User-provided name of the Read instruction for this source.
5777	Name string `json:"name,omitempty"`
5778
5779	// OriginalName: System-defined name for the Read instruction for this
5780	// source in the original workflow graph.
5781	OriginalName string `json:"originalName,omitempty"`
5782
5783	// Split: Information about a request to split a source.
5784	Split *SourceSplitRequest `json:"split,omitempty"`
5785
5786	// StageName: System-defined name of the stage containing the source
5787	// operation. Unique across the workflow.
5788	StageName string `json:"stageName,omitempty"`
5789
5790	// SystemName: System-defined name of the Read instruction for this
5791	// source. Unique across the workflow.
5792	SystemName string `json:"systemName,omitempty"`
5793
5794	// ForceSendFields is a list of field names (e.g. "GetMetadata") to
5795	// unconditionally include in API requests. By default, fields with
5796	// empty or default values are omitted from API requests. However, any
5797	// non-pointer, non-interface field appearing in ForceSendFields will be
5798	// sent to the server regardless of whether the field is empty or not.
5799	// This may be used to include empty fields in Patch requests.
5800	ForceSendFields []string `json:"-"`
5801
5802	// NullFields is a list of field names (e.g. "GetMetadata") to include
5803	// in API requests with the JSON null value. By default, fields with
5804	// empty values are omitted from API requests. However, any field with
5805	// an empty value appearing in NullFields will be sent to the server as
5806	// null. It is an error if a field in this list has a non-empty value.
5807	// This may be used to include null fields in Patch requests.
5808	NullFields []string `json:"-"`
5809}
5810
5811func (s *SourceOperationRequest) MarshalJSON() ([]byte, error) {
5812	type NoMethod SourceOperationRequest
5813	raw := NoMethod(*s)
5814	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5815}
5816
5817// SourceOperationResponse: The result of a SourceOperationRequest,
5818// specified in ReportWorkItemStatusRequest.source_operation when the
5819// work item is completed.
5820type SourceOperationResponse struct {
5821	// GetMetadata: A response to a request to get metadata about a source.
5822	GetMetadata *SourceGetMetadataResponse `json:"getMetadata,omitempty"`
5823
5824	// Split: A response to a request to split a source.
5825	Split *SourceSplitResponse `json:"split,omitempty"`
5826
5827	// ForceSendFields is a list of field names (e.g. "GetMetadata") to
5828	// unconditionally include in API requests. By default, fields with
5829	// empty or default values are omitted from API requests. However, any
5830	// non-pointer, non-interface field appearing in ForceSendFields will be
5831	// sent to the server regardless of whether the field is empty or not.
5832	// This may be used to include empty fields in Patch requests.
5833	ForceSendFields []string `json:"-"`
5834
5835	// NullFields is a list of field names (e.g. "GetMetadata") to include
5836	// in API requests with the JSON null value. By default, fields with
5837	// empty values are omitted from API requests. However, any field with
5838	// an empty value appearing in NullFields will be sent to the server as
5839	// null. It is an error if a field in this list has a non-empty value.
5840	// This may be used to include null fields in Patch requests.
5841	NullFields []string `json:"-"`
5842}
5843
5844func (s *SourceOperationResponse) MarshalJSON() ([]byte, error) {
5845	type NoMethod SourceOperationResponse
5846	raw := NoMethod(*s)
5847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5848}
5849
5850// SourceSplitOptions: Hints for splitting a Source into bundles (parts
5851// for parallel processing) using SourceSplitRequest.
5852type SourceSplitOptions struct {
5853	// DesiredBundleSizeBytes: The source should be split into a set of
5854	// bundles where the estimated size of each is approximately this many
5855	// bytes.
5856	DesiredBundleSizeBytes int64 `json:"desiredBundleSizeBytes,omitempty,string"`
5857
5858	// DesiredShardSizeBytes: DEPRECATED in favor of
5859	// desired_bundle_size_bytes.
5860	DesiredShardSizeBytes int64 `json:"desiredShardSizeBytes,omitempty,string"`
5861
5862	// ForceSendFields is a list of field names (e.g.
5863	// "DesiredBundleSizeBytes") to unconditionally include in API requests.
5864	// By default, fields with empty or default values are omitted from API
5865	// requests. However, any non-pointer, non-interface field appearing in
5866	// ForceSendFields will be sent to the server regardless of whether the
5867	// field is empty or not. This may be used to include empty fields in
5868	// Patch requests.
5869	ForceSendFields []string `json:"-"`
5870
5871	// NullFields is a list of field names (e.g. "DesiredBundleSizeBytes")
5872	// to include in API requests with the JSON null value. By default,
5873	// fields with empty values are omitted from API requests. However, any
5874	// field with an empty value appearing in NullFields will be sent to the
5875	// server as null. It is an error if a field in this list has a
5876	// non-empty value. This may be used to include null fields in Patch
5877	// requests.
5878	NullFields []string `json:"-"`
5879}
5880
5881func (s *SourceSplitOptions) MarshalJSON() ([]byte, error) {
5882	type NoMethod SourceSplitOptions
5883	raw := NoMethod(*s)
5884	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5885}
5886
5887// SourceSplitRequest: Represents the operation to split a high-level
5888// Source specification into bundles (parts for parallel processing). At
5889// a high level, splitting of a source into bundles happens as follows:
5890// SourceSplitRequest is applied to the source. If it returns
5891// SOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting happens and
5892// the source is used "as is". Otherwise, splitting is applied
5893// recursively to each produced DerivedSource. As an optimization, for
5894// any Source, if its does_not_need_splitting is true, the framework
5895// assumes that splitting this source would return
5896// SOURCE_SPLIT_OUTCOME_USE_CURRENT, and doesn't initiate a
5897// SourceSplitRequest. This applies both to the initial source being
5898// split and to bundles produced from it.
5899type SourceSplitRequest struct {
5900	// Options: Hints for tuning the splitting process.
5901	Options *SourceSplitOptions `json:"options,omitempty"`
5902
5903	// Source: Specification of the source to be split.
5904	Source *Source `json:"source,omitempty"`
5905
5906	// ForceSendFields is a list of field names (e.g. "Options") to
5907	// unconditionally include in API requests. By default, fields with
5908	// empty or default values are omitted from API requests. However, any
5909	// non-pointer, non-interface field appearing in ForceSendFields will be
5910	// sent to the server regardless of whether the field is empty or not.
5911	// This may be used to include empty fields in Patch requests.
5912	ForceSendFields []string `json:"-"`
5913
5914	// NullFields is a list of field names (e.g. "Options") 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 *SourceSplitRequest) MarshalJSON() ([]byte, error) {
5924	type NoMethod SourceSplitRequest
5925	raw := NoMethod(*s)
5926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5927}
5928
5929// SourceSplitResponse: The response to a SourceSplitRequest.
5930type SourceSplitResponse struct {
5931	// Bundles: If outcome is SPLITTING_HAPPENED, then this is a list of
5932	// bundles into which the source was split. Otherwise this field is
5933	// ignored. This list can be empty, which means the source represents an
5934	// empty input.
5935	Bundles []*DerivedSource `json:"bundles,omitempty"`
5936
5937	// Outcome: Indicates whether splitting happened and produced a list of
5938	// bundles. If this is USE_CURRENT_SOURCE_AS_IS, the current source
5939	// should be processed "as is" without splitting. "bundles" is ignored
5940	// in this case. If this is SPLITTING_HAPPENED, then "bundles" contains
5941	// a list of bundles into which the source was split.
5942	//
5943	// Possible values:
5944	//   "SOURCE_SPLIT_OUTCOME_UNKNOWN" - The source split outcome is
5945	// unknown, or unspecified.
5946	//   "SOURCE_SPLIT_OUTCOME_USE_CURRENT" - The current source should be
5947	// processed "as is" without splitting.
5948	//   "SOURCE_SPLIT_OUTCOME_SPLITTING_HAPPENED" - Splitting produced a
5949	// list of bundles.
5950	Outcome string `json:"outcome,omitempty"`
5951
5952	// Shards: DEPRECATED in favor of bundles.
5953	Shards []*SourceSplitShard `json:"shards,omitempty"`
5954
5955	// ForceSendFields is a list of field names (e.g. "Bundles") to
5956	// unconditionally include in API requests. By default, fields with
5957	// empty or default values are omitted from API requests. However, any
5958	// non-pointer, non-interface field appearing in ForceSendFields will be
5959	// sent to the server regardless of whether the field is empty or not.
5960	// This may be used to include empty fields in Patch requests.
5961	ForceSendFields []string `json:"-"`
5962
5963	// NullFields is a list of field names (e.g. "Bundles") to include in
5964	// API requests with the JSON null value. By default, fields with empty
5965	// values are omitted from API requests. However, any field with an
5966	// empty value appearing in NullFields will be sent to the server as
5967	// null. It is an error if a field in this list has a non-empty value.
5968	// This may be used to include null fields in Patch requests.
5969	NullFields []string `json:"-"`
5970}
5971
5972func (s *SourceSplitResponse) MarshalJSON() ([]byte, error) {
5973	type NoMethod SourceSplitResponse
5974	raw := NoMethod(*s)
5975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5976}
5977
5978// SourceSplitShard: DEPRECATED in favor of DerivedSource.
5979type SourceSplitShard struct {
5980	// DerivationMode: DEPRECATED
5981	//
5982	// Possible values:
5983	//   "SOURCE_DERIVATION_MODE_UNKNOWN" - The source derivation is
5984	// unknown, or unspecified.
5985	//   "SOURCE_DERIVATION_MODE_INDEPENDENT" - Produce a completely
5986	// independent Source with no base.
5987	//   "SOURCE_DERIVATION_MODE_CHILD_OF_CURRENT" - Produce a Source based
5988	// on the Source being split.
5989	//   "SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" - Produce a Source
5990	// based on the base of the Source being split.
5991	DerivationMode string `json:"derivationMode,omitempty"`
5992
5993	// Source: DEPRECATED
5994	Source *Source `json:"source,omitempty"`
5995
5996	// ForceSendFields is a list of field names (e.g. "DerivationMode") to
5997	// unconditionally include in API requests. By default, fields with
5998	// empty or default values are omitted from API requests. However, any
5999	// non-pointer, non-interface field appearing in ForceSendFields will be
6000	// sent to the server regardless of whether the field is empty or not.
6001	// This may be used to include empty fields in Patch requests.
6002	ForceSendFields []string `json:"-"`
6003
6004	// NullFields is a list of field names (e.g. "DerivationMode") to
6005	// include in API requests with the JSON null value. By default, fields
6006	// with empty values are omitted from API requests. However, any field
6007	// with an empty value appearing in NullFields will be sent to the
6008	// server as null. It is an error if a field in this list has a
6009	// non-empty value. This may be used to include null fields in Patch
6010	// requests.
6011	NullFields []string `json:"-"`
6012}
6013
6014func (s *SourceSplitShard) MarshalJSON() ([]byte, error) {
6015	type NoMethod SourceSplitShard
6016	raw := NoMethod(*s)
6017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6018}
6019
6020// SpannerIODetails: Metadata for a Spanner connector used by the job.
6021type SpannerIODetails struct {
6022	// DatabaseId: DatabaseId accessed in the connection.
6023	DatabaseId string `json:"databaseId,omitempty"`
6024
6025	// InstanceId: InstanceId accessed in the connection.
6026	InstanceId string `json:"instanceId,omitempty"`
6027
6028	// ProjectId: ProjectId accessed in the connection.
6029	ProjectId string `json:"projectId,omitempty"`
6030
6031	// ForceSendFields is a list of field names (e.g. "DatabaseId") to
6032	// unconditionally include in API requests. By default, fields with
6033	// empty or default values are omitted from API requests. However, any
6034	// non-pointer, non-interface field appearing in ForceSendFields will be
6035	// sent to the server regardless of whether the field is empty or not.
6036	// This may be used to include empty fields in Patch requests.
6037	ForceSendFields []string `json:"-"`
6038
6039	// NullFields is a list of field names (e.g. "DatabaseId") to include in
6040	// API requests with the JSON null value. By default, fields with empty
6041	// values are omitted from API requests. However, any field with an
6042	// empty value appearing in NullFields will be sent to the server as
6043	// null. It is an error if a field in this list has a non-empty value.
6044	// This may be used to include null fields in Patch requests.
6045	NullFields []string `json:"-"`
6046}
6047
6048func (s *SpannerIODetails) MarshalJSON() ([]byte, error) {
6049	type NoMethod SpannerIODetails
6050	raw := NoMethod(*s)
6051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6052}
6053
6054// SplitInt64: A representation of an int64, n, that is immune to
6055// precision loss when encoded in JSON.
6056type SplitInt64 struct {
6057	// HighBits: The high order bits, including the sign: n >> 32.
6058	HighBits int64 `json:"highBits,omitempty"`
6059
6060	// LowBits: The low order bits: n & 0xffffffff.
6061	LowBits int64 `json:"lowBits,omitempty"`
6062
6063	// ForceSendFields is a list of field names (e.g. "HighBits") to
6064	// unconditionally include in API requests. By default, fields with
6065	// empty or default values are omitted from API requests. However, any
6066	// non-pointer, non-interface field appearing in ForceSendFields will be
6067	// sent to the server regardless of whether the field is empty or not.
6068	// This may be used to include empty fields in Patch requests.
6069	ForceSendFields []string `json:"-"`
6070
6071	// NullFields is a list of field names (e.g. "HighBits") to include in
6072	// API requests with the JSON null value. By default, fields with empty
6073	// values are omitted from API requests. However, any field with an
6074	// empty value appearing in NullFields will be sent to the server as
6075	// null. It is an error if a field in this list has a non-empty value.
6076	// This may be used to include null fields in Patch requests.
6077	NullFields []string `json:"-"`
6078}
6079
6080func (s *SplitInt64) MarshalJSON() ([]byte, error) {
6081	type NoMethod SplitInt64
6082	raw := NoMethod(*s)
6083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6084}
6085
6086// StageExecutionDetails: Information about the workers and work items
6087// within a stage.
6088type StageExecutionDetails struct {
6089	// NextPageToken: If present, this response does not contain all
6090	// requested tasks. To obtain the next page of results, repeat the
6091	// request with page_token set to this value.
6092	NextPageToken string `json:"nextPageToken,omitempty"`
6093
6094	// Workers: Workers that have done work on the stage.
6095	Workers []*WorkerDetails `json:"workers,omitempty"`
6096
6097	// ServerResponse contains the HTTP response code and headers from the
6098	// server.
6099	googleapi.ServerResponse `json:"-"`
6100
6101	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
6102	// unconditionally include in API requests. By default, fields with
6103	// empty or default values are omitted from API requests. However, any
6104	// non-pointer, non-interface field appearing in ForceSendFields will be
6105	// sent to the server regardless of whether the field is empty or not.
6106	// This may be used to include empty fields in Patch requests.
6107	ForceSendFields []string `json:"-"`
6108
6109	// NullFields is a list of field names (e.g. "NextPageToken") to include
6110	// in API requests with the JSON null value. By default, fields with
6111	// empty values are omitted from API requests. However, any field with
6112	// an empty value appearing in NullFields will be sent to the server as
6113	// null. It is an error if a field in this list has a non-empty value.
6114	// This may be used to include null fields in Patch requests.
6115	NullFields []string `json:"-"`
6116}
6117
6118func (s *StageExecutionDetails) MarshalJSON() ([]byte, error) {
6119	type NoMethod StageExecutionDetails
6120	raw := NoMethod(*s)
6121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6122}
6123
6124// StageSource: Description of an input or output of an execution stage.
6125type StageSource struct {
6126	// Name: Dataflow service generated name for this source.
6127	Name string `json:"name,omitempty"`
6128
6129	// OriginalTransformOrCollection: User name for the original user
6130	// transform or collection with which this source is most closely
6131	// associated.
6132	OriginalTransformOrCollection string `json:"originalTransformOrCollection,omitempty"`
6133
6134	// SizeBytes: Size of the source, if measurable.
6135	SizeBytes int64 `json:"sizeBytes,omitempty,string"`
6136
6137	// UserName: Human-readable name for this source; may be user or system
6138	// generated.
6139	UserName string `json:"userName,omitempty"`
6140
6141	// ForceSendFields is a list of field names (e.g. "Name") to
6142	// unconditionally include in API requests. By default, fields with
6143	// empty or default values are omitted from API requests. However, any
6144	// non-pointer, non-interface field appearing in ForceSendFields will be
6145	// sent to the server regardless of whether the field is empty or not.
6146	// This may be used to include empty fields in Patch requests.
6147	ForceSendFields []string `json:"-"`
6148
6149	// NullFields is a list of field names (e.g. "Name") to include in API
6150	// requests with the JSON null value. By default, fields with empty
6151	// values are omitted from API requests. However, any field with an
6152	// empty value appearing in NullFields will be sent to the server as
6153	// null. It is an error if a field in this list has a non-empty value.
6154	// This may be used to include null fields in Patch requests.
6155	NullFields []string `json:"-"`
6156}
6157
6158func (s *StageSource) MarshalJSON() ([]byte, error) {
6159	type NoMethod StageSource
6160	raw := NoMethod(*s)
6161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6162}
6163
6164// StageSummary: Information about a particular execution stage of a
6165// job.
6166type StageSummary struct {
6167	// EndTime: End time of this stage. If the work item is completed, this
6168	// is the actual end time of the stage. Otherwise, it is the predicted
6169	// end time.
6170	EndTime string `json:"endTime,omitempty"`
6171
6172	// Metrics: Metrics for this stage.
6173	Metrics []*MetricUpdate `json:"metrics,omitempty"`
6174
6175	// Progress: Progress for this stage. Only applicable to Batch jobs.
6176	Progress *ProgressTimeseries `json:"progress,omitempty"`
6177
6178	// StageId: ID of this stage
6179	StageId string `json:"stageId,omitempty"`
6180
6181	// StartTime: Start time of this stage.
6182	StartTime string `json:"startTime,omitempty"`
6183
6184	// State: State of this stage.
6185	//
6186	// Possible values:
6187	//   "EXECUTION_STATE_UNKNOWN" - The component state is unknown or
6188	// unspecified.
6189	//   "EXECUTION_STATE_NOT_STARTED" - The component is not yet running.
6190	//   "EXECUTION_STATE_RUNNING" - The component is currently running.
6191	//   "EXECUTION_STATE_SUCCEEDED" - The component succeeded.
6192	//   "EXECUTION_STATE_FAILED" - The component failed.
6193	//   "EXECUTION_STATE_CANCELLED" - Execution of the component was
6194	// cancelled.
6195	State string `json:"state,omitempty"`
6196
6197	// ForceSendFields is a list of field names (e.g. "EndTime") to
6198	// unconditionally include in API requests. By default, fields with
6199	// empty or default values are omitted from API requests. However, any
6200	// non-pointer, non-interface field appearing in ForceSendFields will be
6201	// sent to the server regardless of whether the field is empty or not.
6202	// This may be used to include empty fields in Patch requests.
6203	ForceSendFields []string `json:"-"`
6204
6205	// NullFields is a list of field names (e.g. "EndTime") to include in
6206	// API requests with the JSON null value. By default, fields with empty
6207	// values are omitted from API requests. However, any field with an
6208	// empty value appearing in NullFields will be sent to the server as
6209	// null. It is an error if a field in this list has a non-empty value.
6210	// This may be used to include null fields in Patch requests.
6211	NullFields []string `json:"-"`
6212}
6213
6214func (s *StageSummary) MarshalJSON() ([]byte, error) {
6215	type NoMethod StageSummary
6216	raw := NoMethod(*s)
6217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6218}
6219
6220// StateFamilyConfig: State family configuration.
6221type StateFamilyConfig struct {
6222	// IsRead: If true, this family corresponds to a read operation.
6223	IsRead bool `json:"isRead,omitempty"`
6224
6225	// StateFamily: The state family value.
6226	StateFamily string `json:"stateFamily,omitempty"`
6227
6228	// ForceSendFields is a list of field names (e.g. "IsRead") to
6229	// unconditionally include in API requests. By default, fields with
6230	// empty or default values are omitted from API requests. However, any
6231	// non-pointer, non-interface field appearing in ForceSendFields will be
6232	// sent to the server regardless of whether the field is empty or not.
6233	// This may be used to include empty fields in Patch requests.
6234	ForceSendFields []string `json:"-"`
6235
6236	// NullFields is a list of field names (e.g. "IsRead") to include in API
6237	// requests with the JSON null value. By default, fields with empty
6238	// values are omitted from API requests. However, any field with an
6239	// empty value appearing in NullFields will be sent to the server as
6240	// null. It is an error if a field in this list has a non-empty value.
6241	// This may be used to include null fields in Patch requests.
6242	NullFields []string `json:"-"`
6243}
6244
6245func (s *StateFamilyConfig) MarshalJSON() ([]byte, error) {
6246	type NoMethod StateFamilyConfig
6247	raw := NoMethod(*s)
6248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6249}
6250
6251// Status: The `Status` type defines a logical error model that is
6252// suitable for different programming environments, including REST APIs
6253// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
6254// `Status` message contains three pieces of data: error code, error
6255// message, and error details. You can find out more about this error
6256// model and how to work with it in the API Design Guide
6257// (https://cloud.google.com/apis/design/errors).
6258type Status struct {
6259	// Code: The status code, which should be an enum value of
6260	// google.rpc.Code.
6261	Code int64 `json:"code,omitempty"`
6262
6263	// Details: A list of messages that carry the error details. There is a
6264	// common set of message types for APIs to use.
6265	Details []googleapi.RawMessage `json:"details,omitempty"`
6266
6267	// Message: A developer-facing error message, which should be in
6268	// English. Any user-facing error message should be localized and sent
6269	// in the google.rpc.Status.details field, or localized by the client.
6270	Message string `json:"message,omitempty"`
6271
6272	// ForceSendFields is a list of field names (e.g. "Code") to
6273	// unconditionally include in API requests. By default, fields with
6274	// empty or default values are omitted from API requests. However, any
6275	// non-pointer, non-interface field appearing in ForceSendFields will be
6276	// sent to the server regardless of whether the field is empty or not.
6277	// This may be used to include empty fields in Patch requests.
6278	ForceSendFields []string `json:"-"`
6279
6280	// NullFields is a list of field names (e.g. "Code") 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 *Status) MarshalJSON() ([]byte, error) {
6290	type NoMethod Status
6291	raw := NoMethod(*s)
6292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6293}
6294
6295// Step: Defines a particular step within a Cloud Dataflow job. A job
6296// consists of multiple steps, each of which performs some specific
6297// operation as part of the overall job. Data is typically passed from
6298// one step to another as part of the job. Here's an example of a
6299// sequence of steps which together implement a Map-Reduce job: * Read a
6300// collection of data from some source, parsing the collection's
6301// elements. * Validate the elements. * Apply a user-defined function to
6302// map each element to some value and extract an element-specific key
6303// value. * Group elements with the same key into a single element with
6304// that key, transforming a multiply-keyed collection into a
6305// uniquely-keyed collection. * Write the elements out to some data
6306// sink. Note that the Cloud Dataflow service may be used to run many
6307// different types of jobs, not just Map-Reduce.
6308type Step struct {
6309	// Kind: The kind of step in the Cloud Dataflow job.
6310	Kind string `json:"kind,omitempty"`
6311
6312	// Name: The name that identifies the step. This must be unique for each
6313	// step with respect to all other steps in the Cloud Dataflow job.
6314	Name string `json:"name,omitempty"`
6315
6316	// Properties: Named properties associated with the step. Each kind of
6317	// predefined step has its own required set of properties. Must be
6318	// provided on Create. Only retrieved with JOB_VIEW_ALL.
6319	Properties googleapi.RawMessage `json:"properties,omitempty"`
6320
6321	// ForceSendFields is a list of field names (e.g. "Kind") to
6322	// unconditionally include in API requests. By default, fields with
6323	// empty or default values are omitted from API requests. However, any
6324	// non-pointer, non-interface field appearing in ForceSendFields will be
6325	// sent to the server regardless of whether the field is empty or not.
6326	// This may be used to include empty fields in Patch requests.
6327	ForceSendFields []string `json:"-"`
6328
6329	// NullFields is a list of field names (e.g. "Kind") to include in API
6330	// requests with the JSON null value. By default, fields with empty
6331	// values are omitted from API requests. However, any field with an
6332	// empty value appearing in NullFields will be sent to the server as
6333	// null. It is an error if a field in this list has a non-empty value.
6334	// This may be used to include null fields in Patch requests.
6335	NullFields []string `json:"-"`
6336}
6337
6338func (s *Step) MarshalJSON() ([]byte, error) {
6339	type NoMethod Step
6340	raw := NoMethod(*s)
6341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6342}
6343
6344// StreamLocation: Describes a stream of data, either as input to be
6345// processed or as output of a streaming Dataflow job.
6346type StreamLocation struct {
6347	// CustomSourceLocation: The stream is a custom source.
6348	CustomSourceLocation *CustomSourceLocation `json:"customSourceLocation,omitempty"`
6349
6350	// PubsubLocation: The stream is a pubsub stream.
6351	PubsubLocation *PubsubLocation `json:"pubsubLocation,omitempty"`
6352
6353	// SideInputLocation: The stream is a streaming side input.
6354	SideInputLocation *StreamingSideInputLocation `json:"sideInputLocation,omitempty"`
6355
6356	// StreamingStageLocation: The stream is part of another computation
6357	// within the current streaming Dataflow job.
6358	StreamingStageLocation *StreamingStageLocation `json:"streamingStageLocation,omitempty"`
6359
6360	// ForceSendFields is a list of field names (e.g.
6361	// "CustomSourceLocation") to unconditionally include in API requests.
6362	// By default, fields with empty or default values are omitted from API
6363	// requests. However, any non-pointer, non-interface field appearing in
6364	// ForceSendFields will be sent to the server regardless of whether the
6365	// field is empty or not. This may be used to include empty fields in
6366	// Patch requests.
6367	ForceSendFields []string `json:"-"`
6368
6369	// NullFields is a list of field names (e.g. "CustomSourceLocation") to
6370	// include in API requests with the JSON null value. By default, fields
6371	// with empty values are omitted from API requests. However, any field
6372	// with an empty value appearing in NullFields will be sent to the
6373	// server as null. It is an error if a field in this list has a
6374	// non-empty value. This may be used to include null fields in Patch
6375	// requests.
6376	NullFields []string `json:"-"`
6377}
6378
6379func (s *StreamLocation) MarshalJSON() ([]byte, error) {
6380	type NoMethod StreamLocation
6381	raw := NoMethod(*s)
6382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6383}
6384
6385// StreamingApplianceSnapshotConfig: Streaming appliance snapshot
6386// configuration.
6387type StreamingApplianceSnapshotConfig struct {
6388	// ImportStateEndpoint: Indicates which endpoint is used to import
6389	// appliance state.
6390	ImportStateEndpoint string `json:"importStateEndpoint,omitempty"`
6391
6392	// SnapshotId: If set, indicates the snapshot id for the snapshot being
6393	// performed.
6394	SnapshotId string `json:"snapshotId,omitempty"`
6395
6396	// ForceSendFields is a list of field names (e.g. "ImportStateEndpoint")
6397	// to unconditionally include in API requests. By default, fields with
6398	// empty or default values are omitted from API requests. However, any
6399	// non-pointer, non-interface field appearing in ForceSendFields will be
6400	// sent to the server regardless of whether the field is empty or not.
6401	// This may be used to include empty fields in Patch requests.
6402	ForceSendFields []string `json:"-"`
6403
6404	// NullFields is a list of field names (e.g. "ImportStateEndpoint") to
6405	// include in API requests with the JSON null value. By default, fields
6406	// with empty values are omitted from API requests. However, any field
6407	// with an empty value appearing in NullFields will be sent to the
6408	// server as null. It is an error if a field in this list has a
6409	// non-empty value. This may be used to include null fields in Patch
6410	// requests.
6411	NullFields []string `json:"-"`
6412}
6413
6414func (s *StreamingApplianceSnapshotConfig) MarshalJSON() ([]byte, error) {
6415	type NoMethod StreamingApplianceSnapshotConfig
6416	raw := NoMethod(*s)
6417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6418}
6419
6420// StreamingComputationConfig: Configuration information for a single
6421// streaming computation.
6422type StreamingComputationConfig struct {
6423	// ComputationId: Unique identifier for this computation.
6424	ComputationId string `json:"computationId,omitempty"`
6425
6426	// Instructions: Instructions that comprise the computation.
6427	Instructions []*ParallelInstruction `json:"instructions,omitempty"`
6428
6429	// StageName: Stage name of this computation.
6430	StageName string `json:"stageName,omitempty"`
6431
6432	// SystemName: System defined name for this computation.
6433	SystemName string `json:"systemName,omitempty"`
6434
6435	// TransformUserNameToStateFamily: Map from user name of stateful
6436	// transforms in this stage to their state family.
6437	TransformUserNameToStateFamily map[string]string `json:"transformUserNameToStateFamily,omitempty"`
6438
6439	// ForceSendFields is a list of field names (e.g. "ComputationId") to
6440	// unconditionally include in API requests. By default, fields with
6441	// empty or default values are omitted from API requests. However, any
6442	// non-pointer, non-interface field appearing in ForceSendFields will be
6443	// sent to the server regardless of whether the field is empty or not.
6444	// This may be used to include empty fields in Patch requests.
6445	ForceSendFields []string `json:"-"`
6446
6447	// NullFields is a list of field names (e.g. "ComputationId") to include
6448	// in API requests with the JSON null value. By default, fields with
6449	// empty values are omitted from API requests. However, any field with
6450	// an empty value appearing in NullFields will be sent to the server as
6451	// null. It is an error if a field in this list has a non-empty value.
6452	// This may be used to include null fields in Patch requests.
6453	NullFields []string `json:"-"`
6454}
6455
6456func (s *StreamingComputationConfig) MarshalJSON() ([]byte, error) {
6457	type NoMethod StreamingComputationConfig
6458	raw := NoMethod(*s)
6459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6460}
6461
6462// StreamingComputationRanges: Describes full or partial data disk
6463// assignment information of the computation ranges.
6464type StreamingComputationRanges struct {
6465	// ComputationId: The ID of the computation.
6466	ComputationId string `json:"computationId,omitempty"`
6467
6468	// RangeAssignments: Data disk assignments for ranges from this
6469	// computation.
6470	RangeAssignments []*KeyRangeDataDiskAssignment `json:"rangeAssignments,omitempty"`
6471
6472	// ForceSendFields is a list of field names (e.g. "ComputationId") to
6473	// unconditionally include in API requests. By default, fields with
6474	// empty or default values are omitted from API requests. However, any
6475	// non-pointer, non-interface field appearing in ForceSendFields will be
6476	// sent to the server regardless of whether the field is empty or not.
6477	// This may be used to include empty fields in Patch requests.
6478	ForceSendFields []string `json:"-"`
6479
6480	// NullFields is a list of field names (e.g. "ComputationId") to include
6481	// in API requests with the JSON null value. By default, fields with
6482	// empty values are omitted from API requests. However, any field with
6483	// an empty value appearing in NullFields will be sent to the server as
6484	// null. It is an error if a field in this list has a non-empty value.
6485	// This may be used to include null fields in Patch requests.
6486	NullFields []string `json:"-"`
6487}
6488
6489func (s *StreamingComputationRanges) MarshalJSON() ([]byte, error) {
6490	type NoMethod StreamingComputationRanges
6491	raw := NoMethod(*s)
6492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6493}
6494
6495// StreamingComputationTask: A task which describes what action should
6496// be performed for the specified streaming computation ranges.
6497type StreamingComputationTask struct {
6498	// ComputationRanges: Contains ranges of a streaming computation this
6499	// task should apply to.
6500	ComputationRanges []*StreamingComputationRanges `json:"computationRanges,omitempty"`
6501
6502	// DataDisks: Describes the set of data disks this task should apply to.
6503	DataDisks []*MountedDataDisk `json:"dataDisks,omitempty"`
6504
6505	// TaskType: A type of streaming computation task.
6506	//
6507	// Possible values:
6508	//   "STREAMING_COMPUTATION_TASK_UNKNOWN" - The streaming computation
6509	// task is unknown, or unspecified.
6510	//   "STREAMING_COMPUTATION_TASK_STOP" - Stop processing specified
6511	// streaming computation range(s).
6512	//   "STREAMING_COMPUTATION_TASK_START" - Start processing specified
6513	// streaming computation range(s).
6514	TaskType string `json:"taskType,omitempty"`
6515
6516	// ForceSendFields is a list of field names (e.g. "ComputationRanges")
6517	// to unconditionally include in API requests. By default, fields with
6518	// empty or default values are omitted from API requests. However, any
6519	// non-pointer, non-interface field appearing in ForceSendFields will be
6520	// sent to the server regardless of whether the field is empty or not.
6521	// This may be used to include empty fields in Patch requests.
6522	ForceSendFields []string `json:"-"`
6523
6524	// NullFields is a list of field names (e.g. "ComputationRanges") to
6525	// include in API requests with the JSON null value. By default, fields
6526	// with empty values are omitted from API requests. However, any field
6527	// with an empty value appearing in NullFields will be sent to the
6528	// server as null. It is an error if a field in this list has a
6529	// non-empty value. This may be used to include null fields in Patch
6530	// requests.
6531	NullFields []string `json:"-"`
6532}
6533
6534func (s *StreamingComputationTask) MarshalJSON() ([]byte, error) {
6535	type NoMethod StreamingComputationTask
6536	raw := NoMethod(*s)
6537	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6538}
6539
6540// StreamingConfigTask: A task that carries configuration information
6541// for streaming computations.
6542type StreamingConfigTask struct {
6543	// CommitStreamChunkSizeBytes: Chunk size for commit streams from the
6544	// harness to windmill.
6545	CommitStreamChunkSizeBytes int64 `json:"commitStreamChunkSizeBytes,omitempty,string"`
6546
6547	// GetDataStreamChunkSizeBytes: Chunk size for get data streams from the
6548	// harness to windmill.
6549	GetDataStreamChunkSizeBytes int64 `json:"getDataStreamChunkSizeBytes,omitempty,string"`
6550
6551	// MaxWorkItemCommitBytes: Maximum size for work item commit supported
6552	// windmill storage layer.
6553	MaxWorkItemCommitBytes int64 `json:"maxWorkItemCommitBytes,omitempty,string"`
6554
6555	// StreamingComputationConfigs: Set of computation configuration
6556	// information.
6557	StreamingComputationConfigs []*StreamingComputationConfig `json:"streamingComputationConfigs,omitempty"`
6558
6559	// UserStepToStateFamilyNameMap: Map from user step names to state
6560	// families.
6561	UserStepToStateFamilyNameMap map[string]string `json:"userStepToStateFamilyNameMap,omitempty"`
6562
6563	// WindmillServiceEndpoint: If present, the worker must use this
6564	// endpoint to communicate with Windmill Service dispatchers, otherwise
6565	// the worker must continue to use whatever endpoint it had been using.
6566	WindmillServiceEndpoint string `json:"windmillServiceEndpoint,omitempty"`
6567
6568	// WindmillServicePort: If present, the worker must use this port to
6569	// communicate with Windmill Service dispatchers. Only applicable when
6570	// windmill_service_endpoint is specified.
6571	WindmillServicePort int64 `json:"windmillServicePort,omitempty,string"`
6572
6573	// ForceSendFields is a list of field names (e.g.
6574	// "CommitStreamChunkSizeBytes") to unconditionally include in API
6575	// requests. By default, fields with empty or default values are omitted
6576	// from API requests. However, any non-pointer, non-interface field
6577	// appearing in ForceSendFields will be sent to the server regardless of
6578	// whether the field is empty or not. This may be used to include empty
6579	// fields in Patch requests.
6580	ForceSendFields []string `json:"-"`
6581
6582	// NullFields is a list of field names (e.g.
6583	// "CommitStreamChunkSizeBytes") to include in API requests with the
6584	// JSON null value. By default, fields with empty values are omitted
6585	// from API requests. However, any field with an empty value appearing
6586	// in NullFields will be sent to the server as null. It is an error if a
6587	// field in this list has a non-empty value. This may be used to include
6588	// null fields in Patch requests.
6589	NullFields []string `json:"-"`
6590}
6591
6592func (s *StreamingConfigTask) MarshalJSON() ([]byte, error) {
6593	type NoMethod StreamingConfigTask
6594	raw := NoMethod(*s)
6595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6596}
6597
6598// StreamingSetupTask: A task which initializes part of a streaming
6599// Dataflow job.
6600type StreamingSetupTask struct {
6601	// Drain: The user has requested drain.
6602	Drain bool `json:"drain,omitempty"`
6603
6604	// ReceiveWorkPort: The TCP port on which the worker should listen for
6605	// messages from other streaming computation workers.
6606	ReceiveWorkPort int64 `json:"receiveWorkPort,omitempty"`
6607
6608	// SnapshotConfig: Configures streaming appliance snapshot.
6609	SnapshotConfig *StreamingApplianceSnapshotConfig `json:"snapshotConfig,omitempty"`
6610
6611	// StreamingComputationTopology: The global topology of the streaming
6612	// Dataflow job.
6613	StreamingComputationTopology *TopologyConfig `json:"streamingComputationTopology,omitempty"`
6614
6615	// WorkerHarnessPort: The TCP port used by the worker to communicate
6616	// with the Dataflow worker harness.
6617	WorkerHarnessPort int64 `json:"workerHarnessPort,omitempty"`
6618
6619	// ForceSendFields is a list of field names (e.g. "Drain") to
6620	// unconditionally include in API requests. By default, fields with
6621	// empty or default values are omitted from API requests. However, any
6622	// non-pointer, non-interface field appearing in ForceSendFields will be
6623	// sent to the server regardless of whether the field is empty or not.
6624	// This may be used to include empty fields in Patch requests.
6625	ForceSendFields []string `json:"-"`
6626
6627	// NullFields is a list of field names (e.g. "Drain") to include in API
6628	// requests with the JSON null value. By default, fields with empty
6629	// values are omitted from API requests. However, any field with an
6630	// empty value appearing in NullFields will be sent to the server as
6631	// null. It is an error if a field in this list has a non-empty value.
6632	// This may be used to include null fields in Patch requests.
6633	NullFields []string `json:"-"`
6634}
6635
6636func (s *StreamingSetupTask) MarshalJSON() ([]byte, error) {
6637	type NoMethod StreamingSetupTask
6638	raw := NoMethod(*s)
6639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6640}
6641
6642// StreamingSideInputLocation: Identifies the location of a streaming
6643// side input.
6644type StreamingSideInputLocation struct {
6645	// StateFamily: Identifies the state family where this side input is
6646	// stored.
6647	StateFamily string `json:"stateFamily,omitempty"`
6648
6649	// Tag: Identifies the particular side input within the streaming
6650	// Dataflow job.
6651	Tag string `json:"tag,omitempty"`
6652
6653	// ForceSendFields is a list of field names (e.g. "StateFamily") to
6654	// unconditionally include in API requests. By default, fields with
6655	// empty or default values are omitted from API requests. However, any
6656	// non-pointer, non-interface field appearing in ForceSendFields will be
6657	// sent to the server regardless of whether the field is empty or not.
6658	// This may be used to include empty fields in Patch requests.
6659	ForceSendFields []string `json:"-"`
6660
6661	// NullFields is a list of field names (e.g. "StateFamily") to include
6662	// in API requests with the JSON null value. By default, fields with
6663	// empty values are omitted from API requests. However, any field with
6664	// an empty value appearing in NullFields will be sent to the server as
6665	// null. It is an error if a field in this list has a non-empty value.
6666	// This may be used to include null fields in Patch requests.
6667	NullFields []string `json:"-"`
6668}
6669
6670func (s *StreamingSideInputLocation) MarshalJSON() ([]byte, error) {
6671	type NoMethod StreamingSideInputLocation
6672	raw := NoMethod(*s)
6673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6674}
6675
6676// StreamingStageLocation: Identifies the location of a streaming
6677// computation stage, for stage-to-stage communication.
6678type StreamingStageLocation struct {
6679	// StreamId: Identifies the particular stream within the streaming
6680	// Dataflow job.
6681	StreamId string `json:"streamId,omitempty"`
6682
6683	// ForceSendFields is a list of field names (e.g. "StreamId") to
6684	// unconditionally include in API requests. By default, fields with
6685	// empty or default values are omitted from API requests. However, any
6686	// non-pointer, non-interface field appearing in ForceSendFields will be
6687	// sent to the server regardless of whether the field is empty or not.
6688	// This may be used to include empty fields in Patch requests.
6689	ForceSendFields []string `json:"-"`
6690
6691	// NullFields is a list of field names (e.g. "StreamId") to include in
6692	// API requests with the JSON null value. By default, fields with empty
6693	// values are omitted from API requests. However, any field with an
6694	// empty value appearing in NullFields will be sent to the server as
6695	// null. It is an error if a field in this list has a non-empty value.
6696	// This may be used to include null fields in Patch requests.
6697	NullFields []string `json:"-"`
6698}
6699
6700func (s *StreamingStageLocation) MarshalJSON() ([]byte, error) {
6701	type NoMethod StreamingStageLocation
6702	raw := NoMethod(*s)
6703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6704}
6705
6706// StringList: A metric value representing a list of strings.
6707type StringList struct {
6708	// Elements: Elements of the list.
6709	Elements []string `json:"elements,omitempty"`
6710
6711	// ForceSendFields is a list of field names (e.g. "Elements") to
6712	// unconditionally include in API requests. By default, fields with
6713	// empty or default values are omitted from API requests. However, any
6714	// non-pointer, non-interface field appearing in ForceSendFields will be
6715	// sent to the server regardless of whether the field is empty or not.
6716	// This may be used to include empty fields in Patch requests.
6717	ForceSendFields []string `json:"-"`
6718
6719	// NullFields is a list of field names (e.g. "Elements") to include in
6720	// API requests with the JSON null value. By default, fields with empty
6721	// values are omitted from API requests. However, any field with an
6722	// empty value appearing in NullFields will be sent to the server as
6723	// null. It is an error if a field in this list has a non-empty value.
6724	// This may be used to include null fields in Patch requests.
6725	NullFields []string `json:"-"`
6726}
6727
6728func (s *StringList) MarshalJSON() ([]byte, error) {
6729	type NoMethod StringList
6730	raw := NoMethod(*s)
6731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6732}
6733
6734// StructuredMessage: A rich message format, including a human readable
6735// string, a key for identifying the message, and structured data
6736// associated with the message for programmatic consumption.
6737type StructuredMessage struct {
6738	// MessageKey: Identifier for this message type. Used by external
6739	// systems to internationalize or personalize message.
6740	MessageKey string `json:"messageKey,omitempty"`
6741
6742	// MessageText: Human-readable version of message.
6743	MessageText string `json:"messageText,omitempty"`
6744
6745	// Parameters: The structured data associated with this message.
6746	Parameters []*Parameter `json:"parameters,omitempty"`
6747
6748	// ForceSendFields is a list of field names (e.g. "MessageKey") to
6749	// unconditionally include in API requests. By default, fields with
6750	// empty or default values are omitted from API requests. However, any
6751	// non-pointer, non-interface field appearing in ForceSendFields will be
6752	// sent to the server regardless of whether the field is empty or not.
6753	// This may be used to include empty fields in Patch requests.
6754	ForceSendFields []string `json:"-"`
6755
6756	// NullFields is a list of field names (e.g. "MessageKey") to include in
6757	// API requests with the JSON null value. By default, fields with empty
6758	// values are omitted from API requests. However, any field with an
6759	// empty value appearing in NullFields will be sent to the server as
6760	// null. It is an error if a field in this list has a non-empty value.
6761	// This may be used to include null fields in Patch requests.
6762	NullFields []string `json:"-"`
6763}
6764
6765func (s *StructuredMessage) MarshalJSON() ([]byte, error) {
6766	type NoMethod StructuredMessage
6767	raw := NoMethod(*s)
6768	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6769}
6770
6771// TaskRunnerSettings: Taskrunner configuration settings.
6772type TaskRunnerSettings struct {
6773	// Alsologtostderr: Whether to also send taskrunner log info to stderr.
6774	Alsologtostderr bool `json:"alsologtostderr,omitempty"`
6775
6776	// BaseTaskDir: The location on the worker for task-specific
6777	// subdirectories.
6778	BaseTaskDir string `json:"baseTaskDir,omitempty"`
6779
6780	// BaseUrl: The base URL for the taskrunner to use when accessing Google
6781	// Cloud APIs. When workers access Google Cloud APIs, they logically do
6782	// so via relative URLs. If this field is specified, it supplies the
6783	// base URL to use for resolving these relative URLs. The normative
6784	// algorithm used is defined by RFC 1808, "Relative Uniform Resource
6785	// Locators". If not specified, the default value is
6786	// "http://www.googleapis.com/"
6787	BaseUrl string `json:"baseUrl,omitempty"`
6788
6789	// CommandlinesFileName: The file to store preprocessing commands in.
6790	CommandlinesFileName string `json:"commandlinesFileName,omitempty"`
6791
6792	// ContinueOnException: Whether to continue taskrunner if an exception
6793	// is hit.
6794	ContinueOnException bool `json:"continueOnException,omitempty"`
6795
6796	// DataflowApiVersion: The API version of endpoint, e.g. "v1b3"
6797	DataflowApiVersion string `json:"dataflowApiVersion,omitempty"`
6798
6799	// HarnessCommand: The command to launch the worker harness.
6800	HarnessCommand string `json:"harnessCommand,omitempty"`
6801
6802	// LanguageHint: The suggested backend language.
6803	LanguageHint string `json:"languageHint,omitempty"`
6804
6805	// LogDir: The directory on the VM to store logs.
6806	LogDir string `json:"logDir,omitempty"`
6807
6808	// LogToSerialconsole: Whether to send taskrunner log info to Google
6809	// Compute Engine VM serial console.
6810	LogToSerialconsole bool `json:"logToSerialconsole,omitempty"`
6811
6812	// LogUploadLocation: Indicates where to put logs. If this is not
6813	// specified, the logs will not be uploaded. The supported resource type
6814	// is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object}
6815	// bucket.storage.googleapis.com/{object}
6816	LogUploadLocation string `json:"logUploadLocation,omitempty"`
6817
6818	// OauthScopes: The OAuth2 scopes to be requested by the taskrunner in
6819	// order to access the Cloud Dataflow API.
6820	OauthScopes []string `json:"oauthScopes,omitempty"`
6821
6822	// ParallelWorkerSettings: The settings to pass to the parallel worker
6823	// harness.
6824	ParallelWorkerSettings *WorkerSettings `json:"parallelWorkerSettings,omitempty"`
6825
6826	// StreamingWorkerMainClass: The streaming worker main class name.
6827	StreamingWorkerMainClass string `json:"streamingWorkerMainClass,omitempty"`
6828
6829	// TaskGroup: The UNIX group ID on the worker VM to use for tasks
6830	// launched by taskrunner; e.g. "wheel".
6831	TaskGroup string `json:"taskGroup,omitempty"`
6832
6833	// TaskUser: The UNIX user ID on the worker VM to use for tasks launched
6834	// by taskrunner; e.g. "root".
6835	TaskUser string `json:"taskUser,omitempty"`
6836
6837	// TempStoragePrefix: The prefix of the resources the taskrunner should
6838	// use for temporary storage. The supported resource type is: Google
6839	// Cloud Storage: storage.googleapis.com/{bucket}/{object}
6840	// bucket.storage.googleapis.com/{object}
6841	TempStoragePrefix string `json:"tempStoragePrefix,omitempty"`
6842
6843	// VmId: The ID string of the VM.
6844	VmId string `json:"vmId,omitempty"`
6845
6846	// WorkflowFileName: The file to store the workflow in.
6847	WorkflowFileName string `json:"workflowFileName,omitempty"`
6848
6849	// ForceSendFields is a list of field names (e.g. "Alsologtostderr") to
6850	// unconditionally include in API requests. By default, fields with
6851	// empty or default values are omitted from API requests. However, any
6852	// non-pointer, non-interface field appearing in ForceSendFields will be
6853	// sent to the server regardless of whether the field is empty or not.
6854	// This may be used to include empty fields in Patch requests.
6855	ForceSendFields []string `json:"-"`
6856
6857	// NullFields is a list of field names (e.g. "Alsologtostderr") to
6858	// include in API requests with the JSON null value. By default, fields
6859	// with empty values are omitted from API requests. However, any field
6860	// with an empty value appearing in NullFields will be sent to the
6861	// server as null. It is an error if a field in this list has a
6862	// non-empty value. This may be used to include null fields in Patch
6863	// requests.
6864	NullFields []string `json:"-"`
6865}
6866
6867func (s *TaskRunnerSettings) MarshalJSON() ([]byte, error) {
6868	type NoMethod TaskRunnerSettings
6869	raw := NoMethod(*s)
6870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6871}
6872
6873// TemplateMetadata: Metadata describing a template.
6874type TemplateMetadata struct {
6875	// Description: Optional. A description of the template.
6876	Description string `json:"description,omitempty"`
6877
6878	// Name: Required. The name of the template.
6879	Name string `json:"name,omitempty"`
6880
6881	// Parameters: The parameters for the template.
6882	Parameters []*ParameterMetadata `json:"parameters,omitempty"`
6883
6884	// ForceSendFields is a list of field names (e.g. "Description") to
6885	// unconditionally include in API requests. By default, fields with
6886	// empty or default values are omitted from API requests. However, any
6887	// non-pointer, non-interface field appearing in ForceSendFields will be
6888	// sent to the server regardless of whether the field is empty or not.
6889	// This may be used to include empty fields in Patch requests.
6890	ForceSendFields []string `json:"-"`
6891
6892	// NullFields is a list of field names (e.g. "Description") to include
6893	// in API requests with the JSON null value. By default, fields with
6894	// empty values are omitted from API requests. However, any field with
6895	// an empty value appearing in NullFields will be sent to the server as
6896	// null. It is an error if a field in this list has a non-empty value.
6897	// This may be used to include null fields in Patch requests.
6898	NullFields []string `json:"-"`
6899}
6900
6901func (s *TemplateMetadata) MarshalJSON() ([]byte, error) {
6902	type NoMethod TemplateMetadata
6903	raw := NoMethod(*s)
6904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6905}
6906
6907// TopologyConfig: Global topology of the streaming Dataflow job,
6908// including all computations and their sharded locations.
6909type TopologyConfig struct {
6910	// Computations: The computations associated with a streaming Dataflow
6911	// job.
6912	Computations []*ComputationTopology `json:"computations,omitempty"`
6913
6914	// DataDiskAssignments: The disks assigned to a streaming Dataflow job.
6915	DataDiskAssignments []*DataDiskAssignment `json:"dataDiskAssignments,omitempty"`
6916
6917	// ForwardingKeyBits: The size (in bits) of keys that will be assigned
6918	// to source messages.
6919	ForwardingKeyBits int64 `json:"forwardingKeyBits,omitempty"`
6920
6921	// PersistentStateVersion: Version number for persistent state.
6922	PersistentStateVersion int64 `json:"persistentStateVersion,omitempty"`
6923
6924	// UserStageToComputationNameMap: Maps user stage names to stable
6925	// computation names.
6926	UserStageToComputationNameMap map[string]string `json:"userStageToComputationNameMap,omitempty"`
6927
6928	// ForceSendFields is a list of field names (e.g. "Computations") to
6929	// unconditionally include in API requests. By default, fields with
6930	// empty or default values are omitted from API requests. However, any
6931	// non-pointer, non-interface field appearing in ForceSendFields will be
6932	// sent to the server regardless of whether the field is empty or not.
6933	// This may be used to include empty fields in Patch requests.
6934	ForceSendFields []string `json:"-"`
6935
6936	// NullFields is a list of field names (e.g. "Computations") to include
6937	// in API requests with the JSON null value. By default, fields with
6938	// empty values are omitted from API requests. However, any field with
6939	// an empty value appearing in NullFields will be sent to the server as
6940	// null. It is an error if a field in this list has a non-empty value.
6941	// This may be used to include null fields in Patch requests.
6942	NullFields []string `json:"-"`
6943}
6944
6945func (s *TopologyConfig) MarshalJSON() ([]byte, error) {
6946	type NoMethod TopologyConfig
6947	raw := NoMethod(*s)
6948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6949}
6950
6951// TransformSummary: Description of the type, names/ids, and
6952// input/outputs for a transform.
6953type TransformSummary struct {
6954	// DisplayData: Transform-specific display data.
6955	DisplayData []*DisplayData `json:"displayData,omitempty"`
6956
6957	// Id: SDK generated id of this transform instance.
6958	Id string `json:"id,omitempty"`
6959
6960	// InputCollectionName: User names for all collection inputs to this
6961	// transform.
6962	InputCollectionName []string `json:"inputCollectionName,omitempty"`
6963
6964	// Kind: Type of transform.
6965	//
6966	// Possible values:
6967	//   "UNKNOWN_KIND" - Unrecognized transform type.
6968	//   "PAR_DO_KIND" - ParDo transform.
6969	//   "GROUP_BY_KEY_KIND" - Group By Key transform.
6970	//   "FLATTEN_KIND" - Flatten transform.
6971	//   "READ_KIND" - Read transform.
6972	//   "WRITE_KIND" - Write transform.
6973	//   "CONSTANT_KIND" - Constructs from a constant value, such as with
6974	// Create.of.
6975	//   "SINGLETON_KIND" - Creates a Singleton view of a collection.
6976	//   "SHUFFLE_KIND" - Opening or closing a shuffle session, often as
6977	// part of a GroupByKey.
6978	Kind string `json:"kind,omitempty"`
6979
6980	// Name: User provided name for this transform instance.
6981	Name string `json:"name,omitempty"`
6982
6983	// OutputCollectionName: User names for all collection outputs to this
6984	// transform.
6985	OutputCollectionName []string `json:"outputCollectionName,omitempty"`
6986
6987	// ForceSendFields is a list of field names (e.g. "DisplayData") to
6988	// unconditionally include in API requests. By default, fields with
6989	// empty or default values are omitted from API requests. However, any
6990	// non-pointer, non-interface field appearing in ForceSendFields will be
6991	// sent to the server regardless of whether the field is empty or not.
6992	// This may be used to include empty fields in Patch requests.
6993	ForceSendFields []string `json:"-"`
6994
6995	// NullFields is a list of field names (e.g. "DisplayData") to include
6996	// in API requests with the JSON null value. By default, fields with
6997	// empty values are omitted from API requests. However, any field with
6998	// an empty value appearing in NullFields will be sent to the server as
6999	// null. It is an error if a field in this list has a non-empty value.
7000	// This may be used to include null fields in Patch requests.
7001	NullFields []string `json:"-"`
7002}
7003
7004func (s *TransformSummary) MarshalJSON() ([]byte, error) {
7005	type NoMethod TransformSummary
7006	raw := NoMethod(*s)
7007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7008}
7009
7010// ValidateResponse: Response to the validation request.
7011type ValidateResponse struct {
7012	// ErrorMessage: Will be empty if validation succeeds.
7013	ErrorMessage string `json:"errorMessage,omitempty"`
7014
7015	// QueryInfo: Information about the validated query. Not defined if
7016	// validation fails.
7017	QueryInfo *QueryInfo `json:"queryInfo,omitempty"`
7018
7019	// ServerResponse contains the HTTP response code and headers from the
7020	// server.
7021	googleapi.ServerResponse `json:"-"`
7022
7023	// ForceSendFields is a list of field names (e.g. "ErrorMessage") to
7024	// unconditionally include in API requests. By default, fields with
7025	// empty or default values are omitted from API requests. However, any
7026	// non-pointer, non-interface field appearing in ForceSendFields will be
7027	// sent to the server regardless of whether the field is empty or not.
7028	// This may be used to include empty fields in Patch requests.
7029	ForceSendFields []string `json:"-"`
7030
7031	// NullFields is a list of field names (e.g. "ErrorMessage") to include
7032	// in API requests with the JSON null value. By default, fields with
7033	// empty values are omitted from API requests. However, any field with
7034	// an empty value appearing in NullFields will be sent to the server as
7035	// null. It is an error if a field in this list has a non-empty value.
7036	// This may be used to include null fields in Patch requests.
7037	NullFields []string `json:"-"`
7038}
7039
7040func (s *ValidateResponse) MarshalJSON() ([]byte, error) {
7041	type NoMethod ValidateResponse
7042	raw := NoMethod(*s)
7043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7044}
7045
7046// WorkItem: WorkItem represents basic information about a WorkItem to
7047// be executed in the cloud.
7048type WorkItem struct {
7049	// Configuration: Work item-specific configuration as an opaque blob.
7050	Configuration string `json:"configuration,omitempty"`
7051
7052	// Id: Identifies this WorkItem.
7053	Id int64 `json:"id,omitempty,string"`
7054
7055	// InitialReportIndex: The initial index to use when reporting the
7056	// status of the WorkItem.
7057	InitialReportIndex int64 `json:"initialReportIndex,omitempty,string"`
7058
7059	// JobId: Identifies the workflow job this WorkItem belongs to.
7060	JobId string `json:"jobId,omitempty"`
7061
7062	// LeaseExpireTime: Time when the lease on this Work will expire.
7063	LeaseExpireTime string `json:"leaseExpireTime,omitempty"`
7064
7065	// MapTask: Additional information for MapTask WorkItems.
7066	MapTask *MapTask `json:"mapTask,omitempty"`
7067
7068	// Packages: Any required packages that need to be fetched in order to
7069	// execute this WorkItem.
7070	Packages []*Package `json:"packages,omitempty"`
7071
7072	// ProjectId: Identifies the cloud project this WorkItem belongs to.
7073	ProjectId string `json:"projectId,omitempty"`
7074
7075	// ReportStatusInterval: Recommended reporting interval.
7076	ReportStatusInterval string `json:"reportStatusInterval,omitempty"`
7077
7078	// SeqMapTask: Additional information for SeqMapTask WorkItems.
7079	SeqMapTask *SeqMapTask `json:"seqMapTask,omitempty"`
7080
7081	// ShellTask: Additional information for ShellTask WorkItems.
7082	ShellTask *ShellTask `json:"shellTask,omitempty"`
7083
7084	// SourceOperationTask: Additional information for source operation
7085	// WorkItems.
7086	SourceOperationTask *SourceOperationRequest `json:"sourceOperationTask,omitempty"`
7087
7088	// StreamingComputationTask: Additional information for
7089	// StreamingComputationTask WorkItems.
7090	StreamingComputationTask *StreamingComputationTask `json:"streamingComputationTask,omitempty"`
7091
7092	// StreamingConfigTask: Additional information for StreamingConfigTask
7093	// WorkItems.
7094	StreamingConfigTask *StreamingConfigTask `json:"streamingConfigTask,omitempty"`
7095
7096	// StreamingSetupTask: Additional information for StreamingSetupTask
7097	// WorkItems.
7098	StreamingSetupTask *StreamingSetupTask `json:"streamingSetupTask,omitempty"`
7099
7100	// ForceSendFields is a list of field names (e.g. "Configuration") to
7101	// unconditionally include in API requests. By default, fields with
7102	// empty or default values are omitted from API requests. However, any
7103	// non-pointer, non-interface field appearing in ForceSendFields will be
7104	// sent to the server regardless of whether the field is empty or not.
7105	// This may be used to include empty fields in Patch requests.
7106	ForceSendFields []string `json:"-"`
7107
7108	// NullFields is a list of field names (e.g. "Configuration") to include
7109	// in API requests with the JSON null value. By default, fields with
7110	// empty values are omitted from API requests. However, any field with
7111	// an empty value appearing in NullFields will be sent to the server as
7112	// null. It is an error if a field in this list has a non-empty value.
7113	// This may be used to include null fields in Patch requests.
7114	NullFields []string `json:"-"`
7115}
7116
7117func (s *WorkItem) MarshalJSON() ([]byte, error) {
7118	type NoMethod WorkItem
7119	raw := NoMethod(*s)
7120	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7121}
7122
7123// WorkItemDetails: Information about an individual work item execution.
7124type WorkItemDetails struct {
7125	// AttemptId: Attempt ID of this work item
7126	AttemptId string `json:"attemptId,omitempty"`
7127
7128	// EndTime: End time of this work item attempt. If the work item is
7129	// completed, this is the actual end time of the work item. Otherwise,
7130	// it is the predicted end time.
7131	EndTime string `json:"endTime,omitempty"`
7132
7133	// Metrics: Metrics for this work item.
7134	Metrics []*MetricUpdate `json:"metrics,omitempty"`
7135
7136	// Progress: Progress of this work item.
7137	Progress *ProgressTimeseries `json:"progress,omitempty"`
7138
7139	// StartTime: Start time of this work item attempt.
7140	StartTime string `json:"startTime,omitempty"`
7141
7142	// State: State of this work item.
7143	//
7144	// Possible values:
7145	//   "EXECUTION_STATE_UNKNOWN" - The component state is unknown or
7146	// unspecified.
7147	//   "EXECUTION_STATE_NOT_STARTED" - The component is not yet running.
7148	//   "EXECUTION_STATE_RUNNING" - The component is currently running.
7149	//   "EXECUTION_STATE_SUCCEEDED" - The component succeeded.
7150	//   "EXECUTION_STATE_FAILED" - The component failed.
7151	//   "EXECUTION_STATE_CANCELLED" - Execution of the component was
7152	// cancelled.
7153	State string `json:"state,omitempty"`
7154
7155	// TaskId: Name of this work item.
7156	TaskId string `json:"taskId,omitempty"`
7157
7158	// ForceSendFields is a list of field names (e.g. "AttemptId") to
7159	// unconditionally include in API requests. By default, fields with
7160	// empty or default values are omitted from API requests. However, any
7161	// non-pointer, non-interface field appearing in ForceSendFields will be
7162	// sent to the server regardless of whether the field is empty or not.
7163	// This may be used to include empty fields in Patch requests.
7164	ForceSendFields []string `json:"-"`
7165
7166	// NullFields is a list of field names (e.g. "AttemptId") to include in
7167	// API requests with the JSON null value. By default, fields with empty
7168	// values are omitted from API requests. However, any field with an
7169	// empty value appearing in NullFields will be sent to the server as
7170	// null. It is an error if a field in this list has a non-empty value.
7171	// This may be used to include null fields in Patch requests.
7172	NullFields []string `json:"-"`
7173}
7174
7175func (s *WorkItemDetails) MarshalJSON() ([]byte, error) {
7176	type NoMethod WorkItemDetails
7177	raw := NoMethod(*s)
7178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7179}
7180
7181// WorkItemServiceState: The Dataflow service's idea of the current
7182// state of a WorkItem being processed by a worker.
7183type WorkItemServiceState struct {
7184	// CompleteWorkStatus: If set, a request to complete the work item with
7185	// the given status. This will not be set to OK, unless supported by the
7186	// specific kind of WorkItem. It can be used for the backend to indicate
7187	// a WorkItem must terminate, e.g., for aborting work.
7188	CompleteWorkStatus *Status `json:"completeWorkStatus,omitempty"`
7189
7190	// HarnessData: Other data returned by the service, specific to the
7191	// particular worker harness.
7192	HarnessData googleapi.RawMessage `json:"harnessData,omitempty"`
7193
7194	// HotKeyDetection: A hot key is a symptom of poor data distribution in
7195	// which there are enough elements mapped to a single key to impact
7196	// pipeline performance. When present, this field includes metadata
7197	// associated with any hot key.
7198	HotKeyDetection *HotKeyDetection `json:"hotKeyDetection,omitempty"`
7199
7200	// LeaseExpireTime: Time at which the current lease will expire.
7201	LeaseExpireTime string `json:"leaseExpireTime,omitempty"`
7202
7203	// MetricShortId: The short ids that workers should use in subsequent
7204	// metric updates. Workers should strive to use short ids whenever
7205	// possible, but it is ok to request the short_id again if a worker lost
7206	// track of it (e.g. if the worker is recovering from a crash). NOTE: it
7207	// is possible that the response may have short ids for a subset of the
7208	// metrics.
7209	MetricShortId []*MetricShortId `json:"metricShortId,omitempty"`
7210
7211	// NextReportIndex: The index value to use for the next report sent by
7212	// the worker. Note: If the report call fails for whatever reason, the
7213	// worker should reuse this index for subsequent report attempts.
7214	NextReportIndex int64 `json:"nextReportIndex,omitempty,string"`
7215
7216	// ReportStatusInterval: New recommended reporting interval.
7217	ReportStatusInterval string `json:"reportStatusInterval,omitempty"`
7218
7219	// SplitRequest: The progress point in the WorkItem where the Dataflow
7220	// service suggests that the worker truncate the task.
7221	SplitRequest *ApproximateSplitRequest `json:"splitRequest,omitempty"`
7222
7223	// SuggestedStopPoint: DEPRECATED in favor of split_request.
7224	SuggestedStopPoint *ApproximateProgress `json:"suggestedStopPoint,omitempty"`
7225
7226	// SuggestedStopPosition: Obsolete, always empty.
7227	SuggestedStopPosition *Position `json:"suggestedStopPosition,omitempty"`
7228
7229	// ForceSendFields is a list of field names (e.g. "CompleteWorkStatus")
7230	// to unconditionally include in API requests. By default, fields with
7231	// empty or default values are omitted from API requests. However, any
7232	// non-pointer, non-interface field appearing in ForceSendFields will be
7233	// sent to the server regardless of whether the field is empty or not.
7234	// This may be used to include empty fields in Patch requests.
7235	ForceSendFields []string `json:"-"`
7236
7237	// NullFields is a list of field names (e.g. "CompleteWorkStatus") to
7238	// include in API requests with the JSON null value. By default, fields
7239	// with empty values are omitted from API requests. However, any field
7240	// with an empty value appearing in NullFields will be sent to the
7241	// server as null. It is an error if a field in this list has a
7242	// non-empty value. This may be used to include null fields in Patch
7243	// requests.
7244	NullFields []string `json:"-"`
7245}
7246
7247func (s *WorkItemServiceState) MarshalJSON() ([]byte, error) {
7248	type NoMethod WorkItemServiceState
7249	raw := NoMethod(*s)
7250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7251}
7252
7253// WorkItemStatus: Conveys a worker's progress through the work
7254// described by a WorkItem.
7255type WorkItemStatus struct {
7256	// Completed: True if the WorkItem was completed (successfully or
7257	// unsuccessfully).
7258	Completed bool `json:"completed,omitempty"`
7259
7260	// CounterUpdates: Worker output counters for this WorkItem.
7261	CounterUpdates []*CounterUpdate `json:"counterUpdates,omitempty"`
7262
7263	// DynamicSourceSplit: See documentation of stop_position.
7264	DynamicSourceSplit *DynamicSourceSplit `json:"dynamicSourceSplit,omitempty"`
7265
7266	// Errors: Specifies errors which occurred during processing. If errors
7267	// are provided, and completed = true, then the WorkItem is considered
7268	// to have failed.
7269	Errors []*Status `json:"errors,omitempty"`
7270
7271	// MetricUpdates: DEPRECATED in favor of counter_updates.
7272	MetricUpdates []*MetricUpdate `json:"metricUpdates,omitempty"`
7273
7274	// Progress: DEPRECATED in favor of reported_progress.
7275	Progress *ApproximateProgress `json:"progress,omitempty"`
7276
7277	// ReportIndex: The report index. When a WorkItem is leased, the lease
7278	// will contain an initial report index. When a WorkItem's status is
7279	// reported to the system, the report should be sent with that report
7280	// index, and the response will contain the index the worker should use
7281	// for the next report. Reports received with unexpected index values
7282	// will be rejected by the service. In order to preserve idempotency,
7283	// the worker should not alter the contents of a report, even if the
7284	// worker must submit the same report multiple times before getting back
7285	// a response. The worker should not submit a subsequent report until
7286	// the response for the previous report had been received from the
7287	// service.
7288	ReportIndex int64 `json:"reportIndex,omitempty,string"`
7289
7290	// ReportedProgress: The worker's progress through this WorkItem.
7291	ReportedProgress *ApproximateReportedProgress `json:"reportedProgress,omitempty"`
7292
7293	// RequestedLeaseDuration: Amount of time the worker requests for its
7294	// lease.
7295	RequestedLeaseDuration string `json:"requestedLeaseDuration,omitempty"`
7296
7297	// SourceFork: DEPRECATED in favor of dynamic_source_split.
7298	SourceFork *SourceFork `json:"sourceFork,omitempty"`
7299
7300	// SourceOperationResponse: If the work item represented a
7301	// SourceOperationRequest, and the work is completed, contains the
7302	// result of the operation.
7303	SourceOperationResponse *SourceOperationResponse `json:"sourceOperationResponse,omitempty"`
7304
7305	// StopPosition: A worker may split an active map task in two parts,
7306	// "primary" and "residual", continuing to process the primary part and
7307	// returning the residual part into the pool of available work. This
7308	// event is called a "dynamic split" and is critical to the dynamic work
7309	// rebalancing feature. The two obtained sub-tasks are called "parts" of
7310	// the split. The parts, if concatenated, must represent the same input
7311	// as would be read by the current task if the split did not happen. The
7312	// exact way in which the original task is decomposed into the two parts
7313	// is specified either as a position demarcating them (stop_position),
7314	// or explicitly as two DerivedSources, if this task consumes a
7315	// user-defined source type (dynamic_source_split). The "current" task
7316	// is adjusted as a result of the split: after a task with range [A, B)
7317	// sends a stop_position update at C, its range is considered to be [A,
7318	// C), e.g.: * Progress should be interpreted relative to the new range,
7319	// e.g. "75% completed" means "75% of [A, C) completed" * The worker
7320	// should interpret proposed_stop_position relative to the new range,
7321	// e.g. "split at 68%" should be interpreted as "split at 68% of [A,
7322	// C)". * If the worker chooses to split again using stop_position, only
7323	// stop_positions in [A, C) will be accepted. * Etc.
7324	// dynamic_source_split has similar semantics: e.g., if a task with
7325	// source S splits using dynamic_source_split into {P, R} (where P and R
7326	// must be together equivalent to S), then subsequent progress and
7327	// proposed_stop_position should be interpreted relative to P, and in a
7328	// potential subsequent dynamic_source_split into {P', R'}, P' and R'
7329	// must be together equivalent to P, etc.
7330	StopPosition *Position `json:"stopPosition,omitempty"`
7331
7332	// TotalThrottlerWaitTimeSeconds: Total time the worker spent being
7333	// throttled by external systems.
7334	TotalThrottlerWaitTimeSeconds float64 `json:"totalThrottlerWaitTimeSeconds,omitempty"`
7335
7336	// WorkItemId: Identifies the WorkItem.
7337	WorkItemId string `json:"workItemId,omitempty"`
7338
7339	// ForceSendFields is a list of field names (e.g. "Completed") to
7340	// unconditionally include in API requests. By default, fields with
7341	// empty or default values are omitted from API requests. However, any
7342	// non-pointer, non-interface field appearing in ForceSendFields will be
7343	// sent to the server regardless of whether the field is empty or not.
7344	// This may be used to include empty fields in Patch requests.
7345	ForceSendFields []string `json:"-"`
7346
7347	// NullFields is a list of field names (e.g. "Completed") to include in
7348	// API requests with the JSON null value. By default, fields with empty
7349	// values are omitted from API requests. However, any field with an
7350	// empty value appearing in NullFields will be sent to the server as
7351	// null. It is an error if a field in this list has a non-empty value.
7352	// This may be used to include null fields in Patch requests.
7353	NullFields []string `json:"-"`
7354}
7355
7356func (s *WorkItemStatus) MarshalJSON() ([]byte, error) {
7357	type NoMethod WorkItemStatus
7358	raw := NoMethod(*s)
7359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7360}
7361
7362func (s *WorkItemStatus) UnmarshalJSON(data []byte) error {
7363	type NoMethod WorkItemStatus
7364	var s1 struct {
7365		TotalThrottlerWaitTimeSeconds gensupport.JSONFloat64 `json:"totalThrottlerWaitTimeSeconds"`
7366		*NoMethod
7367	}
7368	s1.NoMethod = (*NoMethod)(s)
7369	if err := json.Unmarshal(data, &s1); err != nil {
7370		return err
7371	}
7372	s.TotalThrottlerWaitTimeSeconds = float64(s1.TotalThrottlerWaitTimeSeconds)
7373	return nil
7374}
7375
7376// WorkerDetails: Information about a worker
7377type WorkerDetails struct {
7378	// WorkItems: Work items processed by this worker, sorted by time.
7379	WorkItems []*WorkItemDetails `json:"workItems,omitempty"`
7380
7381	// WorkerName: Name of this worker
7382	WorkerName string `json:"workerName,omitempty"`
7383
7384	// ForceSendFields is a list of field names (e.g. "WorkItems") to
7385	// unconditionally include in API requests. By default, fields with
7386	// empty or default values are omitted from API requests. However, any
7387	// non-pointer, non-interface field appearing in ForceSendFields will be
7388	// sent to the server regardless of whether the field is empty or not.
7389	// This may be used to include empty fields in Patch requests.
7390	ForceSendFields []string `json:"-"`
7391
7392	// NullFields is a list of field names (e.g. "WorkItems") to include in
7393	// API requests with the JSON null value. By default, fields with empty
7394	// values are omitted from API requests. However, any field with an
7395	// empty value appearing in NullFields will be sent to the server as
7396	// null. It is an error if a field in this list has a non-empty value.
7397	// This may be used to include null fields in Patch requests.
7398	NullFields []string `json:"-"`
7399}
7400
7401func (s *WorkerDetails) MarshalJSON() ([]byte, error) {
7402	type NoMethod WorkerDetails
7403	raw := NoMethod(*s)
7404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7405}
7406
7407// WorkerHealthReport: WorkerHealthReport contains information about the
7408// health of a worker. The VM should be identified by the labels
7409// attached to the WorkerMessage that this health ping belongs to.
7410type WorkerHealthReport struct {
7411	// Msg: Message describing any unusual health reports.
7412	Msg string `json:"msg,omitempty"`
7413
7414	// Pods: The pods running on the worker. See:
7415	// http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod
7416	// This field is used by the worker to send the status of the indvidual
7417	// containers running on each worker.
7418	Pods []googleapi.RawMessage `json:"pods,omitempty"`
7419
7420	// ReportInterval: The interval at which the worker is sending health
7421	// reports. The default value of 0 should be interpreted as the field is
7422	// not being explicitly set by the worker.
7423	ReportInterval string `json:"reportInterval,omitempty"`
7424
7425	// VmBrokenCode: Code to describe a specific reason, if known, that a VM
7426	// has reported broken state.
7427	VmBrokenCode string `json:"vmBrokenCode,omitempty"`
7428
7429	// VmIsBroken: Whether the VM is in a permanently broken state. Broken
7430	// VMs should be abandoned or deleted ASAP to avoid assigning or
7431	// completing any work.
7432	VmIsBroken bool `json:"vmIsBroken,omitempty"`
7433
7434	// VmIsHealthy: Whether the VM is currently healthy.
7435	VmIsHealthy bool `json:"vmIsHealthy,omitempty"`
7436
7437	// VmStartupTime: The time the VM was booted.
7438	VmStartupTime string `json:"vmStartupTime,omitempty"`
7439
7440	// ForceSendFields is a list of field names (e.g. "Msg") to
7441	// unconditionally include in API requests. By default, fields with
7442	// empty or default values are omitted from API requests. However, any
7443	// non-pointer, non-interface field appearing in ForceSendFields will be
7444	// sent to the server regardless of whether the field is empty or not.
7445	// This may be used to include empty fields in Patch requests.
7446	ForceSendFields []string `json:"-"`
7447
7448	// NullFields is a list of field names (e.g. "Msg") to include in API
7449	// requests with the JSON null value. By default, fields with empty
7450	// values are omitted from API requests. However, any field with an
7451	// empty value appearing in NullFields will be sent to the server as
7452	// null. It is an error if a field in this list has a non-empty value.
7453	// This may be used to include null fields in Patch requests.
7454	NullFields []string `json:"-"`
7455}
7456
7457func (s *WorkerHealthReport) MarshalJSON() ([]byte, error) {
7458	type NoMethod WorkerHealthReport
7459	raw := NoMethod(*s)
7460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7461}
7462
7463// WorkerHealthReportResponse: WorkerHealthReportResponse contains
7464// information returned to the worker in response to a health ping.
7465type WorkerHealthReportResponse struct {
7466	// ReportInterval: A positive value indicates the worker should change
7467	// its reporting interval to the specified value. The default value of
7468	// zero means no change in report rate is requested by the server.
7469	ReportInterval string `json:"reportInterval,omitempty"`
7470
7471	// ForceSendFields is a list of field names (e.g. "ReportInterval") to
7472	// unconditionally include in API requests. By default, fields with
7473	// empty or default values are omitted from API requests. However, any
7474	// non-pointer, non-interface field appearing in ForceSendFields will be
7475	// sent to the server regardless of whether the field is empty or not.
7476	// This may be used to include empty fields in Patch requests.
7477	ForceSendFields []string `json:"-"`
7478
7479	// NullFields is a list of field names (e.g. "ReportInterval") to
7480	// include in API requests with the JSON null value. By default, fields
7481	// with empty values are omitted from API requests. However, any field
7482	// with an empty value appearing in NullFields will be sent to the
7483	// server as null. It is an error if a field in this list has a
7484	// non-empty value. This may be used to include null fields in Patch
7485	// requests.
7486	NullFields []string `json:"-"`
7487}
7488
7489func (s *WorkerHealthReportResponse) MarshalJSON() ([]byte, error) {
7490	type NoMethod WorkerHealthReportResponse
7491	raw := NoMethod(*s)
7492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7493}
7494
7495// WorkerLifecycleEvent: A report of an event in a worker's lifecycle.
7496// The proto contains one event, because the worker is expected to
7497// asynchronously send each message immediately after the event. Due to
7498// this asynchrony, messages may arrive out of order (or missing), and
7499// it is up to the consumer to interpret. The timestamp of the event is
7500// in the enclosing WorkerMessage proto.
7501type WorkerLifecycleEvent struct {
7502	// ContainerStartTime: The start time of this container. All events will
7503	// report this so that events can be grouped together across
7504	// container/VM restarts.
7505	ContainerStartTime string `json:"containerStartTime,omitempty"`
7506
7507	// Event: The event being reported.
7508	//
7509	// Possible values:
7510	//   "UNKNOWN_EVENT" - Invalid event.
7511	//   "OS_START" - The time the VM started.
7512	//   "CONTAINER_START" - Our container code starts running. Multiple
7513	// containers could be distinguished with WorkerMessage.labels if
7514	// desired.
7515	//   "NETWORK_UP" - The worker has a functional external network
7516	// connection.
7517	//   "STAGING_FILES_DOWNLOAD_START" - Started downloading staging files.
7518	//   "STAGING_FILES_DOWNLOAD_FINISH" - Finished downloading all staging
7519	// files.
7520	//   "SDK_INSTALL_START" - For applicable SDKs, started installation of
7521	// SDK and worker packages.
7522	//   "SDK_INSTALL_FINISH" - Finished installing SDK.
7523	Event string `json:"event,omitempty"`
7524
7525	// Metadata: Other stats that can accompany an event. E.g. {
7526	// "downloaded_bytes" : "123456" }
7527	Metadata map[string]string `json:"metadata,omitempty"`
7528
7529	// ForceSendFields is a list of field names (e.g. "ContainerStartTime")
7530	// to unconditionally include in API requests. By default, fields with
7531	// empty or default values are omitted from API requests. However, any
7532	// non-pointer, non-interface field appearing in ForceSendFields will be
7533	// sent to the server regardless of whether the field is empty or not.
7534	// This may be used to include empty fields in Patch requests.
7535	ForceSendFields []string `json:"-"`
7536
7537	// NullFields is a list of field names (e.g. "ContainerStartTime") to
7538	// include in API requests with the JSON null value. By default, fields
7539	// with empty values are omitted from API requests. However, any field
7540	// with an empty value appearing in NullFields will be sent to the
7541	// server as null. It is an error if a field in this list has a
7542	// non-empty value. This may be used to include null fields in Patch
7543	// requests.
7544	NullFields []string `json:"-"`
7545}
7546
7547func (s *WorkerLifecycleEvent) MarshalJSON() ([]byte, error) {
7548	type NoMethod WorkerLifecycleEvent
7549	raw := NoMethod(*s)
7550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7551}
7552
7553// WorkerMessage: WorkerMessage provides information to the backend
7554// about a worker.
7555type WorkerMessage struct {
7556	// Labels: Labels are used to group WorkerMessages. For example, a
7557	// worker_message about a particular container might have the labels: {
7558	// "JOB_ID": "2015-04-22", "WORKER_ID": "wordcount-vm-2015…"
7559	// "CONTAINER_TYPE": "worker", "CONTAINER_ID": "ac1234def"} Label tags
7560	// typically correspond to Label enum values. However, for ease of
7561	// development other strings can be used as tags. LABEL_UNSPECIFIED
7562	// should not be used here.
7563	Labels map[string]string `json:"labels,omitempty"`
7564
7565	// Time: The timestamp of the worker_message.
7566	Time string `json:"time,omitempty"`
7567
7568	// WorkerHealthReport: The health of a worker.
7569	WorkerHealthReport *WorkerHealthReport `json:"workerHealthReport,omitempty"`
7570
7571	// WorkerLifecycleEvent: Record of worker lifecycle events.
7572	WorkerLifecycleEvent *WorkerLifecycleEvent `json:"workerLifecycleEvent,omitempty"`
7573
7574	// WorkerMessageCode: A worker message code.
7575	WorkerMessageCode *WorkerMessageCode `json:"workerMessageCode,omitempty"`
7576
7577	// WorkerMetrics: Resource metrics reported by workers.
7578	WorkerMetrics *ResourceUtilizationReport `json:"workerMetrics,omitempty"`
7579
7580	// WorkerShutdownNotice: Shutdown notice by workers.
7581	WorkerShutdownNotice *WorkerShutdownNotice `json:"workerShutdownNotice,omitempty"`
7582
7583	// ForceSendFields is a list of field names (e.g. "Labels") to
7584	// unconditionally include in API requests. By default, fields with
7585	// empty or default values are omitted from API requests. However, any
7586	// non-pointer, non-interface field appearing in ForceSendFields will be
7587	// sent to the server regardless of whether the field is empty or not.
7588	// This may be used to include empty fields in Patch requests.
7589	ForceSendFields []string `json:"-"`
7590
7591	// NullFields is a list of field names (e.g. "Labels") to include in API
7592	// requests with the JSON null value. By default, fields with empty
7593	// values are omitted from API requests. However, any field with an
7594	// empty value appearing in NullFields will be sent to the server as
7595	// null. It is an error if a field in this list has a non-empty value.
7596	// This may be used to include null fields in Patch requests.
7597	NullFields []string `json:"-"`
7598}
7599
7600func (s *WorkerMessage) MarshalJSON() ([]byte, error) {
7601	type NoMethod WorkerMessage
7602	raw := NoMethod(*s)
7603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7604}
7605
7606// WorkerMessageCode: A message code is used to report status and error
7607// messages to the service. The message codes are intended to be machine
7608// readable. The service will take care of translating these into user
7609// understandable messages if necessary. Example use cases: 1. Worker
7610// processes reporting successful startup. 2. Worker processes reporting
7611// specific errors (e.g. package staging failure).
7612type WorkerMessageCode struct {
7613	// Code: The code is a string intended for consumption by a machine that
7614	// identifies the type of message being sent. Examples: 1.
7615	// "HARNESS_STARTED" might be used to indicate the worker harness has
7616	// started. 2. "GCS_DOWNLOAD_ERROR" might be used to indicate an error
7617	// downloading a Cloud Storage file as part of the boot process of one
7618	// of the worker containers. This is a string and not an enum to make it
7619	// easy to add new codes without waiting for an API change.
7620	Code string `json:"code,omitempty"`
7621
7622	// Parameters: Parameters contains specific information about the code.
7623	// This is a struct to allow parameters of different types. Examples: 1.
7624	// For a "HARNESS_STARTED" message parameters might provide the name of
7625	// the worker and additional data like timing information. 2. For a
7626	// "GCS_DOWNLOAD_ERROR" parameters might contain fields listing the
7627	// Cloud Storage objects being downloaded and fields containing errors.
7628	// In general complex data structures should be avoided. If a worker
7629	// needs to send a specific and complicated data structure then please
7630	// consider defining a new proto and adding it to the data oneof in
7631	// WorkerMessageResponse. Conventions: Parameters should only be used
7632	// for information that isn't typically passed as a label. hostname and
7633	// other worker identifiers should almost always be passed as labels
7634	// since they will be included on most messages.
7635	Parameters googleapi.RawMessage `json:"parameters,omitempty"`
7636
7637	// ForceSendFields is a list of field names (e.g. "Code") to
7638	// unconditionally include in API requests. By default, fields with
7639	// empty or default values are omitted from API requests. However, any
7640	// non-pointer, non-interface field appearing in ForceSendFields will be
7641	// sent to the server regardless of whether the field is empty or not.
7642	// This may be used to include empty fields in Patch requests.
7643	ForceSendFields []string `json:"-"`
7644
7645	// NullFields is a list of field names (e.g. "Code") to include in API
7646	// requests with the JSON null value. By default, fields with empty
7647	// values are omitted from API requests. However, any field with an
7648	// empty value appearing in NullFields will be sent to the server as
7649	// null. It is an error if a field in this list has a non-empty value.
7650	// This may be used to include null fields in Patch requests.
7651	NullFields []string `json:"-"`
7652}
7653
7654func (s *WorkerMessageCode) MarshalJSON() ([]byte, error) {
7655	type NoMethod WorkerMessageCode
7656	raw := NoMethod(*s)
7657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7658}
7659
7660// WorkerMessageResponse: A worker_message response allows the server to
7661// pass information to the sender.
7662type WorkerMessageResponse struct {
7663	// WorkerHealthReportResponse: The service's response to a worker's
7664	// health report.
7665	WorkerHealthReportResponse *WorkerHealthReportResponse `json:"workerHealthReportResponse,omitempty"`
7666
7667	// WorkerMetricsResponse: Service's response to reporting worker metrics
7668	// (currently empty).
7669	WorkerMetricsResponse *ResourceUtilizationReportResponse `json:"workerMetricsResponse,omitempty"`
7670
7671	// WorkerShutdownNoticeResponse: Service's response to shutdown notice
7672	// (currently empty).
7673	WorkerShutdownNoticeResponse *WorkerShutdownNoticeResponse `json:"workerShutdownNoticeResponse,omitempty"`
7674
7675	// ForceSendFields is a list of field names (e.g.
7676	// "WorkerHealthReportResponse") to unconditionally include in API
7677	// requests. By default, fields with empty or default values are omitted
7678	// from API requests. However, any non-pointer, non-interface field
7679	// appearing in ForceSendFields will be sent to the server regardless of
7680	// whether the field is empty or not. This may be used to include empty
7681	// fields in Patch requests.
7682	ForceSendFields []string `json:"-"`
7683
7684	// NullFields is a list of field names (e.g.
7685	// "WorkerHealthReportResponse") to include in API requests with the
7686	// JSON null value. By default, fields with empty values are omitted
7687	// from API requests. However, any field with an empty value appearing
7688	// in NullFields will be sent to the server as null. It is an error if a
7689	// field in this list has a non-empty value. This may be used to include
7690	// null fields in Patch requests.
7691	NullFields []string `json:"-"`
7692}
7693
7694func (s *WorkerMessageResponse) MarshalJSON() ([]byte, error) {
7695	type NoMethod WorkerMessageResponse
7696	raw := NoMethod(*s)
7697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7698}
7699
7700// WorkerPool: Describes one particular pool of Cloud Dataflow workers
7701// to be instantiated by the Cloud Dataflow service in order to perform
7702// the computations required by a job. Note that a workflow job may use
7703// multiple pools, in order to match the various computational
7704// requirements of the various stages of the job.
7705type WorkerPool struct {
7706	// AutoscalingSettings: Settings for autoscaling of this WorkerPool.
7707	AutoscalingSettings *AutoscalingSettings `json:"autoscalingSettings,omitempty"`
7708
7709	// DataDisks: Data disks that are used by a VM in this workflow.
7710	DataDisks []*Disk `json:"dataDisks,omitempty"`
7711
7712	// DefaultPackageSet: The default package set to install. This allows
7713	// the service to select a default set of packages which are useful to
7714	// worker harnesses written in a particular language.
7715	//
7716	// Possible values:
7717	//   "DEFAULT_PACKAGE_SET_UNKNOWN" - The default set of packages to
7718	// stage is unknown, or unspecified.
7719	//   "DEFAULT_PACKAGE_SET_NONE" - Indicates that no packages should be
7720	// staged at the worker unless explicitly specified by the job.
7721	//   "DEFAULT_PACKAGE_SET_JAVA" - Stage packages typically useful to
7722	// workers written in Java.
7723	//   "DEFAULT_PACKAGE_SET_PYTHON" - Stage packages typically useful to
7724	// workers written in Python.
7725	DefaultPackageSet string `json:"defaultPackageSet,omitempty"`
7726
7727	// DiskSizeGb: Size of root disk for VMs, in GB. If zero or unspecified,
7728	// the service will attempt to choose a reasonable default.
7729	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
7730
7731	// DiskSourceImage: Fully qualified source image for disks.
7732	DiskSourceImage string `json:"diskSourceImage,omitempty"`
7733
7734	// DiskType: Type of root disk for VMs. If empty or unspecified, the
7735	// service will attempt to choose a reasonable default.
7736	DiskType string `json:"diskType,omitempty"`
7737
7738	// IpConfiguration: Configuration for VM IPs.
7739	//
7740	// Possible values:
7741	//   "WORKER_IP_UNSPECIFIED" - The configuration is unknown, or
7742	// unspecified.
7743	//   "WORKER_IP_PUBLIC" - Workers should have public IP addresses.
7744	//   "WORKER_IP_PRIVATE" - Workers should have private IP addresses.
7745	IpConfiguration string `json:"ipConfiguration,omitempty"`
7746
7747	// Kind: The kind of the worker pool; currently only `harness` and
7748	// `shuffle` are supported.
7749	Kind string `json:"kind,omitempty"`
7750
7751	// MachineType: Machine type (e.g. "n1-standard-1"). If empty or
7752	// unspecified, the service will attempt to choose a reasonable default.
7753	MachineType string `json:"machineType,omitempty"`
7754
7755	// Metadata: Metadata to set on the Google Compute Engine VMs.
7756	Metadata map[string]string `json:"metadata,omitempty"`
7757
7758	// Network: Network to which VMs will be assigned. If empty or
7759	// unspecified, the service will use the network "default".
7760	Network string `json:"network,omitempty"`
7761
7762	// NumThreadsPerWorker: The number of threads per worker harness. If
7763	// empty or unspecified, the service will choose a number of threads
7764	// (according to the number of cores on the selected machine type for
7765	// batch, or 1 by convention for streaming).
7766	NumThreadsPerWorker int64 `json:"numThreadsPerWorker,omitempty"`
7767
7768	// NumWorkers: Number of Google Compute Engine workers in this pool
7769	// needed to execute the job. If zero or unspecified, the service will
7770	// attempt to choose a reasonable default.
7771	NumWorkers int64 `json:"numWorkers,omitempty"`
7772
7773	// OnHostMaintenance: The action to take on host maintenance, as defined
7774	// by the Google Compute Engine API.
7775	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
7776
7777	// Packages: Packages to be installed on workers.
7778	Packages []*Package `json:"packages,omitempty"`
7779
7780	// PoolArgs: Extra arguments for this worker pool.
7781	PoolArgs googleapi.RawMessage `json:"poolArgs,omitempty"`
7782
7783	// SdkHarnessContainerImages: Set of SDK harness containers needed to
7784	// execute this pipeline. This will only be set in the Fn API path. For
7785	// non-cross-language pipelines this should have only one entry.
7786	// Cross-language pipelines will have two or more entries.
7787	SdkHarnessContainerImages []*SdkHarnessContainerImage `json:"sdkHarnessContainerImages,omitempty"`
7788
7789	// Subnetwork: Subnetwork to which VMs will be assigned, if desired.
7790	// Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
7791	Subnetwork string `json:"subnetwork,omitempty"`
7792
7793	// TaskrunnerSettings: Settings passed through to Google Compute Engine
7794	// workers when using the standard Dataflow task runner. Users should
7795	// ignore this field.
7796	TaskrunnerSettings *TaskRunnerSettings `json:"taskrunnerSettings,omitempty"`
7797
7798	// TeardownPolicy: Sets the policy for determining when to turndown
7799	// worker pool. Allowed values are: `TEARDOWN_ALWAYS`,
7800	// `TEARDOWN_ON_SUCCESS`, and `TEARDOWN_NEVER`. `TEARDOWN_ALWAYS` means
7801	// workers are always torn down regardless of whether the job succeeds.
7802	// `TEARDOWN_ON_SUCCESS` means workers are torn down if the job
7803	// succeeds. `TEARDOWN_NEVER` means the workers are never torn down. If
7804	// the workers are not torn down by the service, they will continue to
7805	// run and use Google Compute Engine VM resources in the user's project
7806	// until they are explicitly terminated by the user. Because of this,
7807	// Google recommends using the `TEARDOWN_ALWAYS` policy except for
7808	// small, manually supervised test jobs. If unknown or unspecified, the
7809	// service will attempt to choose a reasonable default.
7810	//
7811	// Possible values:
7812	//   "TEARDOWN_POLICY_UNKNOWN" - The teardown policy isn't specified, or
7813	// is unknown.
7814	//   "TEARDOWN_ALWAYS" - Always teardown the resource.
7815	//   "TEARDOWN_ON_SUCCESS" - Teardown the resource on success. This is
7816	// useful for debugging failures.
7817	//   "TEARDOWN_NEVER" - Never teardown the resource. This is useful for
7818	// debugging and development.
7819	TeardownPolicy string `json:"teardownPolicy,omitempty"`
7820
7821	// WorkerHarnessContainerImage: Required. Docker container image that
7822	// executes the Cloud Dataflow worker harness, residing in Google
7823	// Container Registry. Deprecated for the Fn API path. Use
7824	// sdk_harness_container_images instead.
7825	WorkerHarnessContainerImage string `json:"workerHarnessContainerImage,omitempty"`
7826
7827	// Zone: Zone to run the worker pools in. If empty or unspecified, the
7828	// service will attempt to choose a reasonable default.
7829	Zone string `json:"zone,omitempty"`
7830
7831	// ForceSendFields is a list of field names (e.g. "AutoscalingSettings")
7832	// to unconditionally include in API requests. By default, fields with
7833	// empty or default values are omitted from API requests. However, any
7834	// non-pointer, non-interface field appearing in ForceSendFields will be
7835	// sent to the server regardless of whether the field is empty or not.
7836	// This may be used to include empty fields in Patch requests.
7837	ForceSendFields []string `json:"-"`
7838
7839	// NullFields is a list of field names (e.g. "AutoscalingSettings") to
7840	// include in API requests with the JSON null value. By default, fields
7841	// with empty values are omitted from API requests. However, any field
7842	// with an empty value appearing in NullFields will be sent to the
7843	// server as null. It is an error if a field in this list has a
7844	// non-empty value. This may be used to include null fields in Patch
7845	// requests.
7846	NullFields []string `json:"-"`
7847}
7848
7849func (s *WorkerPool) MarshalJSON() ([]byte, error) {
7850	type NoMethod WorkerPool
7851	raw := NoMethod(*s)
7852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7853}
7854
7855// WorkerSettings: Provides data to pass through to the worker harness.
7856type WorkerSettings struct {
7857	// BaseUrl: The base URL for accessing Google Cloud APIs. When workers
7858	// access Google Cloud APIs, they logically do so via relative URLs. If
7859	// this field is specified, it supplies the base URL to use for
7860	// resolving these relative URLs. The normative algorithm used is
7861	// defined by RFC 1808, "Relative Uniform Resource Locators". If not
7862	// specified, the default value is "http://www.googleapis.com/"
7863	BaseUrl string `json:"baseUrl,omitempty"`
7864
7865	// ReportingEnabled: Whether to send work progress updates to the
7866	// service.
7867	ReportingEnabled bool `json:"reportingEnabled,omitempty"`
7868
7869	// ServicePath: The Cloud Dataflow service path relative to the root
7870	// URL, for example, "dataflow/v1b3/projects".
7871	ServicePath string `json:"servicePath,omitempty"`
7872
7873	// ShuffleServicePath: The Shuffle service path relative to the root
7874	// URL, for example, "shuffle/v1beta1".
7875	ShuffleServicePath string `json:"shuffleServicePath,omitempty"`
7876
7877	// TempStoragePrefix: The prefix of the resources the system should use
7878	// for temporary storage. The supported resource type is: Google Cloud
7879	// Storage: storage.googleapis.com/{bucket}/{object}
7880	// bucket.storage.googleapis.com/{object}
7881	TempStoragePrefix string `json:"tempStoragePrefix,omitempty"`
7882
7883	// WorkerId: The ID of the worker running this pipeline.
7884	WorkerId string `json:"workerId,omitempty"`
7885
7886	// ForceSendFields is a list of field names (e.g. "BaseUrl") to
7887	// unconditionally include in API requests. By default, fields with
7888	// empty or default values are omitted from API requests. However, any
7889	// non-pointer, non-interface field appearing in ForceSendFields will be
7890	// sent to the server regardless of whether the field is empty or not.
7891	// This may be used to include empty fields in Patch requests.
7892	ForceSendFields []string `json:"-"`
7893
7894	// NullFields is a list of field names (e.g. "BaseUrl") to include in
7895	// API requests with the JSON null value. By default, fields with empty
7896	// values are omitted from API requests. However, any field with an
7897	// empty value appearing in NullFields will be sent to the server as
7898	// null. It is an error if a field in this list has a non-empty value.
7899	// This may be used to include null fields in Patch requests.
7900	NullFields []string `json:"-"`
7901}
7902
7903func (s *WorkerSettings) MarshalJSON() ([]byte, error) {
7904	type NoMethod WorkerSettings
7905	raw := NoMethod(*s)
7906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7907}
7908
7909// WorkerShutdownNotice: Shutdown notification from workers. This is to
7910// be sent by the shutdown script of the worker VM so that the backend
7911// knows that the VM is being shut down.
7912type WorkerShutdownNotice struct {
7913	// Reason: The reason for the worker shutdown. Current possible values
7914	// are: "UNKNOWN": shutdown reason is unknown. "PREEMPTION": shutdown
7915	// reason is preemption. Other possible reasons may be added in the
7916	// future.
7917	Reason string `json:"reason,omitempty"`
7918
7919	// ForceSendFields is a list of field names (e.g. "Reason") to
7920	// unconditionally include in API requests. By default, fields with
7921	// empty or default values are omitted from API requests. However, any
7922	// non-pointer, non-interface field appearing in ForceSendFields will be
7923	// sent to the server regardless of whether the field is empty or not.
7924	// This may be used to include empty fields in Patch requests.
7925	ForceSendFields []string `json:"-"`
7926
7927	// NullFields is a list of field names (e.g. "Reason") to include in API
7928	// requests with the JSON null value. By default, fields with empty
7929	// values are omitted from API requests. However, any field with an
7930	// empty value appearing in NullFields will be sent to the server as
7931	// null. It is an error if a field in this list has a non-empty value.
7932	// This may be used to include null fields in Patch requests.
7933	NullFields []string `json:"-"`
7934}
7935
7936func (s *WorkerShutdownNotice) MarshalJSON() ([]byte, error) {
7937	type NoMethod WorkerShutdownNotice
7938	raw := NoMethod(*s)
7939	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7940}
7941
7942// WorkerShutdownNoticeResponse: Service-side response to WorkerMessage
7943// issuing shutdown notice.
7944type WorkerShutdownNoticeResponse struct {
7945}
7946
7947// WriteInstruction: An instruction that writes records. Takes one
7948// input, produces no outputs.
7949type WriteInstruction struct {
7950	// Input: The input.
7951	Input *InstructionInput `json:"input,omitempty"`
7952
7953	// Sink: The sink to write to.
7954	Sink *Sink `json:"sink,omitempty"`
7955
7956	// ForceSendFields is a list of field names (e.g. "Input") to
7957	// unconditionally include in API requests. By default, fields with
7958	// empty or default values are omitted from API requests. However, any
7959	// non-pointer, non-interface field appearing in ForceSendFields will be
7960	// sent to the server regardless of whether the field is empty or not.
7961	// This may be used to include empty fields in Patch requests.
7962	ForceSendFields []string `json:"-"`
7963
7964	// NullFields is a list of field names (e.g. "Input") to include in API
7965	// requests with the JSON null value. By default, fields with empty
7966	// values are omitted from API requests. However, any field with an
7967	// empty value appearing in NullFields will be sent to the server as
7968	// null. It is an error if a field in this list has a non-empty value.
7969	// This may be used to include null fields in Patch requests.
7970	NullFields []string `json:"-"`
7971}
7972
7973func (s *WriteInstruction) MarshalJSON() ([]byte, error) {
7974	type NoMethod WriteInstruction
7975	raw := NoMethod(*s)
7976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7977}
7978
7979// method id "dataflow.projects.deleteSnapshots":
7980
7981type ProjectsDeleteSnapshotsCall struct {
7982	s          *Service
7983	projectId  string
7984	urlParams_ gensupport.URLParams
7985	ctx_       context.Context
7986	header_    http.Header
7987}
7988
7989// DeleteSnapshots: Deletes a snapshot.
7990//
7991// - projectId: The ID of the Cloud Platform project that the snapshot
7992//   belongs to.
7993func (r *ProjectsService) DeleteSnapshots(projectId string) *ProjectsDeleteSnapshotsCall {
7994	c := &ProjectsDeleteSnapshotsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7995	c.projectId = projectId
7996	return c
7997}
7998
7999// Location sets the optional parameter "location": The location that
8000// contains this snapshot.
8001func (c *ProjectsDeleteSnapshotsCall) Location(location string) *ProjectsDeleteSnapshotsCall {
8002	c.urlParams_.Set("location", location)
8003	return c
8004}
8005
8006// SnapshotId sets the optional parameter "snapshotId": The ID of the
8007// snapshot.
8008func (c *ProjectsDeleteSnapshotsCall) SnapshotId(snapshotId string) *ProjectsDeleteSnapshotsCall {
8009	c.urlParams_.Set("snapshotId", snapshotId)
8010	return c
8011}
8012
8013// Fields allows partial responses to be retrieved. See
8014// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8015// for more information.
8016func (c *ProjectsDeleteSnapshotsCall) Fields(s ...googleapi.Field) *ProjectsDeleteSnapshotsCall {
8017	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8018	return c
8019}
8020
8021// Context sets the context to be used in this call's Do method. Any
8022// pending HTTP request will be aborted if the provided context is
8023// canceled.
8024func (c *ProjectsDeleteSnapshotsCall) Context(ctx context.Context) *ProjectsDeleteSnapshotsCall {
8025	c.ctx_ = ctx
8026	return c
8027}
8028
8029// Header returns an http.Header that can be modified by the caller to
8030// add HTTP headers to the request.
8031func (c *ProjectsDeleteSnapshotsCall) Header() http.Header {
8032	if c.header_ == nil {
8033		c.header_ = make(http.Header)
8034	}
8035	return c.header_
8036}
8037
8038func (c *ProjectsDeleteSnapshotsCall) doRequest(alt string) (*http.Response, error) {
8039	reqHeaders := make(http.Header)
8040	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
8041	for k, v := range c.header_ {
8042		reqHeaders[k] = v
8043	}
8044	reqHeaders.Set("User-Agent", c.s.userAgent())
8045	var body io.Reader = nil
8046	c.urlParams_.Set("alt", alt)
8047	c.urlParams_.Set("prettyPrint", "false")
8048	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/snapshots")
8049	urls += "?" + c.urlParams_.Encode()
8050	req, err := http.NewRequest("DELETE", urls, body)
8051	if err != nil {
8052		return nil, err
8053	}
8054	req.Header = reqHeaders
8055	googleapi.Expand(req.URL, map[string]string{
8056		"projectId": c.projectId,
8057	})
8058	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8059}
8060
8061// Do executes the "dataflow.projects.deleteSnapshots" call.
8062// Exactly one of *DeleteSnapshotResponse or error will be non-nil. Any
8063// non-2xx status code is an error. Response headers are in either
8064// *DeleteSnapshotResponse.ServerResponse.Header or (if a response was
8065// returned at all) in error.(*googleapi.Error).Header. Use
8066// googleapi.IsNotModified to check whether the returned error was
8067// because http.StatusNotModified was returned.
8068func (c *ProjectsDeleteSnapshotsCall) Do(opts ...googleapi.CallOption) (*DeleteSnapshotResponse, error) {
8069	gensupport.SetOptions(c.urlParams_, opts...)
8070	res, err := c.doRequest("json")
8071	if res != nil && res.StatusCode == http.StatusNotModified {
8072		if res.Body != nil {
8073			res.Body.Close()
8074		}
8075		return nil, &googleapi.Error{
8076			Code:   res.StatusCode,
8077			Header: res.Header,
8078		}
8079	}
8080	if err != nil {
8081		return nil, err
8082	}
8083	defer googleapi.CloseBody(res)
8084	if err := googleapi.CheckResponse(res); err != nil {
8085		return nil, err
8086	}
8087	ret := &DeleteSnapshotResponse{
8088		ServerResponse: googleapi.ServerResponse{
8089			Header:         res.Header,
8090			HTTPStatusCode: res.StatusCode,
8091		},
8092	}
8093	target := &ret
8094	if err := gensupport.DecodeResponse(target, res); err != nil {
8095		return nil, err
8096	}
8097	return ret, nil
8098	// {
8099	//   "description": "Deletes a snapshot.",
8100	//   "flatPath": "v1b3/projects/{projectId}/snapshots",
8101	//   "httpMethod": "DELETE",
8102	//   "id": "dataflow.projects.deleteSnapshots",
8103	//   "parameterOrder": [
8104	//     "projectId"
8105	//   ],
8106	//   "parameters": {
8107	//     "location": {
8108	//       "description": "The location that contains this snapshot.",
8109	//       "location": "query",
8110	//       "type": "string"
8111	//     },
8112	//     "projectId": {
8113	//       "description": "The ID of the Cloud Platform project that the snapshot belongs to.",
8114	//       "location": "path",
8115	//       "required": true,
8116	//       "type": "string"
8117	//     },
8118	//     "snapshotId": {
8119	//       "description": "The ID of the snapshot.",
8120	//       "location": "query",
8121	//       "type": "string"
8122	//     }
8123	//   },
8124	//   "path": "v1b3/projects/{projectId}/snapshots",
8125	//   "response": {
8126	//     "$ref": "DeleteSnapshotResponse"
8127	//   },
8128	//   "scopes": [
8129	//     "https://www.googleapis.com/auth/cloud-platform",
8130	//     "https://www.googleapis.com/auth/compute",
8131	//     "https://www.googleapis.com/auth/compute.readonly",
8132	//     "https://www.googleapis.com/auth/userinfo.email"
8133	//   ]
8134	// }
8135
8136}
8137
8138// method id "dataflow.projects.workerMessages":
8139
8140type ProjectsWorkerMessagesCall struct {
8141	s                         *Service
8142	projectId                 string
8143	sendworkermessagesrequest *SendWorkerMessagesRequest
8144	urlParams_                gensupport.URLParams
8145	ctx_                      context.Context
8146	header_                   http.Header
8147}
8148
8149// WorkerMessages: Send a worker_message to the service.
8150//
8151// - projectId: The project to send the WorkerMessages to.
8152func (r *ProjectsService) WorkerMessages(projectId string, sendworkermessagesrequest *SendWorkerMessagesRequest) *ProjectsWorkerMessagesCall {
8153	c := &ProjectsWorkerMessagesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8154	c.projectId = projectId
8155	c.sendworkermessagesrequest = sendworkermessagesrequest
8156	return c
8157}
8158
8159// Fields allows partial responses to be retrieved. See
8160// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8161// for more information.
8162func (c *ProjectsWorkerMessagesCall) Fields(s ...googleapi.Field) *ProjectsWorkerMessagesCall {
8163	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8164	return c
8165}
8166
8167// Context sets the context to be used in this call's Do method. Any
8168// pending HTTP request will be aborted if the provided context is
8169// canceled.
8170func (c *ProjectsWorkerMessagesCall) Context(ctx context.Context) *ProjectsWorkerMessagesCall {
8171	c.ctx_ = ctx
8172	return c
8173}
8174
8175// Header returns an http.Header that can be modified by the caller to
8176// add HTTP headers to the request.
8177func (c *ProjectsWorkerMessagesCall) Header() http.Header {
8178	if c.header_ == nil {
8179		c.header_ = make(http.Header)
8180	}
8181	return c.header_
8182}
8183
8184func (c *ProjectsWorkerMessagesCall) doRequest(alt string) (*http.Response, error) {
8185	reqHeaders := make(http.Header)
8186	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
8187	for k, v := range c.header_ {
8188		reqHeaders[k] = v
8189	}
8190	reqHeaders.Set("User-Agent", c.s.userAgent())
8191	var body io.Reader = nil
8192	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sendworkermessagesrequest)
8193	if err != nil {
8194		return nil, err
8195	}
8196	reqHeaders.Set("Content-Type", "application/json")
8197	c.urlParams_.Set("alt", alt)
8198	c.urlParams_.Set("prettyPrint", "false")
8199	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/WorkerMessages")
8200	urls += "?" + c.urlParams_.Encode()
8201	req, err := http.NewRequest("POST", urls, body)
8202	if err != nil {
8203		return nil, err
8204	}
8205	req.Header = reqHeaders
8206	googleapi.Expand(req.URL, map[string]string{
8207		"projectId": c.projectId,
8208	})
8209	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8210}
8211
8212// Do executes the "dataflow.projects.workerMessages" call.
8213// Exactly one of *SendWorkerMessagesResponse or error will be non-nil.
8214// Any non-2xx status code is an error. Response headers are in either
8215// *SendWorkerMessagesResponse.ServerResponse.Header or (if a response
8216// was returned at all) in error.(*googleapi.Error).Header. Use
8217// googleapi.IsNotModified to check whether the returned error was
8218// because http.StatusNotModified was returned.
8219func (c *ProjectsWorkerMessagesCall) Do(opts ...googleapi.CallOption) (*SendWorkerMessagesResponse, error) {
8220	gensupport.SetOptions(c.urlParams_, opts...)
8221	res, err := c.doRequest("json")
8222	if res != nil && res.StatusCode == http.StatusNotModified {
8223		if res.Body != nil {
8224			res.Body.Close()
8225		}
8226		return nil, &googleapi.Error{
8227			Code:   res.StatusCode,
8228			Header: res.Header,
8229		}
8230	}
8231	if err != nil {
8232		return nil, err
8233	}
8234	defer googleapi.CloseBody(res)
8235	if err := googleapi.CheckResponse(res); err != nil {
8236		return nil, err
8237	}
8238	ret := &SendWorkerMessagesResponse{
8239		ServerResponse: googleapi.ServerResponse{
8240			Header:         res.Header,
8241			HTTPStatusCode: res.StatusCode,
8242		},
8243	}
8244	target := &ret
8245	if err := gensupport.DecodeResponse(target, res); err != nil {
8246		return nil, err
8247	}
8248	return ret, nil
8249	// {
8250	//   "description": "Send a worker_message to the service.",
8251	//   "flatPath": "v1b3/projects/{projectId}/WorkerMessages",
8252	//   "httpMethod": "POST",
8253	//   "id": "dataflow.projects.workerMessages",
8254	//   "parameterOrder": [
8255	//     "projectId"
8256	//   ],
8257	//   "parameters": {
8258	//     "projectId": {
8259	//       "description": "The project to send the WorkerMessages to.",
8260	//       "location": "path",
8261	//       "required": true,
8262	//       "type": "string"
8263	//     }
8264	//   },
8265	//   "path": "v1b3/projects/{projectId}/WorkerMessages",
8266	//   "request": {
8267	//     "$ref": "SendWorkerMessagesRequest"
8268	//   },
8269	//   "response": {
8270	//     "$ref": "SendWorkerMessagesResponse"
8271	//   },
8272	//   "scopes": [
8273	//     "https://www.googleapis.com/auth/cloud-platform",
8274	//     "https://www.googleapis.com/auth/compute",
8275	//     "https://www.googleapis.com/auth/compute.readonly",
8276	//     "https://www.googleapis.com/auth/userinfo.email"
8277	//   ]
8278	// }
8279
8280}
8281
8282// method id "dataflow.projects.jobs.aggregated":
8283
8284type ProjectsJobsAggregatedCall struct {
8285	s            *Service
8286	projectId    string
8287	urlParams_   gensupport.URLParams
8288	ifNoneMatch_ string
8289	ctx_         context.Context
8290	header_      http.Header
8291}
8292
8293// Aggregated: List the jobs of a project across all regions.
8294//
8295// - projectId: The project which owns the jobs.
8296func (r *ProjectsJobsService) Aggregated(projectId string) *ProjectsJobsAggregatedCall {
8297	c := &ProjectsJobsAggregatedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8298	c.projectId = projectId
8299	return c
8300}
8301
8302// Filter sets the optional parameter "filter": The kind of filter to
8303// use.
8304//
8305// Possible values:
8306//   "UNKNOWN" - The filter isn't specified, or is unknown. This returns
8307// all jobs ordered on descending `JobUuid`.
8308//   "ALL" - Returns all running jobs first ordered on creation
8309// timestamp, then returns all terminated jobs ordered on the
8310// termination timestamp.
8311//   "TERMINATED" - Filters the jobs that have a terminated state,
8312// ordered on the termination timestamp. Example terminated states:
8313// `JOB_STATE_STOPPED`, `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.
8314//   "ACTIVE" - Filters the jobs that are running ordered on the
8315// creation timestamp.
8316func (c *ProjectsJobsAggregatedCall) Filter(filter string) *ProjectsJobsAggregatedCall {
8317	c.urlParams_.Set("filter", filter)
8318	return c
8319}
8320
8321// Location sets the optional parameter "location": The [regional
8322// endpoint]
8323// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
8324// that contains this job.
8325func (c *ProjectsJobsAggregatedCall) Location(location string) *ProjectsJobsAggregatedCall {
8326	c.urlParams_.Set("location", location)
8327	return c
8328}
8329
8330// PageSize sets the optional parameter "pageSize": If there are many
8331// jobs, limit response to at most this many. The actual number of jobs
8332// returned will be the lesser of max_responses and an unspecified
8333// server-defined limit.
8334func (c *ProjectsJobsAggregatedCall) PageSize(pageSize int64) *ProjectsJobsAggregatedCall {
8335	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
8336	return c
8337}
8338
8339// PageToken sets the optional parameter "pageToken": Set this to the
8340// 'next_page_token' field of a previous response to request additional
8341// results in a long list.
8342func (c *ProjectsJobsAggregatedCall) PageToken(pageToken string) *ProjectsJobsAggregatedCall {
8343	c.urlParams_.Set("pageToken", pageToken)
8344	return c
8345}
8346
8347// View sets the optional parameter "view": Deprecated. ListJobs always
8348// returns summaries now. Use GetJob for other JobViews.
8349//
8350// Possible values:
8351//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
8352// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
8353// information, and may contain additional information.
8354//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
8355// Job ID, job name, job type, job status, start/end time, and Cloud SDK
8356// version details.
8357//   "JOB_VIEW_ALL" - Request all information available for this job.
8358//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
8359// description data for steps, labels and environment.
8360func (c *ProjectsJobsAggregatedCall) View(view string) *ProjectsJobsAggregatedCall {
8361	c.urlParams_.Set("view", view)
8362	return c
8363}
8364
8365// Fields allows partial responses to be retrieved. See
8366// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8367// for more information.
8368func (c *ProjectsJobsAggregatedCall) Fields(s ...googleapi.Field) *ProjectsJobsAggregatedCall {
8369	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8370	return c
8371}
8372
8373// IfNoneMatch sets the optional parameter which makes the operation
8374// fail if the object's ETag matches the given value. This is useful for
8375// getting updates only after the object has changed since the last
8376// request. Use googleapi.IsNotModified to check whether the response
8377// error from Do is the result of In-None-Match.
8378func (c *ProjectsJobsAggregatedCall) IfNoneMatch(entityTag string) *ProjectsJobsAggregatedCall {
8379	c.ifNoneMatch_ = entityTag
8380	return c
8381}
8382
8383// Context sets the context to be used in this call's Do method. Any
8384// pending HTTP request will be aborted if the provided context is
8385// canceled.
8386func (c *ProjectsJobsAggregatedCall) Context(ctx context.Context) *ProjectsJobsAggregatedCall {
8387	c.ctx_ = ctx
8388	return c
8389}
8390
8391// Header returns an http.Header that can be modified by the caller to
8392// add HTTP headers to the request.
8393func (c *ProjectsJobsAggregatedCall) Header() http.Header {
8394	if c.header_ == nil {
8395		c.header_ = make(http.Header)
8396	}
8397	return c.header_
8398}
8399
8400func (c *ProjectsJobsAggregatedCall) doRequest(alt string) (*http.Response, error) {
8401	reqHeaders := make(http.Header)
8402	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
8403	for k, v := range c.header_ {
8404		reqHeaders[k] = v
8405	}
8406	reqHeaders.Set("User-Agent", c.s.userAgent())
8407	if c.ifNoneMatch_ != "" {
8408		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8409	}
8410	var body io.Reader = nil
8411	c.urlParams_.Set("alt", alt)
8412	c.urlParams_.Set("prettyPrint", "false")
8413	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs:aggregated")
8414	urls += "?" + c.urlParams_.Encode()
8415	req, err := http.NewRequest("GET", urls, body)
8416	if err != nil {
8417		return nil, err
8418	}
8419	req.Header = reqHeaders
8420	googleapi.Expand(req.URL, map[string]string{
8421		"projectId": c.projectId,
8422	})
8423	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8424}
8425
8426// Do executes the "dataflow.projects.jobs.aggregated" call.
8427// Exactly one of *ListJobsResponse or error will be non-nil. Any
8428// non-2xx status code is an error. Response headers are in either
8429// *ListJobsResponse.ServerResponse.Header or (if a response was
8430// returned at all) in error.(*googleapi.Error).Header. Use
8431// googleapi.IsNotModified to check whether the returned error was
8432// because http.StatusNotModified was returned.
8433func (c *ProjectsJobsAggregatedCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
8434	gensupport.SetOptions(c.urlParams_, opts...)
8435	res, err := c.doRequest("json")
8436	if res != nil && res.StatusCode == http.StatusNotModified {
8437		if res.Body != nil {
8438			res.Body.Close()
8439		}
8440		return nil, &googleapi.Error{
8441			Code:   res.StatusCode,
8442			Header: res.Header,
8443		}
8444	}
8445	if err != nil {
8446		return nil, err
8447	}
8448	defer googleapi.CloseBody(res)
8449	if err := googleapi.CheckResponse(res); err != nil {
8450		return nil, err
8451	}
8452	ret := &ListJobsResponse{
8453		ServerResponse: googleapi.ServerResponse{
8454			Header:         res.Header,
8455			HTTPStatusCode: res.StatusCode,
8456		},
8457	}
8458	target := &ret
8459	if err := gensupport.DecodeResponse(target, res); err != nil {
8460		return nil, err
8461	}
8462	return ret, nil
8463	// {
8464	//   "description": "List the jobs of a project across all regions.",
8465	//   "flatPath": "v1b3/projects/{projectId}/jobs:aggregated",
8466	//   "httpMethod": "GET",
8467	//   "id": "dataflow.projects.jobs.aggregated",
8468	//   "parameterOrder": [
8469	//     "projectId"
8470	//   ],
8471	//   "parameters": {
8472	//     "filter": {
8473	//       "description": "The kind of filter to use.",
8474	//       "enum": [
8475	//         "UNKNOWN",
8476	//         "ALL",
8477	//         "TERMINATED",
8478	//         "ACTIVE"
8479	//       ],
8480	//       "enumDescriptions": [
8481	//         "The filter isn't specified, or is unknown. This returns all jobs ordered on descending `JobUuid`.",
8482	//         "Returns all running jobs first ordered on creation timestamp, then returns all terminated jobs ordered on the termination timestamp.",
8483	//         "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.",
8484	//         "Filters the jobs that are running ordered on the creation timestamp."
8485	//       ],
8486	//       "location": "query",
8487	//       "type": "string"
8488	//     },
8489	//     "location": {
8490	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
8491	//       "location": "query",
8492	//       "type": "string"
8493	//     },
8494	//     "pageSize": {
8495	//       "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.",
8496	//       "format": "int32",
8497	//       "location": "query",
8498	//       "type": "integer"
8499	//     },
8500	//     "pageToken": {
8501	//       "description": "Set this to the 'next_page_token' field of a previous response to request additional results in a long list.",
8502	//       "location": "query",
8503	//       "type": "string"
8504	//     },
8505	//     "projectId": {
8506	//       "description": "The project which owns the jobs.",
8507	//       "location": "path",
8508	//       "required": true,
8509	//       "type": "string"
8510	//     },
8511	//     "view": {
8512	//       "description": "Deprecated. ListJobs always returns summaries now. Use GetJob for other JobViews.",
8513	//       "enum": [
8514	//         "JOB_VIEW_UNKNOWN",
8515	//         "JOB_VIEW_SUMMARY",
8516	//         "JOB_VIEW_ALL",
8517	//         "JOB_VIEW_DESCRIPTION"
8518	//       ],
8519	//       "enumDescriptions": [
8520	//         "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.",
8521	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
8522	//         "Request all information available for this job.",
8523	//         "Request summary info and limited job description data for steps, labels and environment."
8524	//       ],
8525	//       "location": "query",
8526	//       "type": "string"
8527	//     }
8528	//   },
8529	//   "path": "v1b3/projects/{projectId}/jobs:aggregated",
8530	//   "response": {
8531	//     "$ref": "ListJobsResponse"
8532	//   },
8533	//   "scopes": [
8534	//     "https://www.googleapis.com/auth/cloud-platform",
8535	//     "https://www.googleapis.com/auth/compute",
8536	//     "https://www.googleapis.com/auth/compute.readonly",
8537	//     "https://www.googleapis.com/auth/userinfo.email"
8538	//   ]
8539	// }
8540
8541}
8542
8543// Pages invokes f for each page of results.
8544// A non-nil error returned from f will halt the iteration.
8545// The provided context supersedes any context provided to the Context method.
8546func (c *ProjectsJobsAggregatedCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
8547	c.ctx_ = ctx
8548	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
8549	for {
8550		x, err := c.Do()
8551		if err != nil {
8552			return err
8553		}
8554		if err := f(x); err != nil {
8555			return err
8556		}
8557		if x.NextPageToken == "" {
8558			return nil
8559		}
8560		c.PageToken(x.NextPageToken)
8561	}
8562}
8563
8564// method id "dataflow.projects.jobs.create":
8565
8566type ProjectsJobsCreateCall struct {
8567	s          *Service
8568	projectId  string
8569	job        *Job
8570	urlParams_ gensupport.URLParams
8571	ctx_       context.Context
8572	header_    http.Header
8573}
8574
8575// Create: Creates a Cloud Dataflow job. To create a job, we recommend
8576// using `projects.locations.jobs.create` with a [regional endpoint]
8577// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
8578// Using `projects.jobs.create` is not recommended, as your job will
8579// always start in `us-central1`.
8580//
8581// - projectId: The ID of the Cloud Platform project that the job
8582//   belongs to.
8583func (r *ProjectsJobsService) Create(projectId string, job *Job) *ProjectsJobsCreateCall {
8584	c := &ProjectsJobsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8585	c.projectId = projectId
8586	c.job = job
8587	return c
8588}
8589
8590// Location sets the optional parameter "location": The [regional
8591// endpoint]
8592// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
8593// that contains this job.
8594func (c *ProjectsJobsCreateCall) Location(location string) *ProjectsJobsCreateCall {
8595	c.urlParams_.Set("location", location)
8596	return c
8597}
8598
8599// ReplaceJobId sets the optional parameter "replaceJobId": Deprecated.
8600// This field is now in the Job message.
8601func (c *ProjectsJobsCreateCall) ReplaceJobId(replaceJobId string) *ProjectsJobsCreateCall {
8602	c.urlParams_.Set("replaceJobId", replaceJobId)
8603	return c
8604}
8605
8606// View sets the optional parameter "view": The level of information
8607// requested in response.
8608//
8609// Possible values:
8610//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
8611// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
8612// information, and may contain additional information.
8613//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
8614// Job ID, job name, job type, job status, start/end time, and Cloud SDK
8615// version details.
8616//   "JOB_VIEW_ALL" - Request all information available for this job.
8617//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
8618// description data for steps, labels and environment.
8619func (c *ProjectsJobsCreateCall) View(view string) *ProjectsJobsCreateCall {
8620	c.urlParams_.Set("view", view)
8621	return c
8622}
8623
8624// Fields allows partial responses to be retrieved. See
8625// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8626// for more information.
8627func (c *ProjectsJobsCreateCall) Fields(s ...googleapi.Field) *ProjectsJobsCreateCall {
8628	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8629	return c
8630}
8631
8632// Context sets the context to be used in this call's Do method. Any
8633// pending HTTP request will be aborted if the provided context is
8634// canceled.
8635func (c *ProjectsJobsCreateCall) Context(ctx context.Context) *ProjectsJobsCreateCall {
8636	c.ctx_ = ctx
8637	return c
8638}
8639
8640// Header returns an http.Header that can be modified by the caller to
8641// add HTTP headers to the request.
8642func (c *ProjectsJobsCreateCall) Header() http.Header {
8643	if c.header_ == nil {
8644		c.header_ = make(http.Header)
8645	}
8646	return c.header_
8647}
8648
8649func (c *ProjectsJobsCreateCall) doRequest(alt string) (*http.Response, error) {
8650	reqHeaders := make(http.Header)
8651	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
8652	for k, v := range c.header_ {
8653		reqHeaders[k] = v
8654	}
8655	reqHeaders.Set("User-Agent", c.s.userAgent())
8656	var body io.Reader = nil
8657	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
8658	if err != nil {
8659		return nil, err
8660	}
8661	reqHeaders.Set("Content-Type", "application/json")
8662	c.urlParams_.Set("alt", alt)
8663	c.urlParams_.Set("prettyPrint", "false")
8664	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs")
8665	urls += "?" + c.urlParams_.Encode()
8666	req, err := http.NewRequest("POST", urls, body)
8667	if err != nil {
8668		return nil, err
8669	}
8670	req.Header = reqHeaders
8671	googleapi.Expand(req.URL, map[string]string{
8672		"projectId": c.projectId,
8673	})
8674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8675}
8676
8677// Do executes the "dataflow.projects.jobs.create" call.
8678// Exactly one of *Job or error will be non-nil. Any non-2xx status code
8679// is an error. Response headers are in either
8680// *Job.ServerResponse.Header or (if a response was returned at all) in
8681// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
8682// whether the returned error was because http.StatusNotModified was
8683// returned.
8684func (c *ProjectsJobsCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
8685	gensupport.SetOptions(c.urlParams_, opts...)
8686	res, err := c.doRequest("json")
8687	if res != nil && res.StatusCode == http.StatusNotModified {
8688		if res.Body != nil {
8689			res.Body.Close()
8690		}
8691		return nil, &googleapi.Error{
8692			Code:   res.StatusCode,
8693			Header: res.Header,
8694		}
8695	}
8696	if err != nil {
8697		return nil, err
8698	}
8699	defer googleapi.CloseBody(res)
8700	if err := googleapi.CheckResponse(res); err != nil {
8701		return nil, err
8702	}
8703	ret := &Job{
8704		ServerResponse: googleapi.ServerResponse{
8705			Header:         res.Header,
8706			HTTPStatusCode: res.StatusCode,
8707		},
8708	}
8709	target := &ret
8710	if err := gensupport.DecodeResponse(target, res); err != nil {
8711		return nil, err
8712	}
8713	return ret, nil
8714	// {
8715	//   "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`.",
8716	//   "flatPath": "v1b3/projects/{projectId}/jobs",
8717	//   "httpMethod": "POST",
8718	//   "id": "dataflow.projects.jobs.create",
8719	//   "parameterOrder": [
8720	//     "projectId"
8721	//   ],
8722	//   "parameters": {
8723	//     "location": {
8724	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
8725	//       "location": "query",
8726	//       "type": "string"
8727	//     },
8728	//     "projectId": {
8729	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
8730	//       "location": "path",
8731	//       "required": true,
8732	//       "type": "string"
8733	//     },
8734	//     "replaceJobId": {
8735	//       "description": "Deprecated. This field is now in the Job message.",
8736	//       "location": "query",
8737	//       "type": "string"
8738	//     },
8739	//     "view": {
8740	//       "description": "The level of information requested in response.",
8741	//       "enum": [
8742	//         "JOB_VIEW_UNKNOWN",
8743	//         "JOB_VIEW_SUMMARY",
8744	//         "JOB_VIEW_ALL",
8745	//         "JOB_VIEW_DESCRIPTION"
8746	//       ],
8747	//       "enumDescriptions": [
8748	//         "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.",
8749	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
8750	//         "Request all information available for this job.",
8751	//         "Request summary info and limited job description data for steps, labels and environment."
8752	//       ],
8753	//       "location": "query",
8754	//       "type": "string"
8755	//     }
8756	//   },
8757	//   "path": "v1b3/projects/{projectId}/jobs",
8758	//   "request": {
8759	//     "$ref": "Job"
8760	//   },
8761	//   "response": {
8762	//     "$ref": "Job"
8763	//   },
8764	//   "scopes": [
8765	//     "https://www.googleapis.com/auth/cloud-platform",
8766	//     "https://www.googleapis.com/auth/compute",
8767	//     "https://www.googleapis.com/auth/compute.readonly",
8768	//     "https://www.googleapis.com/auth/userinfo.email"
8769	//   ]
8770	// }
8771
8772}
8773
8774// method id "dataflow.projects.jobs.get":
8775
8776type ProjectsJobsGetCall struct {
8777	s            *Service
8778	projectId    string
8779	jobId        string
8780	urlParams_   gensupport.URLParams
8781	ifNoneMatch_ string
8782	ctx_         context.Context
8783	header_      http.Header
8784}
8785
8786// Get: Gets the state of the specified Cloud Dataflow job. To get the
8787// state of a job, we recommend using `projects.locations.jobs.get` with
8788// a [regional endpoint]
8789// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
8790// Using `projects.jobs.get` is not recommended, as you can only get the
8791// state of jobs that are running in `us-central1`.
8792//
8793// - jobId: The job ID.
8794// - projectId: The ID of the Cloud Platform project that the job
8795//   belongs to.
8796func (r *ProjectsJobsService) Get(projectId string, jobId string) *ProjectsJobsGetCall {
8797	c := &ProjectsJobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8798	c.projectId = projectId
8799	c.jobId = jobId
8800	return c
8801}
8802
8803// Location sets the optional parameter "location": The [regional
8804// endpoint]
8805// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
8806// that contains this job.
8807func (c *ProjectsJobsGetCall) Location(location string) *ProjectsJobsGetCall {
8808	c.urlParams_.Set("location", location)
8809	return c
8810}
8811
8812// View sets the optional parameter "view": The level of information
8813// requested in response.
8814//
8815// Possible values:
8816//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
8817// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
8818// information, and may contain additional information.
8819//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
8820// Job ID, job name, job type, job status, start/end time, and Cloud SDK
8821// version details.
8822//   "JOB_VIEW_ALL" - Request all information available for this job.
8823//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
8824// description data for steps, labels and environment.
8825func (c *ProjectsJobsGetCall) View(view string) *ProjectsJobsGetCall {
8826	c.urlParams_.Set("view", view)
8827	return c
8828}
8829
8830// Fields allows partial responses to be retrieved. See
8831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8832// for more information.
8833func (c *ProjectsJobsGetCall) Fields(s ...googleapi.Field) *ProjectsJobsGetCall {
8834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8835	return c
8836}
8837
8838// IfNoneMatch sets the optional parameter which makes the operation
8839// fail if the object's ETag matches the given value. This is useful for
8840// getting updates only after the object has changed since the last
8841// request. Use googleapi.IsNotModified to check whether the response
8842// error from Do is the result of In-None-Match.
8843func (c *ProjectsJobsGetCall) IfNoneMatch(entityTag string) *ProjectsJobsGetCall {
8844	c.ifNoneMatch_ = entityTag
8845	return c
8846}
8847
8848// Context sets the context to be used in this call's Do method. Any
8849// pending HTTP request will be aborted if the provided context is
8850// canceled.
8851func (c *ProjectsJobsGetCall) Context(ctx context.Context) *ProjectsJobsGetCall {
8852	c.ctx_ = ctx
8853	return c
8854}
8855
8856// Header returns an http.Header that can be modified by the caller to
8857// add HTTP headers to the request.
8858func (c *ProjectsJobsGetCall) Header() http.Header {
8859	if c.header_ == nil {
8860		c.header_ = make(http.Header)
8861	}
8862	return c.header_
8863}
8864
8865func (c *ProjectsJobsGetCall) doRequest(alt string) (*http.Response, error) {
8866	reqHeaders := make(http.Header)
8867	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
8868	for k, v := range c.header_ {
8869		reqHeaders[k] = v
8870	}
8871	reqHeaders.Set("User-Agent", c.s.userAgent())
8872	if c.ifNoneMatch_ != "" {
8873		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8874	}
8875	var body io.Reader = nil
8876	c.urlParams_.Set("alt", alt)
8877	c.urlParams_.Set("prettyPrint", "false")
8878	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}")
8879	urls += "?" + c.urlParams_.Encode()
8880	req, err := http.NewRequest("GET", urls, body)
8881	if err != nil {
8882		return nil, err
8883	}
8884	req.Header = reqHeaders
8885	googleapi.Expand(req.URL, map[string]string{
8886		"projectId": c.projectId,
8887		"jobId":     c.jobId,
8888	})
8889	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8890}
8891
8892// Do executes the "dataflow.projects.jobs.get" call.
8893// Exactly one of *Job or error will be non-nil. Any non-2xx status code
8894// is an error. Response headers are in either
8895// *Job.ServerResponse.Header or (if a response was returned at all) in
8896// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
8897// whether the returned error was because http.StatusNotModified was
8898// returned.
8899func (c *ProjectsJobsGetCall) Do(opts ...googleapi.CallOption) (*Job, error) {
8900	gensupport.SetOptions(c.urlParams_, opts...)
8901	res, err := c.doRequest("json")
8902	if res != nil && res.StatusCode == http.StatusNotModified {
8903		if res.Body != nil {
8904			res.Body.Close()
8905		}
8906		return nil, &googleapi.Error{
8907			Code:   res.StatusCode,
8908			Header: res.Header,
8909		}
8910	}
8911	if err != nil {
8912		return nil, err
8913	}
8914	defer googleapi.CloseBody(res)
8915	if err := googleapi.CheckResponse(res); err != nil {
8916		return nil, err
8917	}
8918	ret := &Job{
8919		ServerResponse: googleapi.ServerResponse{
8920			Header:         res.Header,
8921			HTTPStatusCode: res.StatusCode,
8922		},
8923	}
8924	target := &ret
8925	if err := gensupport.DecodeResponse(target, res); err != nil {
8926		return nil, err
8927	}
8928	return ret, nil
8929	// {
8930	//   "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`.",
8931	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}",
8932	//   "httpMethod": "GET",
8933	//   "id": "dataflow.projects.jobs.get",
8934	//   "parameterOrder": [
8935	//     "projectId",
8936	//     "jobId"
8937	//   ],
8938	//   "parameters": {
8939	//     "jobId": {
8940	//       "description": "The job ID.",
8941	//       "location": "path",
8942	//       "required": true,
8943	//       "type": "string"
8944	//     },
8945	//     "location": {
8946	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
8947	//       "location": "query",
8948	//       "type": "string"
8949	//     },
8950	//     "projectId": {
8951	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
8952	//       "location": "path",
8953	//       "required": true,
8954	//       "type": "string"
8955	//     },
8956	//     "view": {
8957	//       "description": "The level of information requested in response.",
8958	//       "enum": [
8959	//         "JOB_VIEW_UNKNOWN",
8960	//         "JOB_VIEW_SUMMARY",
8961	//         "JOB_VIEW_ALL",
8962	//         "JOB_VIEW_DESCRIPTION"
8963	//       ],
8964	//       "enumDescriptions": [
8965	//         "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.",
8966	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
8967	//         "Request all information available for this job.",
8968	//         "Request summary info and limited job description data for steps, labels and environment."
8969	//       ],
8970	//       "location": "query",
8971	//       "type": "string"
8972	//     }
8973	//   },
8974	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}",
8975	//   "response": {
8976	//     "$ref": "Job"
8977	//   },
8978	//   "scopes": [
8979	//     "https://www.googleapis.com/auth/cloud-platform",
8980	//     "https://www.googleapis.com/auth/compute",
8981	//     "https://www.googleapis.com/auth/compute.readonly",
8982	//     "https://www.googleapis.com/auth/userinfo.email"
8983	//   ]
8984	// }
8985
8986}
8987
8988// method id "dataflow.projects.jobs.getMetrics":
8989
8990type ProjectsJobsGetMetricsCall struct {
8991	s            *Service
8992	projectId    string
8993	jobId        string
8994	urlParams_   gensupport.URLParams
8995	ifNoneMatch_ string
8996	ctx_         context.Context
8997	header_      http.Header
8998}
8999
9000// GetMetrics: Request the job status. To request the status of a job,
9001// we recommend using `projects.locations.jobs.getMetrics` with a
9002// [regional endpoint]
9003// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
9004// Using `projects.jobs.getMetrics` is not recommended, as you can only
9005// request the status of jobs that are running in `us-central1`.
9006//
9007// - jobId: The job to get metrics for.
9008// - projectId: A project id.
9009func (r *ProjectsJobsService) GetMetrics(projectId string, jobId string) *ProjectsJobsGetMetricsCall {
9010	c := &ProjectsJobsGetMetricsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9011	c.projectId = projectId
9012	c.jobId = jobId
9013	return c
9014}
9015
9016// Location sets the optional parameter "location": The [regional
9017// endpoint]
9018// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
9019// that contains the job specified by job_id.
9020func (c *ProjectsJobsGetMetricsCall) Location(location string) *ProjectsJobsGetMetricsCall {
9021	c.urlParams_.Set("location", location)
9022	return c
9023}
9024
9025// StartTime sets the optional parameter "startTime": Return only metric
9026// data that has changed since this time. Default is to return all
9027// information about all metrics for the job.
9028func (c *ProjectsJobsGetMetricsCall) StartTime(startTime string) *ProjectsJobsGetMetricsCall {
9029	c.urlParams_.Set("startTime", startTime)
9030	return c
9031}
9032
9033// Fields allows partial responses to be retrieved. See
9034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9035// for more information.
9036func (c *ProjectsJobsGetMetricsCall) Fields(s ...googleapi.Field) *ProjectsJobsGetMetricsCall {
9037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9038	return c
9039}
9040
9041// IfNoneMatch sets the optional parameter which makes the operation
9042// fail if the object's ETag matches the given value. This is useful for
9043// getting updates only after the object has changed since the last
9044// request. Use googleapi.IsNotModified to check whether the response
9045// error from Do is the result of In-None-Match.
9046func (c *ProjectsJobsGetMetricsCall) IfNoneMatch(entityTag string) *ProjectsJobsGetMetricsCall {
9047	c.ifNoneMatch_ = entityTag
9048	return c
9049}
9050
9051// Context sets the context to be used in this call's Do method. Any
9052// pending HTTP request will be aborted if the provided context is
9053// canceled.
9054func (c *ProjectsJobsGetMetricsCall) Context(ctx context.Context) *ProjectsJobsGetMetricsCall {
9055	c.ctx_ = ctx
9056	return c
9057}
9058
9059// Header returns an http.Header that can be modified by the caller to
9060// add HTTP headers to the request.
9061func (c *ProjectsJobsGetMetricsCall) Header() http.Header {
9062	if c.header_ == nil {
9063		c.header_ = make(http.Header)
9064	}
9065	return c.header_
9066}
9067
9068func (c *ProjectsJobsGetMetricsCall) doRequest(alt string) (*http.Response, error) {
9069	reqHeaders := make(http.Header)
9070	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
9071	for k, v := range c.header_ {
9072		reqHeaders[k] = v
9073	}
9074	reqHeaders.Set("User-Agent", c.s.userAgent())
9075	if c.ifNoneMatch_ != "" {
9076		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9077	}
9078	var body io.Reader = nil
9079	c.urlParams_.Set("alt", alt)
9080	c.urlParams_.Set("prettyPrint", "false")
9081	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/metrics")
9082	urls += "?" + c.urlParams_.Encode()
9083	req, err := http.NewRequest("GET", urls, body)
9084	if err != nil {
9085		return nil, err
9086	}
9087	req.Header = reqHeaders
9088	googleapi.Expand(req.URL, map[string]string{
9089		"projectId": c.projectId,
9090		"jobId":     c.jobId,
9091	})
9092	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9093}
9094
9095// Do executes the "dataflow.projects.jobs.getMetrics" call.
9096// Exactly one of *JobMetrics or error will be non-nil. Any non-2xx
9097// status code is an error. Response headers are in either
9098// *JobMetrics.ServerResponse.Header or (if a response was returned at
9099// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9100// to check whether the returned error was because
9101// http.StatusNotModified was returned.
9102func (c *ProjectsJobsGetMetricsCall) Do(opts ...googleapi.CallOption) (*JobMetrics, error) {
9103	gensupport.SetOptions(c.urlParams_, opts...)
9104	res, err := c.doRequest("json")
9105	if res != nil && res.StatusCode == http.StatusNotModified {
9106		if res.Body != nil {
9107			res.Body.Close()
9108		}
9109		return nil, &googleapi.Error{
9110			Code:   res.StatusCode,
9111			Header: res.Header,
9112		}
9113	}
9114	if err != nil {
9115		return nil, err
9116	}
9117	defer googleapi.CloseBody(res)
9118	if err := googleapi.CheckResponse(res); err != nil {
9119		return nil, err
9120	}
9121	ret := &JobMetrics{
9122		ServerResponse: googleapi.ServerResponse{
9123			Header:         res.Header,
9124			HTTPStatusCode: res.StatusCode,
9125		},
9126	}
9127	target := &ret
9128	if err := gensupport.DecodeResponse(target, res); err != nil {
9129		return nil, err
9130	}
9131	return ret, nil
9132	// {
9133	//   "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`.",
9134	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/metrics",
9135	//   "httpMethod": "GET",
9136	//   "id": "dataflow.projects.jobs.getMetrics",
9137	//   "parameterOrder": [
9138	//     "projectId",
9139	//     "jobId"
9140	//   ],
9141	//   "parameters": {
9142	//     "jobId": {
9143	//       "description": "The job to get metrics for.",
9144	//       "location": "path",
9145	//       "required": true,
9146	//       "type": "string"
9147	//     },
9148	//     "location": {
9149	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
9150	//       "location": "query",
9151	//       "type": "string"
9152	//     },
9153	//     "projectId": {
9154	//       "description": "A project id.",
9155	//       "location": "path",
9156	//       "required": true,
9157	//       "type": "string"
9158	//     },
9159	//     "startTime": {
9160	//       "description": "Return only metric data that has changed since this time. Default is to return all information about all metrics for the job.",
9161	//       "format": "google-datetime",
9162	//       "location": "query",
9163	//       "type": "string"
9164	//     }
9165	//   },
9166	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/metrics",
9167	//   "response": {
9168	//     "$ref": "JobMetrics"
9169	//   },
9170	//   "scopes": [
9171	//     "https://www.googleapis.com/auth/cloud-platform",
9172	//     "https://www.googleapis.com/auth/compute",
9173	//     "https://www.googleapis.com/auth/compute.readonly",
9174	//     "https://www.googleapis.com/auth/userinfo.email"
9175	//   ]
9176	// }
9177
9178}
9179
9180// method id "dataflow.projects.jobs.list":
9181
9182type ProjectsJobsListCall struct {
9183	s            *Service
9184	projectId    string
9185	urlParams_   gensupport.URLParams
9186	ifNoneMatch_ string
9187	ctx_         context.Context
9188	header_      http.Header
9189}
9190
9191// List: List the jobs of a project. To list the jobs of a project in a
9192// region, we recommend using `projects.locations.jobs.list` with a
9193// [regional endpoint]
9194// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
9195// To list the all jobs across all regions, use
9196// `projects.jobs.aggregated`. Using `projects.jobs.list` is not
9197// recommended, as you can only get the list of jobs that are running in
9198// `us-central1`.
9199//
9200// - projectId: The project which owns the jobs.
9201func (r *ProjectsJobsService) List(projectId string) *ProjectsJobsListCall {
9202	c := &ProjectsJobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9203	c.projectId = projectId
9204	return c
9205}
9206
9207// Filter sets the optional parameter "filter": The kind of filter to
9208// use.
9209//
9210// Possible values:
9211//   "UNKNOWN" - The filter isn't specified, or is unknown. This returns
9212// all jobs ordered on descending `JobUuid`.
9213//   "ALL" - Returns all running jobs first ordered on creation
9214// timestamp, then returns all terminated jobs ordered on the
9215// termination timestamp.
9216//   "TERMINATED" - Filters the jobs that have a terminated state,
9217// ordered on the termination timestamp. Example terminated states:
9218// `JOB_STATE_STOPPED`, `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.
9219//   "ACTIVE" - Filters the jobs that are running ordered on the
9220// creation timestamp.
9221func (c *ProjectsJobsListCall) Filter(filter string) *ProjectsJobsListCall {
9222	c.urlParams_.Set("filter", filter)
9223	return c
9224}
9225
9226// Location sets the optional parameter "location": The [regional
9227// endpoint]
9228// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
9229// that contains this job.
9230func (c *ProjectsJobsListCall) Location(location string) *ProjectsJobsListCall {
9231	c.urlParams_.Set("location", location)
9232	return c
9233}
9234
9235// PageSize sets the optional parameter "pageSize": If there are many
9236// jobs, limit response to at most this many. The actual number of jobs
9237// returned will be the lesser of max_responses and an unspecified
9238// server-defined limit.
9239func (c *ProjectsJobsListCall) PageSize(pageSize int64) *ProjectsJobsListCall {
9240	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
9241	return c
9242}
9243
9244// PageToken sets the optional parameter "pageToken": Set this to the
9245// 'next_page_token' field of a previous response to request additional
9246// results in a long list.
9247func (c *ProjectsJobsListCall) PageToken(pageToken string) *ProjectsJobsListCall {
9248	c.urlParams_.Set("pageToken", pageToken)
9249	return c
9250}
9251
9252// View sets the optional parameter "view": Deprecated. ListJobs always
9253// returns summaries now. Use GetJob for other JobViews.
9254//
9255// Possible values:
9256//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
9257// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
9258// information, and may contain additional information.
9259//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
9260// Job ID, job name, job type, job status, start/end time, and Cloud SDK
9261// version details.
9262//   "JOB_VIEW_ALL" - Request all information available for this job.
9263//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
9264// description data for steps, labels and environment.
9265func (c *ProjectsJobsListCall) View(view string) *ProjectsJobsListCall {
9266	c.urlParams_.Set("view", view)
9267	return c
9268}
9269
9270// Fields allows partial responses to be retrieved. See
9271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9272// for more information.
9273func (c *ProjectsJobsListCall) Fields(s ...googleapi.Field) *ProjectsJobsListCall {
9274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9275	return c
9276}
9277
9278// IfNoneMatch sets the optional parameter which makes the operation
9279// fail if the object's ETag matches the given value. This is useful for
9280// getting updates only after the object has changed since the last
9281// request. Use googleapi.IsNotModified to check whether the response
9282// error from Do is the result of In-None-Match.
9283func (c *ProjectsJobsListCall) IfNoneMatch(entityTag string) *ProjectsJobsListCall {
9284	c.ifNoneMatch_ = entityTag
9285	return c
9286}
9287
9288// Context sets the context to be used in this call's Do method. Any
9289// pending HTTP request will be aborted if the provided context is
9290// canceled.
9291func (c *ProjectsJobsListCall) Context(ctx context.Context) *ProjectsJobsListCall {
9292	c.ctx_ = ctx
9293	return c
9294}
9295
9296// Header returns an http.Header that can be modified by the caller to
9297// add HTTP headers to the request.
9298func (c *ProjectsJobsListCall) Header() http.Header {
9299	if c.header_ == nil {
9300		c.header_ = make(http.Header)
9301	}
9302	return c.header_
9303}
9304
9305func (c *ProjectsJobsListCall) doRequest(alt string) (*http.Response, error) {
9306	reqHeaders := make(http.Header)
9307	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
9308	for k, v := range c.header_ {
9309		reqHeaders[k] = v
9310	}
9311	reqHeaders.Set("User-Agent", c.s.userAgent())
9312	if c.ifNoneMatch_ != "" {
9313		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9314	}
9315	var body io.Reader = nil
9316	c.urlParams_.Set("alt", alt)
9317	c.urlParams_.Set("prettyPrint", "false")
9318	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs")
9319	urls += "?" + c.urlParams_.Encode()
9320	req, err := http.NewRequest("GET", urls, body)
9321	if err != nil {
9322		return nil, err
9323	}
9324	req.Header = reqHeaders
9325	googleapi.Expand(req.URL, map[string]string{
9326		"projectId": c.projectId,
9327	})
9328	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9329}
9330
9331// Do executes the "dataflow.projects.jobs.list" call.
9332// Exactly one of *ListJobsResponse or error will be non-nil. Any
9333// non-2xx status code is an error. Response headers are in either
9334// *ListJobsResponse.ServerResponse.Header or (if a response was
9335// returned at all) in error.(*googleapi.Error).Header. Use
9336// googleapi.IsNotModified to check whether the returned error was
9337// because http.StatusNotModified was returned.
9338func (c *ProjectsJobsListCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
9339	gensupport.SetOptions(c.urlParams_, opts...)
9340	res, err := c.doRequest("json")
9341	if res != nil && res.StatusCode == http.StatusNotModified {
9342		if res.Body != nil {
9343			res.Body.Close()
9344		}
9345		return nil, &googleapi.Error{
9346			Code:   res.StatusCode,
9347			Header: res.Header,
9348		}
9349	}
9350	if err != nil {
9351		return nil, err
9352	}
9353	defer googleapi.CloseBody(res)
9354	if err := googleapi.CheckResponse(res); err != nil {
9355		return nil, err
9356	}
9357	ret := &ListJobsResponse{
9358		ServerResponse: googleapi.ServerResponse{
9359			Header:         res.Header,
9360			HTTPStatusCode: res.StatusCode,
9361		},
9362	}
9363	target := &ret
9364	if err := gensupport.DecodeResponse(target, res); err != nil {
9365		return nil, err
9366	}
9367	return ret, nil
9368	// {
9369	//   "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`.",
9370	//   "flatPath": "v1b3/projects/{projectId}/jobs",
9371	//   "httpMethod": "GET",
9372	//   "id": "dataflow.projects.jobs.list",
9373	//   "parameterOrder": [
9374	//     "projectId"
9375	//   ],
9376	//   "parameters": {
9377	//     "filter": {
9378	//       "description": "The kind of filter to use.",
9379	//       "enum": [
9380	//         "UNKNOWN",
9381	//         "ALL",
9382	//         "TERMINATED",
9383	//         "ACTIVE"
9384	//       ],
9385	//       "enumDescriptions": [
9386	//         "The filter isn't specified, or is unknown. This returns all jobs ordered on descending `JobUuid`.",
9387	//         "Returns all running jobs first ordered on creation timestamp, then returns all terminated jobs ordered on the termination timestamp.",
9388	//         "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.",
9389	//         "Filters the jobs that are running ordered on the creation timestamp."
9390	//       ],
9391	//       "location": "query",
9392	//       "type": "string"
9393	//     },
9394	//     "location": {
9395	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
9396	//       "location": "query",
9397	//       "type": "string"
9398	//     },
9399	//     "pageSize": {
9400	//       "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.",
9401	//       "format": "int32",
9402	//       "location": "query",
9403	//       "type": "integer"
9404	//     },
9405	//     "pageToken": {
9406	//       "description": "Set this to the 'next_page_token' field of a previous response to request additional results in a long list.",
9407	//       "location": "query",
9408	//       "type": "string"
9409	//     },
9410	//     "projectId": {
9411	//       "description": "The project which owns the jobs.",
9412	//       "location": "path",
9413	//       "required": true,
9414	//       "type": "string"
9415	//     },
9416	//     "view": {
9417	//       "description": "Deprecated. ListJobs always returns summaries now. Use GetJob for other JobViews.",
9418	//       "enum": [
9419	//         "JOB_VIEW_UNKNOWN",
9420	//         "JOB_VIEW_SUMMARY",
9421	//         "JOB_VIEW_ALL",
9422	//         "JOB_VIEW_DESCRIPTION"
9423	//       ],
9424	//       "enumDescriptions": [
9425	//         "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.",
9426	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
9427	//         "Request all information available for this job.",
9428	//         "Request summary info and limited job description data for steps, labels and environment."
9429	//       ],
9430	//       "location": "query",
9431	//       "type": "string"
9432	//     }
9433	//   },
9434	//   "path": "v1b3/projects/{projectId}/jobs",
9435	//   "response": {
9436	//     "$ref": "ListJobsResponse"
9437	//   },
9438	//   "scopes": [
9439	//     "https://www.googleapis.com/auth/cloud-platform",
9440	//     "https://www.googleapis.com/auth/compute",
9441	//     "https://www.googleapis.com/auth/compute.readonly",
9442	//     "https://www.googleapis.com/auth/userinfo.email"
9443	//   ]
9444	// }
9445
9446}
9447
9448// Pages invokes f for each page of results.
9449// A non-nil error returned from f will halt the iteration.
9450// The provided context supersedes any context provided to the Context method.
9451func (c *ProjectsJobsListCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
9452	c.ctx_ = ctx
9453	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9454	for {
9455		x, err := c.Do()
9456		if err != nil {
9457			return err
9458		}
9459		if err := f(x); err != nil {
9460			return err
9461		}
9462		if x.NextPageToken == "" {
9463			return nil
9464		}
9465		c.PageToken(x.NextPageToken)
9466	}
9467}
9468
9469// method id "dataflow.projects.jobs.snapshot":
9470
9471type ProjectsJobsSnapshotCall struct {
9472	s                  *Service
9473	projectId          string
9474	jobId              string
9475	snapshotjobrequest *SnapshotJobRequest
9476	urlParams_         gensupport.URLParams
9477	ctx_               context.Context
9478	header_            http.Header
9479}
9480
9481// Snapshot: Snapshot the state of a streaming job.
9482//
9483// - jobId: The job to be snapshotted.
9484// - projectId: The project which owns the job to be snapshotted.
9485func (r *ProjectsJobsService) Snapshot(projectId string, jobId string, snapshotjobrequest *SnapshotJobRequest) *ProjectsJobsSnapshotCall {
9486	c := &ProjectsJobsSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9487	c.projectId = projectId
9488	c.jobId = jobId
9489	c.snapshotjobrequest = snapshotjobrequest
9490	return c
9491}
9492
9493// Fields allows partial responses to be retrieved. See
9494// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9495// for more information.
9496func (c *ProjectsJobsSnapshotCall) Fields(s ...googleapi.Field) *ProjectsJobsSnapshotCall {
9497	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9498	return c
9499}
9500
9501// Context sets the context to be used in this call's Do method. Any
9502// pending HTTP request will be aborted if the provided context is
9503// canceled.
9504func (c *ProjectsJobsSnapshotCall) Context(ctx context.Context) *ProjectsJobsSnapshotCall {
9505	c.ctx_ = ctx
9506	return c
9507}
9508
9509// Header returns an http.Header that can be modified by the caller to
9510// add HTTP headers to the request.
9511func (c *ProjectsJobsSnapshotCall) Header() http.Header {
9512	if c.header_ == nil {
9513		c.header_ = make(http.Header)
9514	}
9515	return c.header_
9516}
9517
9518func (c *ProjectsJobsSnapshotCall) doRequest(alt string) (*http.Response, error) {
9519	reqHeaders := make(http.Header)
9520	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
9521	for k, v := range c.header_ {
9522		reqHeaders[k] = v
9523	}
9524	reqHeaders.Set("User-Agent", c.s.userAgent())
9525	var body io.Reader = nil
9526	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshotjobrequest)
9527	if err != nil {
9528		return nil, err
9529	}
9530	reqHeaders.Set("Content-Type", "application/json")
9531	c.urlParams_.Set("alt", alt)
9532	c.urlParams_.Set("prettyPrint", "false")
9533	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}:snapshot")
9534	urls += "?" + c.urlParams_.Encode()
9535	req, err := http.NewRequest("POST", urls, body)
9536	if err != nil {
9537		return nil, err
9538	}
9539	req.Header = reqHeaders
9540	googleapi.Expand(req.URL, map[string]string{
9541		"projectId": c.projectId,
9542		"jobId":     c.jobId,
9543	})
9544	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9545}
9546
9547// Do executes the "dataflow.projects.jobs.snapshot" call.
9548// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
9549// code is an error. Response headers are in either
9550// *Snapshot.ServerResponse.Header or (if a response was returned at
9551// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9552// to check whether the returned error was because
9553// http.StatusNotModified was returned.
9554func (c *ProjectsJobsSnapshotCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
9555	gensupport.SetOptions(c.urlParams_, opts...)
9556	res, err := c.doRequest("json")
9557	if res != nil && res.StatusCode == http.StatusNotModified {
9558		if res.Body != nil {
9559			res.Body.Close()
9560		}
9561		return nil, &googleapi.Error{
9562			Code:   res.StatusCode,
9563			Header: res.Header,
9564		}
9565	}
9566	if err != nil {
9567		return nil, err
9568	}
9569	defer googleapi.CloseBody(res)
9570	if err := googleapi.CheckResponse(res); err != nil {
9571		return nil, err
9572	}
9573	ret := &Snapshot{
9574		ServerResponse: googleapi.ServerResponse{
9575			Header:         res.Header,
9576			HTTPStatusCode: res.StatusCode,
9577		},
9578	}
9579	target := &ret
9580	if err := gensupport.DecodeResponse(target, res); err != nil {
9581		return nil, err
9582	}
9583	return ret, nil
9584	// {
9585	//   "description": "Snapshot the state of a streaming job.",
9586	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}:snapshot",
9587	//   "httpMethod": "POST",
9588	//   "id": "dataflow.projects.jobs.snapshot",
9589	//   "parameterOrder": [
9590	//     "projectId",
9591	//     "jobId"
9592	//   ],
9593	//   "parameters": {
9594	//     "jobId": {
9595	//       "description": "The job to be snapshotted.",
9596	//       "location": "path",
9597	//       "required": true,
9598	//       "type": "string"
9599	//     },
9600	//     "projectId": {
9601	//       "description": "The project which owns the job to be snapshotted.",
9602	//       "location": "path",
9603	//       "required": true,
9604	//       "type": "string"
9605	//     }
9606	//   },
9607	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}:snapshot",
9608	//   "request": {
9609	//     "$ref": "SnapshotJobRequest"
9610	//   },
9611	//   "response": {
9612	//     "$ref": "Snapshot"
9613	//   },
9614	//   "scopes": [
9615	//     "https://www.googleapis.com/auth/cloud-platform",
9616	//     "https://www.googleapis.com/auth/compute",
9617	//     "https://www.googleapis.com/auth/compute.readonly",
9618	//     "https://www.googleapis.com/auth/userinfo.email"
9619	//   ]
9620	// }
9621
9622}
9623
9624// method id "dataflow.projects.jobs.update":
9625
9626type ProjectsJobsUpdateCall struct {
9627	s          *Service
9628	projectId  string
9629	jobId      string
9630	job        *Job
9631	urlParams_ gensupport.URLParams
9632	ctx_       context.Context
9633	header_    http.Header
9634}
9635
9636// Update: Updates the state of an existing Cloud Dataflow job. To
9637// update the state of an existing job, we recommend using
9638// `projects.locations.jobs.update` with a [regional endpoint]
9639// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
9640// Using `projects.jobs.update` is not recommended, as you can only
9641// update the state of jobs that are running in `us-central1`.
9642//
9643// - jobId: The job ID.
9644// - projectId: The ID of the Cloud Platform project that the job
9645//   belongs to.
9646func (r *ProjectsJobsService) Update(projectId string, jobId string, job *Job) *ProjectsJobsUpdateCall {
9647	c := &ProjectsJobsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9648	c.projectId = projectId
9649	c.jobId = jobId
9650	c.job = job
9651	return c
9652}
9653
9654// Location sets the optional parameter "location": The [regional
9655// endpoint]
9656// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
9657// that contains this job.
9658func (c *ProjectsJobsUpdateCall) Location(location string) *ProjectsJobsUpdateCall {
9659	c.urlParams_.Set("location", location)
9660	return c
9661}
9662
9663// Fields allows partial responses to be retrieved. See
9664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9665// for more information.
9666func (c *ProjectsJobsUpdateCall) Fields(s ...googleapi.Field) *ProjectsJobsUpdateCall {
9667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9668	return c
9669}
9670
9671// Context sets the context to be used in this call's Do method. Any
9672// pending HTTP request will be aborted if the provided context is
9673// canceled.
9674func (c *ProjectsJobsUpdateCall) Context(ctx context.Context) *ProjectsJobsUpdateCall {
9675	c.ctx_ = ctx
9676	return c
9677}
9678
9679// Header returns an http.Header that can be modified by the caller to
9680// add HTTP headers to the request.
9681func (c *ProjectsJobsUpdateCall) Header() http.Header {
9682	if c.header_ == nil {
9683		c.header_ = make(http.Header)
9684	}
9685	return c.header_
9686}
9687
9688func (c *ProjectsJobsUpdateCall) doRequest(alt string) (*http.Response, error) {
9689	reqHeaders := make(http.Header)
9690	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
9691	for k, v := range c.header_ {
9692		reqHeaders[k] = v
9693	}
9694	reqHeaders.Set("User-Agent", c.s.userAgent())
9695	var body io.Reader = nil
9696	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
9697	if err != nil {
9698		return nil, err
9699	}
9700	reqHeaders.Set("Content-Type", "application/json")
9701	c.urlParams_.Set("alt", alt)
9702	c.urlParams_.Set("prettyPrint", "false")
9703	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}")
9704	urls += "?" + c.urlParams_.Encode()
9705	req, err := http.NewRequest("PUT", urls, body)
9706	if err != nil {
9707		return nil, err
9708	}
9709	req.Header = reqHeaders
9710	googleapi.Expand(req.URL, map[string]string{
9711		"projectId": c.projectId,
9712		"jobId":     c.jobId,
9713	})
9714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9715}
9716
9717// Do executes the "dataflow.projects.jobs.update" call.
9718// Exactly one of *Job or error will be non-nil. Any non-2xx status code
9719// is an error. Response headers are in either
9720// *Job.ServerResponse.Header or (if a response was returned at all) in
9721// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
9722// whether the returned error was because http.StatusNotModified was
9723// returned.
9724func (c *ProjectsJobsUpdateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
9725	gensupport.SetOptions(c.urlParams_, opts...)
9726	res, err := c.doRequest("json")
9727	if res != nil && res.StatusCode == http.StatusNotModified {
9728		if res.Body != nil {
9729			res.Body.Close()
9730		}
9731		return nil, &googleapi.Error{
9732			Code:   res.StatusCode,
9733			Header: res.Header,
9734		}
9735	}
9736	if err != nil {
9737		return nil, err
9738	}
9739	defer googleapi.CloseBody(res)
9740	if err := googleapi.CheckResponse(res); err != nil {
9741		return nil, err
9742	}
9743	ret := &Job{
9744		ServerResponse: googleapi.ServerResponse{
9745			Header:         res.Header,
9746			HTTPStatusCode: res.StatusCode,
9747		},
9748	}
9749	target := &ret
9750	if err := gensupport.DecodeResponse(target, res); err != nil {
9751		return nil, err
9752	}
9753	return ret, nil
9754	// {
9755	//   "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`.",
9756	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}",
9757	//   "httpMethod": "PUT",
9758	//   "id": "dataflow.projects.jobs.update",
9759	//   "parameterOrder": [
9760	//     "projectId",
9761	//     "jobId"
9762	//   ],
9763	//   "parameters": {
9764	//     "jobId": {
9765	//       "description": "The job ID.",
9766	//       "location": "path",
9767	//       "required": true,
9768	//       "type": "string"
9769	//     },
9770	//     "location": {
9771	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
9772	//       "location": "query",
9773	//       "type": "string"
9774	//     },
9775	//     "projectId": {
9776	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
9777	//       "location": "path",
9778	//       "required": true,
9779	//       "type": "string"
9780	//     }
9781	//   },
9782	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}",
9783	//   "request": {
9784	//     "$ref": "Job"
9785	//   },
9786	//   "response": {
9787	//     "$ref": "Job"
9788	//   },
9789	//   "scopes": [
9790	//     "https://www.googleapis.com/auth/cloud-platform",
9791	//     "https://www.googleapis.com/auth/compute",
9792	//     "https://www.googleapis.com/auth/compute.readonly",
9793	//     "https://www.googleapis.com/auth/userinfo.email"
9794	//   ]
9795	// }
9796
9797}
9798
9799// method id "dataflow.projects.jobs.debug.getConfig":
9800
9801type ProjectsJobsDebugGetConfigCall struct {
9802	s                     *Service
9803	projectId             string
9804	jobId                 string
9805	getdebugconfigrequest *GetDebugConfigRequest
9806	urlParams_            gensupport.URLParams
9807	ctx_                  context.Context
9808	header_               http.Header
9809}
9810
9811// GetConfig: Get encoded debug configuration for component. Not
9812// cacheable.
9813//
9814// - jobId: The job id.
9815// - projectId: The project id.
9816func (r *ProjectsJobsDebugService) GetConfig(projectId string, jobId string, getdebugconfigrequest *GetDebugConfigRequest) *ProjectsJobsDebugGetConfigCall {
9817	c := &ProjectsJobsDebugGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9818	c.projectId = projectId
9819	c.jobId = jobId
9820	c.getdebugconfigrequest = getdebugconfigrequest
9821	return c
9822}
9823
9824// Fields allows partial responses to be retrieved. See
9825// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9826// for more information.
9827func (c *ProjectsJobsDebugGetConfigCall) Fields(s ...googleapi.Field) *ProjectsJobsDebugGetConfigCall {
9828	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9829	return c
9830}
9831
9832// Context sets the context to be used in this call's Do method. Any
9833// pending HTTP request will be aborted if the provided context is
9834// canceled.
9835func (c *ProjectsJobsDebugGetConfigCall) Context(ctx context.Context) *ProjectsJobsDebugGetConfigCall {
9836	c.ctx_ = ctx
9837	return c
9838}
9839
9840// Header returns an http.Header that can be modified by the caller to
9841// add HTTP headers to the request.
9842func (c *ProjectsJobsDebugGetConfigCall) Header() http.Header {
9843	if c.header_ == nil {
9844		c.header_ = make(http.Header)
9845	}
9846	return c.header_
9847}
9848
9849func (c *ProjectsJobsDebugGetConfigCall) doRequest(alt string) (*http.Response, error) {
9850	reqHeaders := make(http.Header)
9851	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
9852	for k, v := range c.header_ {
9853		reqHeaders[k] = v
9854	}
9855	reqHeaders.Set("User-Agent", c.s.userAgent())
9856	var body io.Reader = nil
9857	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getdebugconfigrequest)
9858	if err != nil {
9859		return nil, err
9860	}
9861	reqHeaders.Set("Content-Type", "application/json")
9862	c.urlParams_.Set("alt", alt)
9863	c.urlParams_.Set("prettyPrint", "false")
9864	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig")
9865	urls += "?" + c.urlParams_.Encode()
9866	req, err := http.NewRequest("POST", urls, body)
9867	if err != nil {
9868		return nil, err
9869	}
9870	req.Header = reqHeaders
9871	googleapi.Expand(req.URL, map[string]string{
9872		"projectId": c.projectId,
9873		"jobId":     c.jobId,
9874	})
9875	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9876}
9877
9878// Do executes the "dataflow.projects.jobs.debug.getConfig" call.
9879// Exactly one of *GetDebugConfigResponse or error will be non-nil. Any
9880// non-2xx status code is an error. Response headers are in either
9881// *GetDebugConfigResponse.ServerResponse.Header or (if a response was
9882// returned at all) in error.(*googleapi.Error).Header. Use
9883// googleapi.IsNotModified to check whether the returned error was
9884// because http.StatusNotModified was returned.
9885func (c *ProjectsJobsDebugGetConfigCall) Do(opts ...googleapi.CallOption) (*GetDebugConfigResponse, error) {
9886	gensupport.SetOptions(c.urlParams_, opts...)
9887	res, err := c.doRequest("json")
9888	if res != nil && res.StatusCode == http.StatusNotModified {
9889		if res.Body != nil {
9890			res.Body.Close()
9891		}
9892		return nil, &googleapi.Error{
9893			Code:   res.StatusCode,
9894			Header: res.Header,
9895		}
9896	}
9897	if err != nil {
9898		return nil, err
9899	}
9900	defer googleapi.CloseBody(res)
9901	if err := googleapi.CheckResponse(res); err != nil {
9902		return nil, err
9903	}
9904	ret := &GetDebugConfigResponse{
9905		ServerResponse: googleapi.ServerResponse{
9906			Header:         res.Header,
9907			HTTPStatusCode: res.StatusCode,
9908		},
9909	}
9910	target := &ret
9911	if err := gensupport.DecodeResponse(target, res); err != nil {
9912		return nil, err
9913	}
9914	return ret, nil
9915	// {
9916	//   "description": "Get encoded debug configuration for component. Not cacheable.",
9917	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig",
9918	//   "httpMethod": "POST",
9919	//   "id": "dataflow.projects.jobs.debug.getConfig",
9920	//   "parameterOrder": [
9921	//     "projectId",
9922	//     "jobId"
9923	//   ],
9924	//   "parameters": {
9925	//     "jobId": {
9926	//       "description": "The job id.",
9927	//       "location": "path",
9928	//       "required": true,
9929	//       "type": "string"
9930	//     },
9931	//     "projectId": {
9932	//       "description": "The project id.",
9933	//       "location": "path",
9934	//       "required": true,
9935	//       "type": "string"
9936	//     }
9937	//   },
9938	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig",
9939	//   "request": {
9940	//     "$ref": "GetDebugConfigRequest"
9941	//   },
9942	//   "response": {
9943	//     "$ref": "GetDebugConfigResponse"
9944	//   },
9945	//   "scopes": [
9946	//     "https://www.googleapis.com/auth/cloud-platform",
9947	//     "https://www.googleapis.com/auth/compute",
9948	//     "https://www.googleapis.com/auth/compute.readonly",
9949	//     "https://www.googleapis.com/auth/userinfo.email"
9950	//   ]
9951	// }
9952
9953}
9954
9955// method id "dataflow.projects.jobs.debug.sendCapture":
9956
9957type ProjectsJobsDebugSendCaptureCall struct {
9958	s                       *Service
9959	projectId               string
9960	jobId                   string
9961	senddebugcapturerequest *SendDebugCaptureRequest
9962	urlParams_              gensupport.URLParams
9963	ctx_                    context.Context
9964	header_                 http.Header
9965}
9966
9967// SendCapture: Send encoded debug capture data for component.
9968//
9969// - jobId: The job id.
9970// - projectId: The project id.
9971func (r *ProjectsJobsDebugService) SendCapture(projectId string, jobId string, senddebugcapturerequest *SendDebugCaptureRequest) *ProjectsJobsDebugSendCaptureCall {
9972	c := &ProjectsJobsDebugSendCaptureCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9973	c.projectId = projectId
9974	c.jobId = jobId
9975	c.senddebugcapturerequest = senddebugcapturerequest
9976	return c
9977}
9978
9979// Fields allows partial responses to be retrieved. See
9980// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9981// for more information.
9982func (c *ProjectsJobsDebugSendCaptureCall) Fields(s ...googleapi.Field) *ProjectsJobsDebugSendCaptureCall {
9983	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9984	return c
9985}
9986
9987// Context sets the context to be used in this call's Do method. Any
9988// pending HTTP request will be aborted if the provided context is
9989// canceled.
9990func (c *ProjectsJobsDebugSendCaptureCall) Context(ctx context.Context) *ProjectsJobsDebugSendCaptureCall {
9991	c.ctx_ = ctx
9992	return c
9993}
9994
9995// Header returns an http.Header that can be modified by the caller to
9996// add HTTP headers to the request.
9997func (c *ProjectsJobsDebugSendCaptureCall) Header() http.Header {
9998	if c.header_ == nil {
9999		c.header_ = make(http.Header)
10000	}
10001	return c.header_
10002}
10003
10004func (c *ProjectsJobsDebugSendCaptureCall) doRequest(alt string) (*http.Response, error) {
10005	reqHeaders := make(http.Header)
10006	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
10007	for k, v := range c.header_ {
10008		reqHeaders[k] = v
10009	}
10010	reqHeaders.Set("User-Agent", c.s.userAgent())
10011	var body io.Reader = nil
10012	body, err := googleapi.WithoutDataWrapper.JSONReader(c.senddebugcapturerequest)
10013	if err != nil {
10014		return nil, err
10015	}
10016	reqHeaders.Set("Content-Type", "application/json")
10017	c.urlParams_.Set("alt", alt)
10018	c.urlParams_.Set("prettyPrint", "false")
10019	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture")
10020	urls += "?" + c.urlParams_.Encode()
10021	req, err := http.NewRequest("POST", urls, body)
10022	if err != nil {
10023		return nil, err
10024	}
10025	req.Header = reqHeaders
10026	googleapi.Expand(req.URL, map[string]string{
10027		"projectId": c.projectId,
10028		"jobId":     c.jobId,
10029	})
10030	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10031}
10032
10033// Do executes the "dataflow.projects.jobs.debug.sendCapture" call.
10034// Exactly one of *SendDebugCaptureResponse or error will be non-nil.
10035// Any non-2xx status code is an error. Response headers are in either
10036// *SendDebugCaptureResponse.ServerResponse.Header or (if a response was
10037// returned at all) in error.(*googleapi.Error).Header. Use
10038// googleapi.IsNotModified to check whether the returned error was
10039// because http.StatusNotModified was returned.
10040func (c *ProjectsJobsDebugSendCaptureCall) Do(opts ...googleapi.CallOption) (*SendDebugCaptureResponse, error) {
10041	gensupport.SetOptions(c.urlParams_, opts...)
10042	res, err := c.doRequest("json")
10043	if res != nil && res.StatusCode == http.StatusNotModified {
10044		if res.Body != nil {
10045			res.Body.Close()
10046		}
10047		return nil, &googleapi.Error{
10048			Code:   res.StatusCode,
10049			Header: res.Header,
10050		}
10051	}
10052	if err != nil {
10053		return nil, err
10054	}
10055	defer googleapi.CloseBody(res)
10056	if err := googleapi.CheckResponse(res); err != nil {
10057		return nil, err
10058	}
10059	ret := &SendDebugCaptureResponse{
10060		ServerResponse: googleapi.ServerResponse{
10061			Header:         res.Header,
10062			HTTPStatusCode: res.StatusCode,
10063		},
10064	}
10065	target := &ret
10066	if err := gensupport.DecodeResponse(target, res); err != nil {
10067		return nil, err
10068	}
10069	return ret, nil
10070	// {
10071	//   "description": "Send encoded debug capture data for component.",
10072	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture",
10073	//   "httpMethod": "POST",
10074	//   "id": "dataflow.projects.jobs.debug.sendCapture",
10075	//   "parameterOrder": [
10076	//     "projectId",
10077	//     "jobId"
10078	//   ],
10079	//   "parameters": {
10080	//     "jobId": {
10081	//       "description": "The job id.",
10082	//       "location": "path",
10083	//       "required": true,
10084	//       "type": "string"
10085	//     },
10086	//     "projectId": {
10087	//       "description": "The project id.",
10088	//       "location": "path",
10089	//       "required": true,
10090	//       "type": "string"
10091	//     }
10092	//   },
10093	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture",
10094	//   "request": {
10095	//     "$ref": "SendDebugCaptureRequest"
10096	//   },
10097	//   "response": {
10098	//     "$ref": "SendDebugCaptureResponse"
10099	//   },
10100	//   "scopes": [
10101	//     "https://www.googleapis.com/auth/cloud-platform",
10102	//     "https://www.googleapis.com/auth/compute",
10103	//     "https://www.googleapis.com/auth/compute.readonly",
10104	//     "https://www.googleapis.com/auth/userinfo.email"
10105	//   ]
10106	// }
10107
10108}
10109
10110// method id "dataflow.projects.jobs.messages.list":
10111
10112type ProjectsJobsMessagesListCall struct {
10113	s            *Service
10114	projectId    string
10115	jobId        string
10116	urlParams_   gensupport.URLParams
10117	ifNoneMatch_ string
10118	ctx_         context.Context
10119	header_      http.Header
10120}
10121
10122// List: Request the job status. To request the status of a job, we
10123// recommend using `projects.locations.jobs.messages.list` with a
10124// [regional endpoint]
10125// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
10126// Using `projects.jobs.messages.list` is not recommended, as you can
10127// only request the status of jobs that are running in `us-central1`.
10128//
10129// - jobId: The job to get messages about.
10130// - projectId: A project id.
10131func (r *ProjectsJobsMessagesService) List(projectId string, jobId string) *ProjectsJobsMessagesListCall {
10132	c := &ProjectsJobsMessagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10133	c.projectId = projectId
10134	c.jobId = jobId
10135	return c
10136}
10137
10138// EndTime sets the optional parameter "endTime": Return only messages
10139// with timestamps < end_time. The default is now (i.e. return up to the
10140// latest messages available).
10141func (c *ProjectsJobsMessagesListCall) EndTime(endTime string) *ProjectsJobsMessagesListCall {
10142	c.urlParams_.Set("endTime", endTime)
10143	return c
10144}
10145
10146// Location sets the optional parameter "location": The [regional
10147// endpoint]
10148// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
10149// that contains the job specified by job_id.
10150func (c *ProjectsJobsMessagesListCall) Location(location string) *ProjectsJobsMessagesListCall {
10151	c.urlParams_.Set("location", location)
10152	return c
10153}
10154
10155// MinimumImportance sets the optional parameter "minimumImportance":
10156// Filter to only get messages with importance >= level
10157//
10158// Possible values:
10159//   "JOB_MESSAGE_IMPORTANCE_UNKNOWN" - The message importance isn't
10160// specified, or is unknown.
10161//   "JOB_MESSAGE_DEBUG" - The message is at the 'debug' level:
10162// typically only useful for software engineers working on the code the
10163// job is running. Typically, Dataflow pipeline runners do not display
10164// log messages at this level by default.
10165//   "JOB_MESSAGE_DETAILED" - The message is at the 'detailed' level:
10166// somewhat verbose, but potentially useful to users. Typically,
10167// Dataflow pipeline runners do not display log messages at this level
10168// by default. These messages are displayed by default in the Dataflow
10169// monitoring UI.
10170//   "JOB_MESSAGE_BASIC" - The message is at the 'basic' level: useful
10171// for keeping track of the execution of a Dataflow pipeline. Typically,
10172// Dataflow pipeline runners display log messages at this level by
10173// default, and these messages are displayed by default in the Dataflow
10174// monitoring UI.
10175//   "JOB_MESSAGE_WARNING" - The message is at the 'warning' level:
10176// indicating a condition pertaining to a job which may require human
10177// intervention. Typically, Dataflow pipeline runners display log
10178// messages at this level by default, and these messages are displayed
10179// by default in the Dataflow monitoring UI.
10180//   "JOB_MESSAGE_ERROR" - The message is at the 'error' level:
10181// indicating a condition preventing a job from succeeding. Typically,
10182// Dataflow pipeline runners display log messages at this level by
10183// default, and these messages are displayed by default in the Dataflow
10184// monitoring UI.
10185func (c *ProjectsJobsMessagesListCall) MinimumImportance(minimumImportance string) *ProjectsJobsMessagesListCall {
10186	c.urlParams_.Set("minimumImportance", minimumImportance)
10187	return c
10188}
10189
10190// PageSize sets the optional parameter "pageSize": If specified,
10191// determines the maximum number of messages to return. If unspecified,
10192// the service may choose an appropriate default, or may return an
10193// arbitrarily large number of results.
10194func (c *ProjectsJobsMessagesListCall) PageSize(pageSize int64) *ProjectsJobsMessagesListCall {
10195	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
10196	return c
10197}
10198
10199// PageToken sets the optional parameter "pageToken": If supplied, this
10200// should be the value of next_page_token returned by an earlier call.
10201// This will cause the next page of results to be returned.
10202func (c *ProjectsJobsMessagesListCall) PageToken(pageToken string) *ProjectsJobsMessagesListCall {
10203	c.urlParams_.Set("pageToken", pageToken)
10204	return c
10205}
10206
10207// StartTime sets the optional parameter "startTime": If specified,
10208// return only messages with timestamps >= start_time. The default is
10209// the job creation time (i.e. beginning of messages).
10210func (c *ProjectsJobsMessagesListCall) StartTime(startTime string) *ProjectsJobsMessagesListCall {
10211	c.urlParams_.Set("startTime", startTime)
10212	return c
10213}
10214
10215// Fields allows partial responses to be retrieved. See
10216// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10217// for more information.
10218func (c *ProjectsJobsMessagesListCall) Fields(s ...googleapi.Field) *ProjectsJobsMessagesListCall {
10219	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10220	return c
10221}
10222
10223// IfNoneMatch sets the optional parameter which makes the operation
10224// fail if the object's ETag matches the given value. This is useful for
10225// getting updates only after the object has changed since the last
10226// request. Use googleapi.IsNotModified to check whether the response
10227// error from Do is the result of In-None-Match.
10228func (c *ProjectsJobsMessagesListCall) IfNoneMatch(entityTag string) *ProjectsJobsMessagesListCall {
10229	c.ifNoneMatch_ = entityTag
10230	return c
10231}
10232
10233// Context sets the context to be used in this call's Do method. Any
10234// pending HTTP request will be aborted if the provided context is
10235// canceled.
10236func (c *ProjectsJobsMessagesListCall) Context(ctx context.Context) *ProjectsJobsMessagesListCall {
10237	c.ctx_ = ctx
10238	return c
10239}
10240
10241// Header returns an http.Header that can be modified by the caller to
10242// add HTTP headers to the request.
10243func (c *ProjectsJobsMessagesListCall) Header() http.Header {
10244	if c.header_ == nil {
10245		c.header_ = make(http.Header)
10246	}
10247	return c.header_
10248}
10249
10250func (c *ProjectsJobsMessagesListCall) doRequest(alt string) (*http.Response, error) {
10251	reqHeaders := make(http.Header)
10252	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
10253	for k, v := range c.header_ {
10254		reqHeaders[k] = v
10255	}
10256	reqHeaders.Set("User-Agent", c.s.userAgent())
10257	if c.ifNoneMatch_ != "" {
10258		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10259	}
10260	var body io.Reader = nil
10261	c.urlParams_.Set("alt", alt)
10262	c.urlParams_.Set("prettyPrint", "false")
10263	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/messages")
10264	urls += "?" + c.urlParams_.Encode()
10265	req, err := http.NewRequest("GET", urls, body)
10266	if err != nil {
10267		return nil, err
10268	}
10269	req.Header = reqHeaders
10270	googleapi.Expand(req.URL, map[string]string{
10271		"projectId": c.projectId,
10272		"jobId":     c.jobId,
10273	})
10274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10275}
10276
10277// Do executes the "dataflow.projects.jobs.messages.list" call.
10278// Exactly one of *ListJobMessagesResponse or error will be non-nil. Any
10279// non-2xx status code is an error. Response headers are in either
10280// *ListJobMessagesResponse.ServerResponse.Header or (if a response was
10281// returned at all) in error.(*googleapi.Error).Header. Use
10282// googleapi.IsNotModified to check whether the returned error was
10283// because http.StatusNotModified was returned.
10284func (c *ProjectsJobsMessagesListCall) Do(opts ...googleapi.CallOption) (*ListJobMessagesResponse, error) {
10285	gensupport.SetOptions(c.urlParams_, opts...)
10286	res, err := c.doRequest("json")
10287	if res != nil && res.StatusCode == http.StatusNotModified {
10288		if res.Body != nil {
10289			res.Body.Close()
10290		}
10291		return nil, &googleapi.Error{
10292			Code:   res.StatusCode,
10293			Header: res.Header,
10294		}
10295	}
10296	if err != nil {
10297		return nil, err
10298	}
10299	defer googleapi.CloseBody(res)
10300	if err := googleapi.CheckResponse(res); err != nil {
10301		return nil, err
10302	}
10303	ret := &ListJobMessagesResponse{
10304		ServerResponse: googleapi.ServerResponse{
10305			Header:         res.Header,
10306			HTTPStatusCode: res.StatusCode,
10307		},
10308	}
10309	target := &ret
10310	if err := gensupport.DecodeResponse(target, res); err != nil {
10311		return nil, err
10312	}
10313	return ret, nil
10314	// {
10315	//   "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`.",
10316	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/messages",
10317	//   "httpMethod": "GET",
10318	//   "id": "dataflow.projects.jobs.messages.list",
10319	//   "parameterOrder": [
10320	//     "projectId",
10321	//     "jobId"
10322	//   ],
10323	//   "parameters": {
10324	//     "endTime": {
10325	//       "description": "Return only messages with timestamps \u003c end_time. The default is now (i.e. return up to the latest messages available).",
10326	//       "format": "google-datetime",
10327	//       "location": "query",
10328	//       "type": "string"
10329	//     },
10330	//     "jobId": {
10331	//       "description": "The job to get messages about.",
10332	//       "location": "path",
10333	//       "required": true,
10334	//       "type": "string"
10335	//     },
10336	//     "location": {
10337	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
10338	//       "location": "query",
10339	//       "type": "string"
10340	//     },
10341	//     "minimumImportance": {
10342	//       "description": "Filter to only get messages with importance \u003e= level",
10343	//       "enum": [
10344	//         "JOB_MESSAGE_IMPORTANCE_UNKNOWN",
10345	//         "JOB_MESSAGE_DEBUG",
10346	//         "JOB_MESSAGE_DETAILED",
10347	//         "JOB_MESSAGE_BASIC",
10348	//         "JOB_MESSAGE_WARNING",
10349	//         "JOB_MESSAGE_ERROR"
10350	//       ],
10351	//       "enumDescriptions": [
10352	//         "The message importance isn't specified, or is unknown.",
10353	//         "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.",
10354	//         "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.",
10355	//         "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.",
10356	//         "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.",
10357	//         "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."
10358	//       ],
10359	//       "location": "query",
10360	//       "type": "string"
10361	//     },
10362	//     "pageSize": {
10363	//       "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.",
10364	//       "format": "int32",
10365	//       "location": "query",
10366	//       "type": "integer"
10367	//     },
10368	//     "pageToken": {
10369	//       "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.",
10370	//       "location": "query",
10371	//       "type": "string"
10372	//     },
10373	//     "projectId": {
10374	//       "description": "A project id.",
10375	//       "location": "path",
10376	//       "required": true,
10377	//       "type": "string"
10378	//     },
10379	//     "startTime": {
10380	//       "description": "If specified, return only messages with timestamps \u003e= start_time. The default is the job creation time (i.e. beginning of messages).",
10381	//       "format": "google-datetime",
10382	//       "location": "query",
10383	//       "type": "string"
10384	//     }
10385	//   },
10386	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/messages",
10387	//   "response": {
10388	//     "$ref": "ListJobMessagesResponse"
10389	//   },
10390	//   "scopes": [
10391	//     "https://www.googleapis.com/auth/cloud-platform",
10392	//     "https://www.googleapis.com/auth/compute",
10393	//     "https://www.googleapis.com/auth/compute.readonly",
10394	//     "https://www.googleapis.com/auth/userinfo.email"
10395	//   ]
10396	// }
10397
10398}
10399
10400// Pages invokes f for each page of results.
10401// A non-nil error returned from f will halt the iteration.
10402// The provided context supersedes any context provided to the Context method.
10403func (c *ProjectsJobsMessagesListCall) Pages(ctx context.Context, f func(*ListJobMessagesResponse) error) error {
10404	c.ctx_ = ctx
10405	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
10406	for {
10407		x, err := c.Do()
10408		if err != nil {
10409			return err
10410		}
10411		if err := f(x); err != nil {
10412			return err
10413		}
10414		if x.NextPageToken == "" {
10415			return nil
10416		}
10417		c.PageToken(x.NextPageToken)
10418	}
10419}
10420
10421// method id "dataflow.projects.jobs.workItems.lease":
10422
10423type ProjectsJobsWorkItemsLeaseCall struct {
10424	s                    *Service
10425	projectId            string
10426	jobId                string
10427	leaseworkitemrequest *LeaseWorkItemRequest
10428	urlParams_           gensupport.URLParams
10429	ctx_                 context.Context
10430	header_              http.Header
10431}
10432
10433// Lease: Leases a dataflow WorkItem to run.
10434//
10435// - jobId: Identifies the workflow job this worker belongs to.
10436// - projectId: Identifies the project this worker belongs to.
10437func (r *ProjectsJobsWorkItemsService) Lease(projectId string, jobId string, leaseworkitemrequest *LeaseWorkItemRequest) *ProjectsJobsWorkItemsLeaseCall {
10438	c := &ProjectsJobsWorkItemsLeaseCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10439	c.projectId = projectId
10440	c.jobId = jobId
10441	c.leaseworkitemrequest = leaseworkitemrequest
10442	return c
10443}
10444
10445// Fields allows partial responses to be retrieved. See
10446// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10447// for more information.
10448func (c *ProjectsJobsWorkItemsLeaseCall) Fields(s ...googleapi.Field) *ProjectsJobsWorkItemsLeaseCall {
10449	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10450	return c
10451}
10452
10453// Context sets the context to be used in this call's Do method. Any
10454// pending HTTP request will be aborted if the provided context is
10455// canceled.
10456func (c *ProjectsJobsWorkItemsLeaseCall) Context(ctx context.Context) *ProjectsJobsWorkItemsLeaseCall {
10457	c.ctx_ = ctx
10458	return c
10459}
10460
10461// Header returns an http.Header that can be modified by the caller to
10462// add HTTP headers to the request.
10463func (c *ProjectsJobsWorkItemsLeaseCall) Header() http.Header {
10464	if c.header_ == nil {
10465		c.header_ = make(http.Header)
10466	}
10467	return c.header_
10468}
10469
10470func (c *ProjectsJobsWorkItemsLeaseCall) doRequest(alt string) (*http.Response, error) {
10471	reqHeaders := make(http.Header)
10472	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
10473	for k, v := range c.header_ {
10474		reqHeaders[k] = v
10475	}
10476	reqHeaders.Set("User-Agent", c.s.userAgent())
10477	var body io.Reader = nil
10478	body, err := googleapi.WithoutDataWrapper.JSONReader(c.leaseworkitemrequest)
10479	if err != nil {
10480		return nil, err
10481	}
10482	reqHeaders.Set("Content-Type", "application/json")
10483	c.urlParams_.Set("alt", alt)
10484	c.urlParams_.Set("prettyPrint", "false")
10485	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease")
10486	urls += "?" + c.urlParams_.Encode()
10487	req, err := http.NewRequest("POST", urls, body)
10488	if err != nil {
10489		return nil, err
10490	}
10491	req.Header = reqHeaders
10492	googleapi.Expand(req.URL, map[string]string{
10493		"projectId": c.projectId,
10494		"jobId":     c.jobId,
10495	})
10496	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10497}
10498
10499// Do executes the "dataflow.projects.jobs.workItems.lease" call.
10500// Exactly one of *LeaseWorkItemResponse or error will be non-nil. Any
10501// non-2xx status code is an error. Response headers are in either
10502// *LeaseWorkItemResponse.ServerResponse.Header or (if a response was
10503// returned at all) in error.(*googleapi.Error).Header. Use
10504// googleapi.IsNotModified to check whether the returned error was
10505// because http.StatusNotModified was returned.
10506func (c *ProjectsJobsWorkItemsLeaseCall) Do(opts ...googleapi.CallOption) (*LeaseWorkItemResponse, error) {
10507	gensupport.SetOptions(c.urlParams_, opts...)
10508	res, err := c.doRequest("json")
10509	if res != nil && res.StatusCode == http.StatusNotModified {
10510		if res.Body != nil {
10511			res.Body.Close()
10512		}
10513		return nil, &googleapi.Error{
10514			Code:   res.StatusCode,
10515			Header: res.Header,
10516		}
10517	}
10518	if err != nil {
10519		return nil, err
10520	}
10521	defer googleapi.CloseBody(res)
10522	if err := googleapi.CheckResponse(res); err != nil {
10523		return nil, err
10524	}
10525	ret := &LeaseWorkItemResponse{
10526		ServerResponse: googleapi.ServerResponse{
10527			Header:         res.Header,
10528			HTTPStatusCode: res.StatusCode,
10529		},
10530	}
10531	target := &ret
10532	if err := gensupport.DecodeResponse(target, res); err != nil {
10533		return nil, err
10534	}
10535	return ret, nil
10536	// {
10537	//   "description": "Leases a dataflow WorkItem to run.",
10538	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease",
10539	//   "httpMethod": "POST",
10540	//   "id": "dataflow.projects.jobs.workItems.lease",
10541	//   "parameterOrder": [
10542	//     "projectId",
10543	//     "jobId"
10544	//   ],
10545	//   "parameters": {
10546	//     "jobId": {
10547	//       "description": "Identifies the workflow job this worker belongs to.",
10548	//       "location": "path",
10549	//       "required": true,
10550	//       "type": "string"
10551	//     },
10552	//     "projectId": {
10553	//       "description": "Identifies the project this worker belongs to.",
10554	//       "location": "path",
10555	//       "required": true,
10556	//       "type": "string"
10557	//     }
10558	//   },
10559	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease",
10560	//   "request": {
10561	//     "$ref": "LeaseWorkItemRequest"
10562	//   },
10563	//   "response": {
10564	//     "$ref": "LeaseWorkItemResponse"
10565	//   },
10566	//   "scopes": [
10567	//     "https://www.googleapis.com/auth/cloud-platform",
10568	//     "https://www.googleapis.com/auth/compute",
10569	//     "https://www.googleapis.com/auth/compute.readonly",
10570	//     "https://www.googleapis.com/auth/userinfo.email"
10571	//   ]
10572	// }
10573
10574}
10575
10576// method id "dataflow.projects.jobs.workItems.reportStatus":
10577
10578type ProjectsJobsWorkItemsReportStatusCall struct {
10579	s                           *Service
10580	projectId                   string
10581	jobId                       string
10582	reportworkitemstatusrequest *ReportWorkItemStatusRequest
10583	urlParams_                  gensupport.URLParams
10584	ctx_                        context.Context
10585	header_                     http.Header
10586}
10587
10588// ReportStatus: Reports the status of dataflow WorkItems leased by a
10589// worker.
10590//
10591// - jobId: The job which the WorkItem is part of.
10592// - projectId: The project which owns the WorkItem's job.
10593func (r *ProjectsJobsWorkItemsService) ReportStatus(projectId string, jobId string, reportworkitemstatusrequest *ReportWorkItemStatusRequest) *ProjectsJobsWorkItemsReportStatusCall {
10594	c := &ProjectsJobsWorkItemsReportStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10595	c.projectId = projectId
10596	c.jobId = jobId
10597	c.reportworkitemstatusrequest = reportworkitemstatusrequest
10598	return c
10599}
10600
10601// Fields allows partial responses to be retrieved. See
10602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10603// for more information.
10604func (c *ProjectsJobsWorkItemsReportStatusCall) Fields(s ...googleapi.Field) *ProjectsJobsWorkItemsReportStatusCall {
10605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10606	return c
10607}
10608
10609// Context sets the context to be used in this call's Do method. Any
10610// pending HTTP request will be aborted if the provided context is
10611// canceled.
10612func (c *ProjectsJobsWorkItemsReportStatusCall) Context(ctx context.Context) *ProjectsJobsWorkItemsReportStatusCall {
10613	c.ctx_ = ctx
10614	return c
10615}
10616
10617// Header returns an http.Header that can be modified by the caller to
10618// add HTTP headers to the request.
10619func (c *ProjectsJobsWorkItemsReportStatusCall) Header() http.Header {
10620	if c.header_ == nil {
10621		c.header_ = make(http.Header)
10622	}
10623	return c.header_
10624}
10625
10626func (c *ProjectsJobsWorkItemsReportStatusCall) doRequest(alt string) (*http.Response, error) {
10627	reqHeaders := make(http.Header)
10628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
10629	for k, v := range c.header_ {
10630		reqHeaders[k] = v
10631	}
10632	reqHeaders.Set("User-Agent", c.s.userAgent())
10633	var body io.Reader = nil
10634	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reportworkitemstatusrequest)
10635	if err != nil {
10636		return nil, err
10637	}
10638	reqHeaders.Set("Content-Type", "application/json")
10639	c.urlParams_.Set("alt", alt)
10640	c.urlParams_.Set("prettyPrint", "false")
10641	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus")
10642	urls += "?" + c.urlParams_.Encode()
10643	req, err := http.NewRequest("POST", urls, body)
10644	if err != nil {
10645		return nil, err
10646	}
10647	req.Header = reqHeaders
10648	googleapi.Expand(req.URL, map[string]string{
10649		"projectId": c.projectId,
10650		"jobId":     c.jobId,
10651	})
10652	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10653}
10654
10655// Do executes the "dataflow.projects.jobs.workItems.reportStatus" call.
10656// Exactly one of *ReportWorkItemStatusResponse or error will be
10657// non-nil. Any non-2xx status code is an error. Response headers are in
10658// either *ReportWorkItemStatusResponse.ServerResponse.Header or (if a
10659// response was returned at all) in error.(*googleapi.Error).Header. Use
10660// googleapi.IsNotModified to check whether the returned error was
10661// because http.StatusNotModified was returned.
10662func (c *ProjectsJobsWorkItemsReportStatusCall) Do(opts ...googleapi.CallOption) (*ReportWorkItemStatusResponse, error) {
10663	gensupport.SetOptions(c.urlParams_, opts...)
10664	res, err := c.doRequest("json")
10665	if res != nil && res.StatusCode == http.StatusNotModified {
10666		if res.Body != nil {
10667			res.Body.Close()
10668		}
10669		return nil, &googleapi.Error{
10670			Code:   res.StatusCode,
10671			Header: res.Header,
10672		}
10673	}
10674	if err != nil {
10675		return nil, err
10676	}
10677	defer googleapi.CloseBody(res)
10678	if err := googleapi.CheckResponse(res); err != nil {
10679		return nil, err
10680	}
10681	ret := &ReportWorkItemStatusResponse{
10682		ServerResponse: googleapi.ServerResponse{
10683			Header:         res.Header,
10684			HTTPStatusCode: res.StatusCode,
10685		},
10686	}
10687	target := &ret
10688	if err := gensupport.DecodeResponse(target, res); err != nil {
10689		return nil, err
10690	}
10691	return ret, nil
10692	// {
10693	//   "description": "Reports the status of dataflow WorkItems leased by a worker.",
10694	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus",
10695	//   "httpMethod": "POST",
10696	//   "id": "dataflow.projects.jobs.workItems.reportStatus",
10697	//   "parameterOrder": [
10698	//     "projectId",
10699	//     "jobId"
10700	//   ],
10701	//   "parameters": {
10702	//     "jobId": {
10703	//       "description": "The job which the WorkItem is part of.",
10704	//       "location": "path",
10705	//       "required": true,
10706	//       "type": "string"
10707	//     },
10708	//     "projectId": {
10709	//       "description": "The project which owns the WorkItem's job.",
10710	//       "location": "path",
10711	//       "required": true,
10712	//       "type": "string"
10713	//     }
10714	//   },
10715	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus",
10716	//   "request": {
10717	//     "$ref": "ReportWorkItemStatusRequest"
10718	//   },
10719	//   "response": {
10720	//     "$ref": "ReportWorkItemStatusResponse"
10721	//   },
10722	//   "scopes": [
10723	//     "https://www.googleapis.com/auth/cloud-platform",
10724	//     "https://www.googleapis.com/auth/compute",
10725	//     "https://www.googleapis.com/auth/compute.readonly",
10726	//     "https://www.googleapis.com/auth/userinfo.email"
10727	//   ]
10728	// }
10729
10730}
10731
10732// method id "dataflow.projects.locations.workerMessages":
10733
10734type ProjectsLocationsWorkerMessagesCall struct {
10735	s                         *Service
10736	projectId                 string
10737	location                  string
10738	sendworkermessagesrequest *SendWorkerMessagesRequest
10739	urlParams_                gensupport.URLParams
10740	ctx_                      context.Context
10741	header_                   http.Header
10742}
10743
10744// WorkerMessages: Send a worker_message to the service.
10745//
10746// - location: The [regional endpoint]
10747//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
10748//   that contains the job.
10749// - projectId: The project to send the WorkerMessages to.
10750func (r *ProjectsLocationsService) WorkerMessages(projectId string, location string, sendworkermessagesrequest *SendWorkerMessagesRequest) *ProjectsLocationsWorkerMessagesCall {
10751	c := &ProjectsLocationsWorkerMessagesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10752	c.projectId = projectId
10753	c.location = location
10754	c.sendworkermessagesrequest = sendworkermessagesrequest
10755	return c
10756}
10757
10758// Fields allows partial responses to be retrieved. See
10759// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10760// for more information.
10761func (c *ProjectsLocationsWorkerMessagesCall) Fields(s ...googleapi.Field) *ProjectsLocationsWorkerMessagesCall {
10762	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10763	return c
10764}
10765
10766// Context sets the context to be used in this call's Do method. Any
10767// pending HTTP request will be aborted if the provided context is
10768// canceled.
10769func (c *ProjectsLocationsWorkerMessagesCall) Context(ctx context.Context) *ProjectsLocationsWorkerMessagesCall {
10770	c.ctx_ = ctx
10771	return c
10772}
10773
10774// Header returns an http.Header that can be modified by the caller to
10775// add HTTP headers to the request.
10776func (c *ProjectsLocationsWorkerMessagesCall) Header() http.Header {
10777	if c.header_ == nil {
10778		c.header_ = make(http.Header)
10779	}
10780	return c.header_
10781}
10782
10783func (c *ProjectsLocationsWorkerMessagesCall) doRequest(alt string) (*http.Response, error) {
10784	reqHeaders := make(http.Header)
10785	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
10786	for k, v := range c.header_ {
10787		reqHeaders[k] = v
10788	}
10789	reqHeaders.Set("User-Agent", c.s.userAgent())
10790	var body io.Reader = nil
10791	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sendworkermessagesrequest)
10792	if err != nil {
10793		return nil, err
10794	}
10795	reqHeaders.Set("Content-Type", "application/json")
10796	c.urlParams_.Set("alt", alt)
10797	c.urlParams_.Set("prettyPrint", "false")
10798	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/WorkerMessages")
10799	urls += "?" + c.urlParams_.Encode()
10800	req, err := http.NewRequest("POST", urls, body)
10801	if err != nil {
10802		return nil, err
10803	}
10804	req.Header = reqHeaders
10805	googleapi.Expand(req.URL, map[string]string{
10806		"projectId": c.projectId,
10807		"location":  c.location,
10808	})
10809	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10810}
10811
10812// Do executes the "dataflow.projects.locations.workerMessages" call.
10813// Exactly one of *SendWorkerMessagesResponse or error will be non-nil.
10814// Any non-2xx status code is an error. Response headers are in either
10815// *SendWorkerMessagesResponse.ServerResponse.Header or (if a response
10816// was returned at all) in error.(*googleapi.Error).Header. Use
10817// googleapi.IsNotModified to check whether the returned error was
10818// because http.StatusNotModified was returned.
10819func (c *ProjectsLocationsWorkerMessagesCall) Do(opts ...googleapi.CallOption) (*SendWorkerMessagesResponse, error) {
10820	gensupport.SetOptions(c.urlParams_, opts...)
10821	res, err := c.doRequest("json")
10822	if res != nil && res.StatusCode == http.StatusNotModified {
10823		if res.Body != nil {
10824			res.Body.Close()
10825		}
10826		return nil, &googleapi.Error{
10827			Code:   res.StatusCode,
10828			Header: res.Header,
10829		}
10830	}
10831	if err != nil {
10832		return nil, err
10833	}
10834	defer googleapi.CloseBody(res)
10835	if err := googleapi.CheckResponse(res); err != nil {
10836		return nil, err
10837	}
10838	ret := &SendWorkerMessagesResponse{
10839		ServerResponse: googleapi.ServerResponse{
10840			Header:         res.Header,
10841			HTTPStatusCode: res.StatusCode,
10842		},
10843	}
10844	target := &ret
10845	if err := gensupport.DecodeResponse(target, res); err != nil {
10846		return nil, err
10847	}
10848	return ret, nil
10849	// {
10850	//   "description": "Send a worker_message to the service.",
10851	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/WorkerMessages",
10852	//   "httpMethod": "POST",
10853	//   "id": "dataflow.projects.locations.workerMessages",
10854	//   "parameterOrder": [
10855	//     "projectId",
10856	//     "location"
10857	//   ],
10858	//   "parameters": {
10859	//     "location": {
10860	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job.",
10861	//       "location": "path",
10862	//       "required": true,
10863	//       "type": "string"
10864	//     },
10865	//     "projectId": {
10866	//       "description": "The project to send the WorkerMessages to.",
10867	//       "location": "path",
10868	//       "required": true,
10869	//       "type": "string"
10870	//     }
10871	//   },
10872	//   "path": "v1b3/projects/{projectId}/locations/{location}/WorkerMessages",
10873	//   "request": {
10874	//     "$ref": "SendWorkerMessagesRequest"
10875	//   },
10876	//   "response": {
10877	//     "$ref": "SendWorkerMessagesResponse"
10878	//   },
10879	//   "scopes": [
10880	//     "https://www.googleapis.com/auth/cloud-platform",
10881	//     "https://www.googleapis.com/auth/compute",
10882	//     "https://www.googleapis.com/auth/compute.readonly",
10883	//     "https://www.googleapis.com/auth/userinfo.email"
10884	//   ]
10885	// }
10886
10887}
10888
10889// method id "dataflow.projects.locations.flexTemplates.launch":
10890
10891type ProjectsLocationsFlexTemplatesLaunchCall struct {
10892	s                         *Service
10893	projectId                 string
10894	location                  string
10895	launchflextemplaterequest *LaunchFlexTemplateRequest
10896	urlParams_                gensupport.URLParams
10897	ctx_                      context.Context
10898	header_                   http.Header
10899}
10900
10901// Launch: Launch a job with a FlexTemplate.
10902//
10903// - location: The [regional endpoint]
10904//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
10905//   to which to direct the request. E.g., us-central1, us-west1.
10906// - projectId: The ID of the Cloud Platform project that the job
10907//   belongs to.
10908func (r *ProjectsLocationsFlexTemplatesService) Launch(projectId string, location string, launchflextemplaterequest *LaunchFlexTemplateRequest) *ProjectsLocationsFlexTemplatesLaunchCall {
10909	c := &ProjectsLocationsFlexTemplatesLaunchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10910	c.projectId = projectId
10911	c.location = location
10912	c.launchflextemplaterequest = launchflextemplaterequest
10913	return c
10914}
10915
10916// Fields allows partial responses to be retrieved. See
10917// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10918// for more information.
10919func (c *ProjectsLocationsFlexTemplatesLaunchCall) Fields(s ...googleapi.Field) *ProjectsLocationsFlexTemplatesLaunchCall {
10920	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10921	return c
10922}
10923
10924// Context sets the context to be used in this call's Do method. Any
10925// pending HTTP request will be aborted if the provided context is
10926// canceled.
10927func (c *ProjectsLocationsFlexTemplatesLaunchCall) Context(ctx context.Context) *ProjectsLocationsFlexTemplatesLaunchCall {
10928	c.ctx_ = ctx
10929	return c
10930}
10931
10932// Header returns an http.Header that can be modified by the caller to
10933// add HTTP headers to the request.
10934func (c *ProjectsLocationsFlexTemplatesLaunchCall) Header() http.Header {
10935	if c.header_ == nil {
10936		c.header_ = make(http.Header)
10937	}
10938	return c.header_
10939}
10940
10941func (c *ProjectsLocationsFlexTemplatesLaunchCall) doRequest(alt string) (*http.Response, error) {
10942	reqHeaders := make(http.Header)
10943	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
10944	for k, v := range c.header_ {
10945		reqHeaders[k] = v
10946	}
10947	reqHeaders.Set("User-Agent", c.s.userAgent())
10948	var body io.Reader = nil
10949	body, err := googleapi.WithoutDataWrapper.JSONReader(c.launchflextemplaterequest)
10950	if err != nil {
10951		return nil, err
10952	}
10953	reqHeaders.Set("Content-Type", "application/json")
10954	c.urlParams_.Set("alt", alt)
10955	c.urlParams_.Set("prettyPrint", "false")
10956	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/flexTemplates:launch")
10957	urls += "?" + c.urlParams_.Encode()
10958	req, err := http.NewRequest("POST", urls, body)
10959	if err != nil {
10960		return nil, err
10961	}
10962	req.Header = reqHeaders
10963	googleapi.Expand(req.URL, map[string]string{
10964		"projectId": c.projectId,
10965		"location":  c.location,
10966	})
10967	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10968}
10969
10970// Do executes the "dataflow.projects.locations.flexTemplates.launch" call.
10971// Exactly one of *LaunchFlexTemplateResponse or error will be non-nil.
10972// Any non-2xx status code is an error. Response headers are in either
10973// *LaunchFlexTemplateResponse.ServerResponse.Header or (if a response
10974// was returned at all) in error.(*googleapi.Error).Header. Use
10975// googleapi.IsNotModified to check whether the returned error was
10976// because http.StatusNotModified was returned.
10977func (c *ProjectsLocationsFlexTemplatesLaunchCall) Do(opts ...googleapi.CallOption) (*LaunchFlexTemplateResponse, error) {
10978	gensupport.SetOptions(c.urlParams_, opts...)
10979	res, err := c.doRequest("json")
10980	if res != nil && res.StatusCode == http.StatusNotModified {
10981		if res.Body != nil {
10982			res.Body.Close()
10983		}
10984		return nil, &googleapi.Error{
10985			Code:   res.StatusCode,
10986			Header: res.Header,
10987		}
10988	}
10989	if err != nil {
10990		return nil, err
10991	}
10992	defer googleapi.CloseBody(res)
10993	if err := googleapi.CheckResponse(res); err != nil {
10994		return nil, err
10995	}
10996	ret := &LaunchFlexTemplateResponse{
10997		ServerResponse: googleapi.ServerResponse{
10998			Header:         res.Header,
10999			HTTPStatusCode: res.StatusCode,
11000		},
11001	}
11002	target := &ret
11003	if err := gensupport.DecodeResponse(target, res); err != nil {
11004		return nil, err
11005	}
11006	return ret, nil
11007	// {
11008	//   "description": "Launch a job with a FlexTemplate.",
11009	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/flexTemplates:launch",
11010	//   "httpMethod": "POST",
11011	//   "id": "dataflow.projects.locations.flexTemplates.launch",
11012	//   "parameterOrder": [
11013	//     "projectId",
11014	//     "location"
11015	//   ],
11016	//   "parameters": {
11017	//     "location": {
11018	//       "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.",
11019	//       "location": "path",
11020	//       "required": true,
11021	//       "type": "string"
11022	//     },
11023	//     "projectId": {
11024	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
11025	//       "location": "path",
11026	//       "required": true,
11027	//       "type": "string"
11028	//     }
11029	//   },
11030	//   "path": "v1b3/projects/{projectId}/locations/{location}/flexTemplates:launch",
11031	//   "request": {
11032	//     "$ref": "LaunchFlexTemplateRequest"
11033	//   },
11034	//   "response": {
11035	//     "$ref": "LaunchFlexTemplateResponse"
11036	//   },
11037	//   "scopes": [
11038	//     "https://www.googleapis.com/auth/cloud-platform",
11039	//     "https://www.googleapis.com/auth/compute",
11040	//     "https://www.googleapis.com/auth/compute.readonly",
11041	//     "https://www.googleapis.com/auth/userinfo.email"
11042	//   ]
11043	// }
11044
11045}
11046
11047// method id "dataflow.projects.locations.jobs.create":
11048
11049type ProjectsLocationsJobsCreateCall struct {
11050	s          *Service
11051	projectId  string
11052	location   string
11053	job        *Job
11054	urlParams_ gensupport.URLParams
11055	ctx_       context.Context
11056	header_    http.Header
11057}
11058
11059// Create: Creates a Cloud Dataflow job. To create a job, we recommend
11060// using `projects.locations.jobs.create` with a [regional endpoint]
11061// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
11062// Using `projects.jobs.create` is not recommended, as your job will
11063// always start in `us-central1`.
11064//
11065// - location: The [regional endpoint]
11066//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
11067//   that contains this job.
11068// - projectId: The ID of the Cloud Platform project that the job
11069//   belongs to.
11070func (r *ProjectsLocationsJobsService) Create(projectId string, location string, job *Job) *ProjectsLocationsJobsCreateCall {
11071	c := &ProjectsLocationsJobsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11072	c.projectId = projectId
11073	c.location = location
11074	c.job = job
11075	return c
11076}
11077
11078// ReplaceJobId sets the optional parameter "replaceJobId": Deprecated.
11079// This field is now in the Job message.
11080func (c *ProjectsLocationsJobsCreateCall) ReplaceJobId(replaceJobId string) *ProjectsLocationsJobsCreateCall {
11081	c.urlParams_.Set("replaceJobId", replaceJobId)
11082	return c
11083}
11084
11085// View sets the optional parameter "view": The level of information
11086// requested in response.
11087//
11088// Possible values:
11089//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
11090// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
11091// information, and may contain additional information.
11092//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
11093// Job ID, job name, job type, job status, start/end time, and Cloud SDK
11094// version details.
11095//   "JOB_VIEW_ALL" - Request all information available for this job.
11096//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
11097// description data for steps, labels and environment.
11098func (c *ProjectsLocationsJobsCreateCall) View(view string) *ProjectsLocationsJobsCreateCall {
11099	c.urlParams_.Set("view", view)
11100	return c
11101}
11102
11103// Fields allows partial responses to be retrieved. See
11104// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11105// for more information.
11106func (c *ProjectsLocationsJobsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsCreateCall {
11107	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11108	return c
11109}
11110
11111// Context sets the context to be used in this call's Do method. Any
11112// pending HTTP request will be aborted if the provided context is
11113// canceled.
11114func (c *ProjectsLocationsJobsCreateCall) Context(ctx context.Context) *ProjectsLocationsJobsCreateCall {
11115	c.ctx_ = ctx
11116	return c
11117}
11118
11119// Header returns an http.Header that can be modified by the caller to
11120// add HTTP headers to the request.
11121func (c *ProjectsLocationsJobsCreateCall) Header() http.Header {
11122	if c.header_ == nil {
11123		c.header_ = make(http.Header)
11124	}
11125	return c.header_
11126}
11127
11128func (c *ProjectsLocationsJobsCreateCall) doRequest(alt string) (*http.Response, error) {
11129	reqHeaders := make(http.Header)
11130	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
11131	for k, v := range c.header_ {
11132		reqHeaders[k] = v
11133	}
11134	reqHeaders.Set("User-Agent", c.s.userAgent())
11135	var body io.Reader = nil
11136	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
11137	if err != nil {
11138		return nil, err
11139	}
11140	reqHeaders.Set("Content-Type", "application/json")
11141	c.urlParams_.Set("alt", alt)
11142	c.urlParams_.Set("prettyPrint", "false")
11143	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs")
11144	urls += "?" + c.urlParams_.Encode()
11145	req, err := http.NewRequest("POST", urls, body)
11146	if err != nil {
11147		return nil, err
11148	}
11149	req.Header = reqHeaders
11150	googleapi.Expand(req.URL, map[string]string{
11151		"projectId": c.projectId,
11152		"location":  c.location,
11153	})
11154	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11155}
11156
11157// Do executes the "dataflow.projects.locations.jobs.create" call.
11158// Exactly one of *Job or error will be non-nil. Any non-2xx status code
11159// is an error. Response headers are in either
11160// *Job.ServerResponse.Header or (if a response was returned at all) in
11161// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
11162// whether the returned error was because http.StatusNotModified was
11163// returned.
11164func (c *ProjectsLocationsJobsCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
11165	gensupport.SetOptions(c.urlParams_, opts...)
11166	res, err := c.doRequest("json")
11167	if res != nil && res.StatusCode == http.StatusNotModified {
11168		if res.Body != nil {
11169			res.Body.Close()
11170		}
11171		return nil, &googleapi.Error{
11172			Code:   res.StatusCode,
11173			Header: res.Header,
11174		}
11175	}
11176	if err != nil {
11177		return nil, err
11178	}
11179	defer googleapi.CloseBody(res)
11180	if err := googleapi.CheckResponse(res); err != nil {
11181		return nil, err
11182	}
11183	ret := &Job{
11184		ServerResponse: googleapi.ServerResponse{
11185			Header:         res.Header,
11186			HTTPStatusCode: res.StatusCode,
11187		},
11188	}
11189	target := &ret
11190	if err := gensupport.DecodeResponse(target, res); err != nil {
11191		return nil, err
11192	}
11193	return ret, nil
11194	// {
11195	//   "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`.",
11196	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs",
11197	//   "httpMethod": "POST",
11198	//   "id": "dataflow.projects.locations.jobs.create",
11199	//   "parameterOrder": [
11200	//     "projectId",
11201	//     "location"
11202	//   ],
11203	//   "parameters": {
11204	//     "location": {
11205	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
11206	//       "location": "path",
11207	//       "required": true,
11208	//       "type": "string"
11209	//     },
11210	//     "projectId": {
11211	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
11212	//       "location": "path",
11213	//       "required": true,
11214	//       "type": "string"
11215	//     },
11216	//     "replaceJobId": {
11217	//       "description": "Deprecated. This field is now in the Job message.",
11218	//       "location": "query",
11219	//       "type": "string"
11220	//     },
11221	//     "view": {
11222	//       "description": "The level of information requested in response.",
11223	//       "enum": [
11224	//         "JOB_VIEW_UNKNOWN",
11225	//         "JOB_VIEW_SUMMARY",
11226	//         "JOB_VIEW_ALL",
11227	//         "JOB_VIEW_DESCRIPTION"
11228	//       ],
11229	//       "enumDescriptions": [
11230	//         "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.",
11231	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
11232	//         "Request all information available for this job.",
11233	//         "Request summary info and limited job description data for steps, labels and environment."
11234	//       ],
11235	//       "location": "query",
11236	//       "type": "string"
11237	//     }
11238	//   },
11239	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs",
11240	//   "request": {
11241	//     "$ref": "Job"
11242	//   },
11243	//   "response": {
11244	//     "$ref": "Job"
11245	//   },
11246	//   "scopes": [
11247	//     "https://www.googleapis.com/auth/cloud-platform",
11248	//     "https://www.googleapis.com/auth/compute",
11249	//     "https://www.googleapis.com/auth/compute.readonly",
11250	//     "https://www.googleapis.com/auth/userinfo.email"
11251	//   ]
11252	// }
11253
11254}
11255
11256// method id "dataflow.projects.locations.jobs.get":
11257
11258type ProjectsLocationsJobsGetCall struct {
11259	s            *Service
11260	projectId    string
11261	location     string
11262	jobId        string
11263	urlParams_   gensupport.URLParams
11264	ifNoneMatch_ string
11265	ctx_         context.Context
11266	header_      http.Header
11267}
11268
11269// Get: Gets the state of the specified Cloud Dataflow job. To get the
11270// state of a job, we recommend using `projects.locations.jobs.get` with
11271// a [regional endpoint]
11272// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
11273// Using `projects.jobs.get` is not recommended, as you can only get the
11274// state of jobs that are running in `us-central1`.
11275//
11276// - jobId: The job ID.
11277// - location: The [regional endpoint]
11278//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
11279//   that contains this job.
11280// - projectId: The ID of the Cloud Platform project that the job
11281//   belongs to.
11282func (r *ProjectsLocationsJobsService) Get(projectId string, location string, jobId string) *ProjectsLocationsJobsGetCall {
11283	c := &ProjectsLocationsJobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11284	c.projectId = projectId
11285	c.location = location
11286	c.jobId = jobId
11287	return c
11288}
11289
11290// View sets the optional parameter "view": The level of information
11291// requested in response.
11292//
11293// Possible values:
11294//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
11295// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
11296// information, and may contain additional information.
11297//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
11298// Job ID, job name, job type, job status, start/end time, and Cloud SDK
11299// version details.
11300//   "JOB_VIEW_ALL" - Request all information available for this job.
11301//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
11302// description data for steps, labels and environment.
11303func (c *ProjectsLocationsJobsGetCall) View(view string) *ProjectsLocationsJobsGetCall {
11304	c.urlParams_.Set("view", view)
11305	return c
11306}
11307
11308// Fields allows partial responses to be retrieved. See
11309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11310// for more information.
11311func (c *ProjectsLocationsJobsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsGetCall {
11312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11313	return c
11314}
11315
11316// IfNoneMatch sets the optional parameter which makes the operation
11317// fail if the object's ETag matches the given value. This is useful for
11318// getting updates only after the object has changed since the last
11319// request. Use googleapi.IsNotModified to check whether the response
11320// error from Do is the result of In-None-Match.
11321func (c *ProjectsLocationsJobsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsGetCall {
11322	c.ifNoneMatch_ = entityTag
11323	return c
11324}
11325
11326// Context sets the context to be used in this call's Do method. Any
11327// pending HTTP request will be aborted if the provided context is
11328// canceled.
11329func (c *ProjectsLocationsJobsGetCall) Context(ctx context.Context) *ProjectsLocationsJobsGetCall {
11330	c.ctx_ = ctx
11331	return c
11332}
11333
11334// Header returns an http.Header that can be modified by the caller to
11335// add HTTP headers to the request.
11336func (c *ProjectsLocationsJobsGetCall) Header() http.Header {
11337	if c.header_ == nil {
11338		c.header_ = make(http.Header)
11339	}
11340	return c.header_
11341}
11342
11343func (c *ProjectsLocationsJobsGetCall) doRequest(alt string) (*http.Response, error) {
11344	reqHeaders := make(http.Header)
11345	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
11346	for k, v := range c.header_ {
11347		reqHeaders[k] = v
11348	}
11349	reqHeaders.Set("User-Agent", c.s.userAgent())
11350	if c.ifNoneMatch_ != "" {
11351		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11352	}
11353	var body io.Reader = nil
11354	c.urlParams_.Set("alt", alt)
11355	c.urlParams_.Set("prettyPrint", "false")
11356	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}")
11357	urls += "?" + c.urlParams_.Encode()
11358	req, err := http.NewRequest("GET", urls, body)
11359	if err != nil {
11360		return nil, err
11361	}
11362	req.Header = reqHeaders
11363	googleapi.Expand(req.URL, map[string]string{
11364		"projectId": c.projectId,
11365		"location":  c.location,
11366		"jobId":     c.jobId,
11367	})
11368	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11369}
11370
11371// Do executes the "dataflow.projects.locations.jobs.get" call.
11372// Exactly one of *Job or error will be non-nil. Any non-2xx status code
11373// is an error. Response headers are in either
11374// *Job.ServerResponse.Header or (if a response was returned at all) in
11375// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
11376// whether the returned error was because http.StatusNotModified was
11377// returned.
11378func (c *ProjectsLocationsJobsGetCall) Do(opts ...googleapi.CallOption) (*Job, error) {
11379	gensupport.SetOptions(c.urlParams_, opts...)
11380	res, err := c.doRequest("json")
11381	if res != nil && res.StatusCode == http.StatusNotModified {
11382		if res.Body != nil {
11383			res.Body.Close()
11384		}
11385		return nil, &googleapi.Error{
11386			Code:   res.StatusCode,
11387			Header: res.Header,
11388		}
11389	}
11390	if err != nil {
11391		return nil, err
11392	}
11393	defer googleapi.CloseBody(res)
11394	if err := googleapi.CheckResponse(res); err != nil {
11395		return nil, err
11396	}
11397	ret := &Job{
11398		ServerResponse: googleapi.ServerResponse{
11399			Header:         res.Header,
11400			HTTPStatusCode: res.StatusCode,
11401		},
11402	}
11403	target := &ret
11404	if err := gensupport.DecodeResponse(target, res); err != nil {
11405		return nil, err
11406	}
11407	return ret, nil
11408	// {
11409	//   "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`.",
11410	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
11411	//   "httpMethod": "GET",
11412	//   "id": "dataflow.projects.locations.jobs.get",
11413	//   "parameterOrder": [
11414	//     "projectId",
11415	//     "location",
11416	//     "jobId"
11417	//   ],
11418	//   "parameters": {
11419	//     "jobId": {
11420	//       "description": "The job ID.",
11421	//       "location": "path",
11422	//       "required": true,
11423	//       "type": "string"
11424	//     },
11425	//     "location": {
11426	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
11427	//       "location": "path",
11428	//       "required": true,
11429	//       "type": "string"
11430	//     },
11431	//     "projectId": {
11432	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
11433	//       "location": "path",
11434	//       "required": true,
11435	//       "type": "string"
11436	//     },
11437	//     "view": {
11438	//       "description": "The level of information requested in response.",
11439	//       "enum": [
11440	//         "JOB_VIEW_UNKNOWN",
11441	//         "JOB_VIEW_SUMMARY",
11442	//         "JOB_VIEW_ALL",
11443	//         "JOB_VIEW_DESCRIPTION"
11444	//       ],
11445	//       "enumDescriptions": [
11446	//         "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.",
11447	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
11448	//         "Request all information available for this job.",
11449	//         "Request summary info and limited job description data for steps, labels and environment."
11450	//       ],
11451	//       "location": "query",
11452	//       "type": "string"
11453	//     }
11454	//   },
11455	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
11456	//   "response": {
11457	//     "$ref": "Job"
11458	//   },
11459	//   "scopes": [
11460	//     "https://www.googleapis.com/auth/cloud-platform",
11461	//     "https://www.googleapis.com/auth/compute",
11462	//     "https://www.googleapis.com/auth/compute.readonly",
11463	//     "https://www.googleapis.com/auth/userinfo.email"
11464	//   ]
11465	// }
11466
11467}
11468
11469// method id "dataflow.projects.locations.jobs.getExecutionDetails":
11470
11471type ProjectsLocationsJobsGetExecutionDetailsCall struct {
11472	s            *Service
11473	projectId    string
11474	location     string
11475	jobId        string
11476	urlParams_   gensupport.URLParams
11477	ifNoneMatch_ string
11478	ctx_         context.Context
11479	header_      http.Header
11480}
11481
11482// GetExecutionDetails: Request detailed information about the execution
11483// status of the job. EXPERIMENTAL. This API is subject to change or
11484// removal without notice.
11485//
11486// - jobId: The job to get execution details for.
11487// - location: The [regional endpoint]
11488//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
11489//   that contains the job specified by job_id.
11490// - projectId: A project id.
11491func (r *ProjectsLocationsJobsService) GetExecutionDetails(projectId string, location string, jobId string) *ProjectsLocationsJobsGetExecutionDetailsCall {
11492	c := &ProjectsLocationsJobsGetExecutionDetailsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11493	c.projectId = projectId
11494	c.location = location
11495	c.jobId = jobId
11496	return c
11497}
11498
11499// PageSize sets the optional parameter "pageSize": If specified,
11500// determines the maximum number of stages to return. If unspecified,
11501// the service may choose an appropriate default, or may return an
11502// arbitrarily large number of results.
11503func (c *ProjectsLocationsJobsGetExecutionDetailsCall) PageSize(pageSize int64) *ProjectsLocationsJobsGetExecutionDetailsCall {
11504	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
11505	return c
11506}
11507
11508// PageToken sets the optional parameter "pageToken": If supplied, this
11509// should be the value of next_page_token returned by an earlier call.
11510// This will cause the next page of results to be returned.
11511func (c *ProjectsLocationsJobsGetExecutionDetailsCall) PageToken(pageToken string) *ProjectsLocationsJobsGetExecutionDetailsCall {
11512	c.urlParams_.Set("pageToken", pageToken)
11513	return c
11514}
11515
11516// Fields allows partial responses to be retrieved. See
11517// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11518// for more information.
11519func (c *ProjectsLocationsJobsGetExecutionDetailsCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsGetExecutionDetailsCall {
11520	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11521	return c
11522}
11523
11524// IfNoneMatch sets the optional parameter which makes the operation
11525// fail if the object's ETag matches the given value. This is useful for
11526// getting updates only after the object has changed since the last
11527// request. Use googleapi.IsNotModified to check whether the response
11528// error from Do is the result of In-None-Match.
11529func (c *ProjectsLocationsJobsGetExecutionDetailsCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsGetExecutionDetailsCall {
11530	c.ifNoneMatch_ = entityTag
11531	return c
11532}
11533
11534// Context sets the context to be used in this call's Do method. Any
11535// pending HTTP request will be aborted if the provided context is
11536// canceled.
11537func (c *ProjectsLocationsJobsGetExecutionDetailsCall) Context(ctx context.Context) *ProjectsLocationsJobsGetExecutionDetailsCall {
11538	c.ctx_ = ctx
11539	return c
11540}
11541
11542// Header returns an http.Header that can be modified by the caller to
11543// add HTTP headers to the request.
11544func (c *ProjectsLocationsJobsGetExecutionDetailsCall) Header() http.Header {
11545	if c.header_ == nil {
11546		c.header_ = make(http.Header)
11547	}
11548	return c.header_
11549}
11550
11551func (c *ProjectsLocationsJobsGetExecutionDetailsCall) doRequest(alt string) (*http.Response, error) {
11552	reqHeaders := make(http.Header)
11553	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
11554	for k, v := range c.header_ {
11555		reqHeaders[k] = v
11556	}
11557	reqHeaders.Set("User-Agent", c.s.userAgent())
11558	if c.ifNoneMatch_ != "" {
11559		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11560	}
11561	var body io.Reader = nil
11562	c.urlParams_.Set("alt", alt)
11563	c.urlParams_.Set("prettyPrint", "false")
11564	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/executionDetails")
11565	urls += "?" + c.urlParams_.Encode()
11566	req, err := http.NewRequest("GET", urls, body)
11567	if err != nil {
11568		return nil, err
11569	}
11570	req.Header = reqHeaders
11571	googleapi.Expand(req.URL, map[string]string{
11572		"projectId": c.projectId,
11573		"location":  c.location,
11574		"jobId":     c.jobId,
11575	})
11576	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11577}
11578
11579// Do executes the "dataflow.projects.locations.jobs.getExecutionDetails" call.
11580// Exactly one of *JobExecutionDetails or error will be non-nil. Any
11581// non-2xx status code is an error. Response headers are in either
11582// *JobExecutionDetails.ServerResponse.Header or (if a response was
11583// returned at all) in error.(*googleapi.Error).Header. Use
11584// googleapi.IsNotModified to check whether the returned error was
11585// because http.StatusNotModified was returned.
11586func (c *ProjectsLocationsJobsGetExecutionDetailsCall) Do(opts ...googleapi.CallOption) (*JobExecutionDetails, error) {
11587	gensupport.SetOptions(c.urlParams_, opts...)
11588	res, err := c.doRequest("json")
11589	if res != nil && res.StatusCode == http.StatusNotModified {
11590		if res.Body != nil {
11591			res.Body.Close()
11592		}
11593		return nil, &googleapi.Error{
11594			Code:   res.StatusCode,
11595			Header: res.Header,
11596		}
11597	}
11598	if err != nil {
11599		return nil, err
11600	}
11601	defer googleapi.CloseBody(res)
11602	if err := googleapi.CheckResponse(res); err != nil {
11603		return nil, err
11604	}
11605	ret := &JobExecutionDetails{
11606		ServerResponse: googleapi.ServerResponse{
11607			Header:         res.Header,
11608			HTTPStatusCode: res.StatusCode,
11609		},
11610	}
11611	target := &ret
11612	if err := gensupport.DecodeResponse(target, res); err != nil {
11613		return nil, err
11614	}
11615	return ret, nil
11616	// {
11617	//   "description": "Request detailed information about the execution status of the job. EXPERIMENTAL. This API is subject to change or removal without notice.",
11618	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/executionDetails",
11619	//   "httpMethod": "GET",
11620	//   "id": "dataflow.projects.locations.jobs.getExecutionDetails",
11621	//   "parameterOrder": [
11622	//     "projectId",
11623	//     "location",
11624	//     "jobId"
11625	//   ],
11626	//   "parameters": {
11627	//     "jobId": {
11628	//       "description": "The job to get execution details for.",
11629	//       "location": "path",
11630	//       "required": true,
11631	//       "type": "string"
11632	//     },
11633	//     "location": {
11634	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
11635	//       "location": "path",
11636	//       "required": true,
11637	//       "type": "string"
11638	//     },
11639	//     "pageSize": {
11640	//       "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.",
11641	//       "format": "int32",
11642	//       "location": "query",
11643	//       "type": "integer"
11644	//     },
11645	//     "pageToken": {
11646	//       "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.",
11647	//       "location": "query",
11648	//       "type": "string"
11649	//     },
11650	//     "projectId": {
11651	//       "description": "A project id.",
11652	//       "location": "path",
11653	//       "required": true,
11654	//       "type": "string"
11655	//     }
11656	//   },
11657	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/executionDetails",
11658	//   "response": {
11659	//     "$ref": "JobExecutionDetails"
11660	//   },
11661	//   "scopes": [
11662	//     "https://www.googleapis.com/auth/cloud-platform",
11663	//     "https://www.googleapis.com/auth/compute",
11664	//     "https://www.googleapis.com/auth/compute.readonly",
11665	//     "https://www.googleapis.com/auth/userinfo.email"
11666	//   ]
11667	// }
11668
11669}
11670
11671// Pages invokes f for each page of results.
11672// A non-nil error returned from f will halt the iteration.
11673// The provided context supersedes any context provided to the Context method.
11674func (c *ProjectsLocationsJobsGetExecutionDetailsCall) Pages(ctx context.Context, f func(*JobExecutionDetails) error) error {
11675	c.ctx_ = ctx
11676	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
11677	for {
11678		x, err := c.Do()
11679		if err != nil {
11680			return err
11681		}
11682		if err := f(x); err != nil {
11683			return err
11684		}
11685		if x.NextPageToken == "" {
11686			return nil
11687		}
11688		c.PageToken(x.NextPageToken)
11689	}
11690}
11691
11692// method id "dataflow.projects.locations.jobs.getMetrics":
11693
11694type ProjectsLocationsJobsGetMetricsCall struct {
11695	s            *Service
11696	projectId    string
11697	location     string
11698	jobId        string
11699	urlParams_   gensupport.URLParams
11700	ifNoneMatch_ string
11701	ctx_         context.Context
11702	header_      http.Header
11703}
11704
11705// GetMetrics: Request the job status. To request the status of a job,
11706// we recommend using `projects.locations.jobs.getMetrics` with a
11707// [regional endpoint]
11708// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
11709// Using `projects.jobs.getMetrics` is not recommended, as you can only
11710// request the status of jobs that are running in `us-central1`.
11711//
11712// - jobId: The job to get metrics for.
11713// - location: The [regional endpoint]
11714//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
11715//   that contains the job specified by job_id.
11716// - projectId: A project id.
11717func (r *ProjectsLocationsJobsService) GetMetrics(projectId string, location string, jobId string) *ProjectsLocationsJobsGetMetricsCall {
11718	c := &ProjectsLocationsJobsGetMetricsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11719	c.projectId = projectId
11720	c.location = location
11721	c.jobId = jobId
11722	return c
11723}
11724
11725// StartTime sets the optional parameter "startTime": Return only metric
11726// data that has changed since this time. Default is to return all
11727// information about all metrics for the job.
11728func (c *ProjectsLocationsJobsGetMetricsCall) StartTime(startTime string) *ProjectsLocationsJobsGetMetricsCall {
11729	c.urlParams_.Set("startTime", startTime)
11730	return c
11731}
11732
11733// Fields allows partial responses to be retrieved. See
11734// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11735// for more information.
11736func (c *ProjectsLocationsJobsGetMetricsCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsGetMetricsCall {
11737	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11738	return c
11739}
11740
11741// IfNoneMatch sets the optional parameter which makes the operation
11742// fail if the object's ETag matches the given value. This is useful for
11743// getting updates only after the object has changed since the last
11744// request. Use googleapi.IsNotModified to check whether the response
11745// error from Do is the result of In-None-Match.
11746func (c *ProjectsLocationsJobsGetMetricsCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsGetMetricsCall {
11747	c.ifNoneMatch_ = entityTag
11748	return c
11749}
11750
11751// Context sets the context to be used in this call's Do method. Any
11752// pending HTTP request will be aborted if the provided context is
11753// canceled.
11754func (c *ProjectsLocationsJobsGetMetricsCall) Context(ctx context.Context) *ProjectsLocationsJobsGetMetricsCall {
11755	c.ctx_ = ctx
11756	return c
11757}
11758
11759// Header returns an http.Header that can be modified by the caller to
11760// add HTTP headers to the request.
11761func (c *ProjectsLocationsJobsGetMetricsCall) Header() http.Header {
11762	if c.header_ == nil {
11763		c.header_ = make(http.Header)
11764	}
11765	return c.header_
11766}
11767
11768func (c *ProjectsLocationsJobsGetMetricsCall) doRequest(alt string) (*http.Response, error) {
11769	reqHeaders := make(http.Header)
11770	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
11771	for k, v := range c.header_ {
11772		reqHeaders[k] = v
11773	}
11774	reqHeaders.Set("User-Agent", c.s.userAgent())
11775	if c.ifNoneMatch_ != "" {
11776		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11777	}
11778	var body io.Reader = nil
11779	c.urlParams_.Set("alt", alt)
11780	c.urlParams_.Set("prettyPrint", "false")
11781	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/metrics")
11782	urls += "?" + c.urlParams_.Encode()
11783	req, err := http.NewRequest("GET", urls, body)
11784	if err != nil {
11785		return nil, err
11786	}
11787	req.Header = reqHeaders
11788	googleapi.Expand(req.URL, map[string]string{
11789		"projectId": c.projectId,
11790		"location":  c.location,
11791		"jobId":     c.jobId,
11792	})
11793	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11794}
11795
11796// Do executes the "dataflow.projects.locations.jobs.getMetrics" call.
11797// Exactly one of *JobMetrics or error will be non-nil. Any non-2xx
11798// status code is an error. Response headers are in either
11799// *JobMetrics.ServerResponse.Header or (if a response was returned at
11800// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11801// to check whether the returned error was because
11802// http.StatusNotModified was returned.
11803func (c *ProjectsLocationsJobsGetMetricsCall) Do(opts ...googleapi.CallOption) (*JobMetrics, error) {
11804	gensupport.SetOptions(c.urlParams_, opts...)
11805	res, err := c.doRequest("json")
11806	if res != nil && res.StatusCode == http.StatusNotModified {
11807		if res.Body != nil {
11808			res.Body.Close()
11809		}
11810		return nil, &googleapi.Error{
11811			Code:   res.StatusCode,
11812			Header: res.Header,
11813		}
11814	}
11815	if err != nil {
11816		return nil, err
11817	}
11818	defer googleapi.CloseBody(res)
11819	if err := googleapi.CheckResponse(res); err != nil {
11820		return nil, err
11821	}
11822	ret := &JobMetrics{
11823		ServerResponse: googleapi.ServerResponse{
11824			Header:         res.Header,
11825			HTTPStatusCode: res.StatusCode,
11826		},
11827	}
11828	target := &ret
11829	if err := gensupport.DecodeResponse(target, res); err != nil {
11830		return nil, err
11831	}
11832	return ret, nil
11833	// {
11834	//   "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`.",
11835	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/metrics",
11836	//   "httpMethod": "GET",
11837	//   "id": "dataflow.projects.locations.jobs.getMetrics",
11838	//   "parameterOrder": [
11839	//     "projectId",
11840	//     "location",
11841	//     "jobId"
11842	//   ],
11843	//   "parameters": {
11844	//     "jobId": {
11845	//       "description": "The job to get metrics for.",
11846	//       "location": "path",
11847	//       "required": true,
11848	//       "type": "string"
11849	//     },
11850	//     "location": {
11851	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
11852	//       "location": "path",
11853	//       "required": true,
11854	//       "type": "string"
11855	//     },
11856	//     "projectId": {
11857	//       "description": "A project id.",
11858	//       "location": "path",
11859	//       "required": true,
11860	//       "type": "string"
11861	//     },
11862	//     "startTime": {
11863	//       "description": "Return only metric data that has changed since this time. Default is to return all information about all metrics for the job.",
11864	//       "format": "google-datetime",
11865	//       "location": "query",
11866	//       "type": "string"
11867	//     }
11868	//   },
11869	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/metrics",
11870	//   "response": {
11871	//     "$ref": "JobMetrics"
11872	//   },
11873	//   "scopes": [
11874	//     "https://www.googleapis.com/auth/cloud-platform",
11875	//     "https://www.googleapis.com/auth/compute",
11876	//     "https://www.googleapis.com/auth/compute.readonly",
11877	//     "https://www.googleapis.com/auth/userinfo.email"
11878	//   ]
11879	// }
11880
11881}
11882
11883// method id "dataflow.projects.locations.jobs.list":
11884
11885type ProjectsLocationsJobsListCall struct {
11886	s            *Service
11887	projectId    string
11888	location     string
11889	urlParams_   gensupport.URLParams
11890	ifNoneMatch_ string
11891	ctx_         context.Context
11892	header_      http.Header
11893}
11894
11895// List: List the jobs of a project. To list the jobs of a project in a
11896// region, we recommend using `projects.locations.jobs.list` with a
11897// [regional endpoint]
11898// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
11899// To list the all jobs across all regions, use
11900// `projects.jobs.aggregated`. Using `projects.jobs.list` is not
11901// recommended, as you can only get the list of jobs that are running in
11902// `us-central1`.
11903//
11904// - location: The [regional endpoint]
11905//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
11906//   that contains this job.
11907// - projectId: The project which owns the jobs.
11908func (r *ProjectsLocationsJobsService) List(projectId string, location string) *ProjectsLocationsJobsListCall {
11909	c := &ProjectsLocationsJobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11910	c.projectId = projectId
11911	c.location = location
11912	return c
11913}
11914
11915// Filter sets the optional parameter "filter": The kind of filter to
11916// use.
11917//
11918// Possible values:
11919//   "UNKNOWN" - The filter isn't specified, or is unknown. This returns
11920// all jobs ordered on descending `JobUuid`.
11921//   "ALL" - Returns all running jobs first ordered on creation
11922// timestamp, then returns all terminated jobs ordered on the
11923// termination timestamp.
11924//   "TERMINATED" - Filters the jobs that have a terminated state,
11925// ordered on the termination timestamp. Example terminated states:
11926// `JOB_STATE_STOPPED`, `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.
11927//   "ACTIVE" - Filters the jobs that are running ordered on the
11928// creation timestamp.
11929func (c *ProjectsLocationsJobsListCall) Filter(filter string) *ProjectsLocationsJobsListCall {
11930	c.urlParams_.Set("filter", filter)
11931	return c
11932}
11933
11934// PageSize sets the optional parameter "pageSize": If there are many
11935// jobs, limit response to at most this many. The actual number of jobs
11936// returned will be the lesser of max_responses and an unspecified
11937// server-defined limit.
11938func (c *ProjectsLocationsJobsListCall) PageSize(pageSize int64) *ProjectsLocationsJobsListCall {
11939	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
11940	return c
11941}
11942
11943// PageToken sets the optional parameter "pageToken": Set this to the
11944// 'next_page_token' field of a previous response to request additional
11945// results in a long list.
11946func (c *ProjectsLocationsJobsListCall) PageToken(pageToken string) *ProjectsLocationsJobsListCall {
11947	c.urlParams_.Set("pageToken", pageToken)
11948	return c
11949}
11950
11951// View sets the optional parameter "view": Deprecated. ListJobs always
11952// returns summaries now. Use GetJob for other JobViews.
11953//
11954// Possible values:
11955//   "JOB_VIEW_UNKNOWN" - The job view to return isn't specified, or is
11956// unknown. Responses will contain at least the `JOB_VIEW_SUMMARY`
11957// information, and may contain additional information.
11958//   "JOB_VIEW_SUMMARY" - Request summary information only: Project ID,
11959// Job ID, job name, job type, job status, start/end time, and Cloud SDK
11960// version details.
11961//   "JOB_VIEW_ALL" - Request all information available for this job.
11962//   "JOB_VIEW_DESCRIPTION" - Request summary info and limited job
11963// description data for steps, labels and environment.
11964func (c *ProjectsLocationsJobsListCall) View(view string) *ProjectsLocationsJobsListCall {
11965	c.urlParams_.Set("view", view)
11966	return c
11967}
11968
11969// Fields allows partial responses to be retrieved. See
11970// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11971// for more information.
11972func (c *ProjectsLocationsJobsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsListCall {
11973	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11974	return c
11975}
11976
11977// IfNoneMatch sets the optional parameter which makes the operation
11978// fail if the object's ETag matches the given value. This is useful for
11979// getting updates only after the object has changed since the last
11980// request. Use googleapi.IsNotModified to check whether the response
11981// error from Do is the result of In-None-Match.
11982func (c *ProjectsLocationsJobsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsListCall {
11983	c.ifNoneMatch_ = entityTag
11984	return c
11985}
11986
11987// Context sets the context to be used in this call's Do method. Any
11988// pending HTTP request will be aborted if the provided context is
11989// canceled.
11990func (c *ProjectsLocationsJobsListCall) Context(ctx context.Context) *ProjectsLocationsJobsListCall {
11991	c.ctx_ = ctx
11992	return c
11993}
11994
11995// Header returns an http.Header that can be modified by the caller to
11996// add HTTP headers to the request.
11997func (c *ProjectsLocationsJobsListCall) Header() http.Header {
11998	if c.header_ == nil {
11999		c.header_ = make(http.Header)
12000	}
12001	return c.header_
12002}
12003
12004func (c *ProjectsLocationsJobsListCall) doRequest(alt string) (*http.Response, error) {
12005	reqHeaders := make(http.Header)
12006	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
12007	for k, v := range c.header_ {
12008		reqHeaders[k] = v
12009	}
12010	reqHeaders.Set("User-Agent", c.s.userAgent())
12011	if c.ifNoneMatch_ != "" {
12012		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12013	}
12014	var body io.Reader = nil
12015	c.urlParams_.Set("alt", alt)
12016	c.urlParams_.Set("prettyPrint", "false")
12017	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs")
12018	urls += "?" + c.urlParams_.Encode()
12019	req, err := http.NewRequest("GET", urls, body)
12020	if err != nil {
12021		return nil, err
12022	}
12023	req.Header = reqHeaders
12024	googleapi.Expand(req.URL, map[string]string{
12025		"projectId": c.projectId,
12026		"location":  c.location,
12027	})
12028	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12029}
12030
12031// Do executes the "dataflow.projects.locations.jobs.list" call.
12032// Exactly one of *ListJobsResponse or error will be non-nil. Any
12033// non-2xx status code is an error. Response headers are in either
12034// *ListJobsResponse.ServerResponse.Header or (if a response was
12035// returned at all) in error.(*googleapi.Error).Header. Use
12036// googleapi.IsNotModified to check whether the returned error was
12037// because http.StatusNotModified was returned.
12038func (c *ProjectsLocationsJobsListCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
12039	gensupport.SetOptions(c.urlParams_, opts...)
12040	res, err := c.doRequest("json")
12041	if res != nil && res.StatusCode == http.StatusNotModified {
12042		if res.Body != nil {
12043			res.Body.Close()
12044		}
12045		return nil, &googleapi.Error{
12046			Code:   res.StatusCode,
12047			Header: res.Header,
12048		}
12049	}
12050	if err != nil {
12051		return nil, err
12052	}
12053	defer googleapi.CloseBody(res)
12054	if err := googleapi.CheckResponse(res); err != nil {
12055		return nil, err
12056	}
12057	ret := &ListJobsResponse{
12058		ServerResponse: googleapi.ServerResponse{
12059			Header:         res.Header,
12060			HTTPStatusCode: res.StatusCode,
12061		},
12062	}
12063	target := &ret
12064	if err := gensupport.DecodeResponse(target, res); err != nil {
12065		return nil, err
12066	}
12067	return ret, nil
12068	// {
12069	//   "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`.",
12070	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs",
12071	//   "httpMethod": "GET",
12072	//   "id": "dataflow.projects.locations.jobs.list",
12073	//   "parameterOrder": [
12074	//     "projectId",
12075	//     "location"
12076	//   ],
12077	//   "parameters": {
12078	//     "filter": {
12079	//       "description": "The kind of filter to use.",
12080	//       "enum": [
12081	//         "UNKNOWN",
12082	//         "ALL",
12083	//         "TERMINATED",
12084	//         "ACTIVE"
12085	//       ],
12086	//       "enumDescriptions": [
12087	//         "The filter isn't specified, or is unknown. This returns all jobs ordered on descending `JobUuid`.",
12088	//         "Returns all running jobs first ordered on creation timestamp, then returns all terminated jobs ordered on the termination timestamp.",
12089	//         "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.",
12090	//         "Filters the jobs that are running ordered on the creation timestamp."
12091	//       ],
12092	//       "location": "query",
12093	//       "type": "string"
12094	//     },
12095	//     "location": {
12096	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
12097	//       "location": "path",
12098	//       "required": true,
12099	//       "type": "string"
12100	//     },
12101	//     "pageSize": {
12102	//       "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.",
12103	//       "format": "int32",
12104	//       "location": "query",
12105	//       "type": "integer"
12106	//     },
12107	//     "pageToken": {
12108	//       "description": "Set this to the 'next_page_token' field of a previous response to request additional results in a long list.",
12109	//       "location": "query",
12110	//       "type": "string"
12111	//     },
12112	//     "projectId": {
12113	//       "description": "The project which owns the jobs.",
12114	//       "location": "path",
12115	//       "required": true,
12116	//       "type": "string"
12117	//     },
12118	//     "view": {
12119	//       "description": "Deprecated. ListJobs always returns summaries now. Use GetJob for other JobViews.",
12120	//       "enum": [
12121	//         "JOB_VIEW_UNKNOWN",
12122	//         "JOB_VIEW_SUMMARY",
12123	//         "JOB_VIEW_ALL",
12124	//         "JOB_VIEW_DESCRIPTION"
12125	//       ],
12126	//       "enumDescriptions": [
12127	//         "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.",
12128	//         "Request summary information only: Project ID, Job ID, job name, job type, job status, start/end time, and Cloud SDK version details.",
12129	//         "Request all information available for this job.",
12130	//         "Request summary info and limited job description data for steps, labels and environment."
12131	//       ],
12132	//       "location": "query",
12133	//       "type": "string"
12134	//     }
12135	//   },
12136	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs",
12137	//   "response": {
12138	//     "$ref": "ListJobsResponse"
12139	//   },
12140	//   "scopes": [
12141	//     "https://www.googleapis.com/auth/cloud-platform",
12142	//     "https://www.googleapis.com/auth/compute",
12143	//     "https://www.googleapis.com/auth/compute.readonly",
12144	//     "https://www.googleapis.com/auth/userinfo.email"
12145	//   ]
12146	// }
12147
12148}
12149
12150// Pages invokes f for each page of results.
12151// A non-nil error returned from f will halt the iteration.
12152// The provided context supersedes any context provided to the Context method.
12153func (c *ProjectsLocationsJobsListCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
12154	c.ctx_ = ctx
12155	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
12156	for {
12157		x, err := c.Do()
12158		if err != nil {
12159			return err
12160		}
12161		if err := f(x); err != nil {
12162			return err
12163		}
12164		if x.NextPageToken == "" {
12165			return nil
12166		}
12167		c.PageToken(x.NextPageToken)
12168	}
12169}
12170
12171// method id "dataflow.projects.locations.jobs.snapshot":
12172
12173type ProjectsLocationsJobsSnapshotCall struct {
12174	s                  *Service
12175	projectId          string
12176	location           string
12177	jobId              string
12178	snapshotjobrequest *SnapshotJobRequest
12179	urlParams_         gensupport.URLParams
12180	ctx_               context.Context
12181	header_            http.Header
12182}
12183
12184// Snapshot: Snapshot the state of a streaming job.
12185//
12186// - jobId: The job to be snapshotted.
12187// - location: The location that contains this job.
12188// - projectId: The project which owns the job to be snapshotted.
12189func (r *ProjectsLocationsJobsService) Snapshot(projectId string, location string, jobId string, snapshotjobrequest *SnapshotJobRequest) *ProjectsLocationsJobsSnapshotCall {
12190	c := &ProjectsLocationsJobsSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12191	c.projectId = projectId
12192	c.location = location
12193	c.jobId = jobId
12194	c.snapshotjobrequest = snapshotjobrequest
12195	return c
12196}
12197
12198// Fields allows partial responses to be retrieved. See
12199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12200// for more information.
12201func (c *ProjectsLocationsJobsSnapshotCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsSnapshotCall {
12202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12203	return c
12204}
12205
12206// Context sets the context to be used in this call's Do method. Any
12207// pending HTTP request will be aborted if the provided context is
12208// canceled.
12209func (c *ProjectsLocationsJobsSnapshotCall) Context(ctx context.Context) *ProjectsLocationsJobsSnapshotCall {
12210	c.ctx_ = ctx
12211	return c
12212}
12213
12214// Header returns an http.Header that can be modified by the caller to
12215// add HTTP headers to the request.
12216func (c *ProjectsLocationsJobsSnapshotCall) Header() http.Header {
12217	if c.header_ == nil {
12218		c.header_ = make(http.Header)
12219	}
12220	return c.header_
12221}
12222
12223func (c *ProjectsLocationsJobsSnapshotCall) doRequest(alt string) (*http.Response, error) {
12224	reqHeaders := make(http.Header)
12225	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
12226	for k, v := range c.header_ {
12227		reqHeaders[k] = v
12228	}
12229	reqHeaders.Set("User-Agent", c.s.userAgent())
12230	var body io.Reader = nil
12231	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshotjobrequest)
12232	if err != nil {
12233		return nil, err
12234	}
12235	reqHeaders.Set("Content-Type", "application/json")
12236	c.urlParams_.Set("alt", alt)
12237	c.urlParams_.Set("prettyPrint", "false")
12238	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}:snapshot")
12239	urls += "?" + c.urlParams_.Encode()
12240	req, err := http.NewRequest("POST", urls, body)
12241	if err != nil {
12242		return nil, err
12243	}
12244	req.Header = reqHeaders
12245	googleapi.Expand(req.URL, map[string]string{
12246		"projectId": c.projectId,
12247		"location":  c.location,
12248		"jobId":     c.jobId,
12249	})
12250	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12251}
12252
12253// Do executes the "dataflow.projects.locations.jobs.snapshot" call.
12254// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
12255// code is an error. Response headers are in either
12256// *Snapshot.ServerResponse.Header or (if a response was returned at
12257// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
12258// to check whether the returned error was because
12259// http.StatusNotModified was returned.
12260func (c *ProjectsLocationsJobsSnapshotCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
12261	gensupport.SetOptions(c.urlParams_, opts...)
12262	res, err := c.doRequest("json")
12263	if res != nil && res.StatusCode == http.StatusNotModified {
12264		if res.Body != nil {
12265			res.Body.Close()
12266		}
12267		return nil, &googleapi.Error{
12268			Code:   res.StatusCode,
12269			Header: res.Header,
12270		}
12271	}
12272	if err != nil {
12273		return nil, err
12274	}
12275	defer googleapi.CloseBody(res)
12276	if err := googleapi.CheckResponse(res); err != nil {
12277		return nil, err
12278	}
12279	ret := &Snapshot{
12280		ServerResponse: googleapi.ServerResponse{
12281			Header:         res.Header,
12282			HTTPStatusCode: res.StatusCode,
12283		},
12284	}
12285	target := &ret
12286	if err := gensupport.DecodeResponse(target, res); err != nil {
12287		return nil, err
12288	}
12289	return ret, nil
12290	// {
12291	//   "description": "Snapshot the state of a streaming job.",
12292	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}:snapshot",
12293	//   "httpMethod": "POST",
12294	//   "id": "dataflow.projects.locations.jobs.snapshot",
12295	//   "parameterOrder": [
12296	//     "projectId",
12297	//     "location",
12298	//     "jobId"
12299	//   ],
12300	//   "parameters": {
12301	//     "jobId": {
12302	//       "description": "The job to be snapshotted.",
12303	//       "location": "path",
12304	//       "required": true,
12305	//       "type": "string"
12306	//     },
12307	//     "location": {
12308	//       "description": "The location that contains this job.",
12309	//       "location": "path",
12310	//       "required": true,
12311	//       "type": "string"
12312	//     },
12313	//     "projectId": {
12314	//       "description": "The project which owns the job to be snapshotted.",
12315	//       "location": "path",
12316	//       "required": true,
12317	//       "type": "string"
12318	//     }
12319	//   },
12320	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}:snapshot",
12321	//   "request": {
12322	//     "$ref": "SnapshotJobRequest"
12323	//   },
12324	//   "response": {
12325	//     "$ref": "Snapshot"
12326	//   },
12327	//   "scopes": [
12328	//     "https://www.googleapis.com/auth/cloud-platform",
12329	//     "https://www.googleapis.com/auth/compute",
12330	//     "https://www.googleapis.com/auth/compute.readonly",
12331	//     "https://www.googleapis.com/auth/userinfo.email"
12332	//   ]
12333	// }
12334
12335}
12336
12337// method id "dataflow.projects.locations.jobs.update":
12338
12339type ProjectsLocationsJobsUpdateCall struct {
12340	s          *Service
12341	projectId  string
12342	location   string
12343	jobId      string
12344	job        *Job
12345	urlParams_ gensupport.URLParams
12346	ctx_       context.Context
12347	header_    http.Header
12348}
12349
12350// Update: Updates the state of an existing Cloud Dataflow job. To
12351// update the state of an existing job, we recommend using
12352// `projects.locations.jobs.update` with a [regional endpoint]
12353// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
12354// Using `projects.jobs.update` is not recommended, as you can only
12355// update the state of jobs that are running in `us-central1`.
12356//
12357// - jobId: The job ID.
12358// - location: The [regional endpoint]
12359//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
12360//   that contains this job.
12361// - projectId: The ID of the Cloud Platform project that the job
12362//   belongs to.
12363func (r *ProjectsLocationsJobsService) Update(projectId string, location string, jobId string, job *Job) *ProjectsLocationsJobsUpdateCall {
12364	c := &ProjectsLocationsJobsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12365	c.projectId = projectId
12366	c.location = location
12367	c.jobId = jobId
12368	c.job = job
12369	return c
12370}
12371
12372// Fields allows partial responses to be retrieved. See
12373// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12374// for more information.
12375func (c *ProjectsLocationsJobsUpdateCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsUpdateCall {
12376	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12377	return c
12378}
12379
12380// Context sets the context to be used in this call's Do method. Any
12381// pending HTTP request will be aborted if the provided context is
12382// canceled.
12383func (c *ProjectsLocationsJobsUpdateCall) Context(ctx context.Context) *ProjectsLocationsJobsUpdateCall {
12384	c.ctx_ = ctx
12385	return c
12386}
12387
12388// Header returns an http.Header that can be modified by the caller to
12389// add HTTP headers to the request.
12390func (c *ProjectsLocationsJobsUpdateCall) Header() http.Header {
12391	if c.header_ == nil {
12392		c.header_ = make(http.Header)
12393	}
12394	return c.header_
12395}
12396
12397func (c *ProjectsLocationsJobsUpdateCall) doRequest(alt string) (*http.Response, error) {
12398	reqHeaders := make(http.Header)
12399	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
12400	for k, v := range c.header_ {
12401		reqHeaders[k] = v
12402	}
12403	reqHeaders.Set("User-Agent", c.s.userAgent())
12404	var body io.Reader = nil
12405	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
12406	if err != nil {
12407		return nil, err
12408	}
12409	reqHeaders.Set("Content-Type", "application/json")
12410	c.urlParams_.Set("alt", alt)
12411	c.urlParams_.Set("prettyPrint", "false")
12412	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}")
12413	urls += "?" + c.urlParams_.Encode()
12414	req, err := http.NewRequest("PUT", urls, body)
12415	if err != nil {
12416		return nil, err
12417	}
12418	req.Header = reqHeaders
12419	googleapi.Expand(req.URL, map[string]string{
12420		"projectId": c.projectId,
12421		"location":  c.location,
12422		"jobId":     c.jobId,
12423	})
12424	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12425}
12426
12427// Do executes the "dataflow.projects.locations.jobs.update" call.
12428// Exactly one of *Job or error will be non-nil. Any non-2xx status code
12429// is an error. Response headers are in either
12430// *Job.ServerResponse.Header or (if a response was returned at all) in
12431// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
12432// whether the returned error was because http.StatusNotModified was
12433// returned.
12434func (c *ProjectsLocationsJobsUpdateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
12435	gensupport.SetOptions(c.urlParams_, opts...)
12436	res, err := c.doRequest("json")
12437	if res != nil && res.StatusCode == http.StatusNotModified {
12438		if res.Body != nil {
12439			res.Body.Close()
12440		}
12441		return nil, &googleapi.Error{
12442			Code:   res.StatusCode,
12443			Header: res.Header,
12444		}
12445	}
12446	if err != nil {
12447		return nil, err
12448	}
12449	defer googleapi.CloseBody(res)
12450	if err := googleapi.CheckResponse(res); err != nil {
12451		return nil, err
12452	}
12453	ret := &Job{
12454		ServerResponse: googleapi.ServerResponse{
12455			Header:         res.Header,
12456			HTTPStatusCode: res.StatusCode,
12457		},
12458	}
12459	target := &ret
12460	if err := gensupport.DecodeResponse(target, res); err != nil {
12461		return nil, err
12462	}
12463	return ret, nil
12464	// {
12465	//   "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`.",
12466	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
12467	//   "httpMethod": "PUT",
12468	//   "id": "dataflow.projects.locations.jobs.update",
12469	//   "parameterOrder": [
12470	//     "projectId",
12471	//     "location",
12472	//     "jobId"
12473	//   ],
12474	//   "parameters": {
12475	//     "jobId": {
12476	//       "description": "The job ID.",
12477	//       "location": "path",
12478	//       "required": true,
12479	//       "type": "string"
12480	//     },
12481	//     "location": {
12482	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.",
12483	//       "location": "path",
12484	//       "required": true,
12485	//       "type": "string"
12486	//     },
12487	//     "projectId": {
12488	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
12489	//       "location": "path",
12490	//       "required": true,
12491	//       "type": "string"
12492	//     }
12493	//   },
12494	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
12495	//   "request": {
12496	//     "$ref": "Job"
12497	//   },
12498	//   "response": {
12499	//     "$ref": "Job"
12500	//   },
12501	//   "scopes": [
12502	//     "https://www.googleapis.com/auth/cloud-platform",
12503	//     "https://www.googleapis.com/auth/compute",
12504	//     "https://www.googleapis.com/auth/compute.readonly",
12505	//     "https://www.googleapis.com/auth/userinfo.email"
12506	//   ]
12507	// }
12508
12509}
12510
12511// method id "dataflow.projects.locations.jobs.debug.getConfig":
12512
12513type ProjectsLocationsJobsDebugGetConfigCall struct {
12514	s                     *Service
12515	projectId             string
12516	location              string
12517	jobId                 string
12518	getdebugconfigrequest *GetDebugConfigRequest
12519	urlParams_            gensupport.URLParams
12520	ctx_                  context.Context
12521	header_               http.Header
12522}
12523
12524// GetConfig: Get encoded debug configuration for component. Not
12525// cacheable.
12526//
12527// - jobId: The job id.
12528// - location: The [regional endpoint]
12529//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
12530//   that contains the job specified by job_id.
12531// - projectId: The project id.
12532func (r *ProjectsLocationsJobsDebugService) GetConfig(projectId string, location string, jobId string, getdebugconfigrequest *GetDebugConfigRequest) *ProjectsLocationsJobsDebugGetConfigCall {
12533	c := &ProjectsLocationsJobsDebugGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12534	c.projectId = projectId
12535	c.location = location
12536	c.jobId = jobId
12537	c.getdebugconfigrequest = getdebugconfigrequest
12538	return c
12539}
12540
12541// Fields allows partial responses to be retrieved. See
12542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12543// for more information.
12544func (c *ProjectsLocationsJobsDebugGetConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsDebugGetConfigCall {
12545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12546	return c
12547}
12548
12549// Context sets the context to be used in this call's Do method. Any
12550// pending HTTP request will be aborted if the provided context is
12551// canceled.
12552func (c *ProjectsLocationsJobsDebugGetConfigCall) Context(ctx context.Context) *ProjectsLocationsJobsDebugGetConfigCall {
12553	c.ctx_ = ctx
12554	return c
12555}
12556
12557// Header returns an http.Header that can be modified by the caller to
12558// add HTTP headers to the request.
12559func (c *ProjectsLocationsJobsDebugGetConfigCall) Header() http.Header {
12560	if c.header_ == nil {
12561		c.header_ = make(http.Header)
12562	}
12563	return c.header_
12564}
12565
12566func (c *ProjectsLocationsJobsDebugGetConfigCall) doRequest(alt string) (*http.Response, error) {
12567	reqHeaders := make(http.Header)
12568	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
12569	for k, v := range c.header_ {
12570		reqHeaders[k] = v
12571	}
12572	reqHeaders.Set("User-Agent", c.s.userAgent())
12573	var body io.Reader = nil
12574	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getdebugconfigrequest)
12575	if err != nil {
12576		return nil, err
12577	}
12578	reqHeaders.Set("Content-Type", "application/json")
12579	c.urlParams_.Set("alt", alt)
12580	c.urlParams_.Set("prettyPrint", "false")
12581	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig")
12582	urls += "?" + c.urlParams_.Encode()
12583	req, err := http.NewRequest("POST", urls, body)
12584	if err != nil {
12585		return nil, err
12586	}
12587	req.Header = reqHeaders
12588	googleapi.Expand(req.URL, map[string]string{
12589		"projectId": c.projectId,
12590		"location":  c.location,
12591		"jobId":     c.jobId,
12592	})
12593	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12594}
12595
12596// Do executes the "dataflow.projects.locations.jobs.debug.getConfig" call.
12597// Exactly one of *GetDebugConfigResponse or error will be non-nil. Any
12598// non-2xx status code is an error. Response headers are in either
12599// *GetDebugConfigResponse.ServerResponse.Header or (if a response was
12600// returned at all) in error.(*googleapi.Error).Header. Use
12601// googleapi.IsNotModified to check whether the returned error was
12602// because http.StatusNotModified was returned.
12603func (c *ProjectsLocationsJobsDebugGetConfigCall) Do(opts ...googleapi.CallOption) (*GetDebugConfigResponse, error) {
12604	gensupport.SetOptions(c.urlParams_, opts...)
12605	res, err := c.doRequest("json")
12606	if res != nil && res.StatusCode == http.StatusNotModified {
12607		if res.Body != nil {
12608			res.Body.Close()
12609		}
12610		return nil, &googleapi.Error{
12611			Code:   res.StatusCode,
12612			Header: res.Header,
12613		}
12614	}
12615	if err != nil {
12616		return nil, err
12617	}
12618	defer googleapi.CloseBody(res)
12619	if err := googleapi.CheckResponse(res); err != nil {
12620		return nil, err
12621	}
12622	ret := &GetDebugConfigResponse{
12623		ServerResponse: googleapi.ServerResponse{
12624			Header:         res.Header,
12625			HTTPStatusCode: res.StatusCode,
12626		},
12627	}
12628	target := &ret
12629	if err := gensupport.DecodeResponse(target, res); err != nil {
12630		return nil, err
12631	}
12632	return ret, nil
12633	// {
12634	//   "description": "Get encoded debug configuration for component. Not cacheable.",
12635	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig",
12636	//   "httpMethod": "POST",
12637	//   "id": "dataflow.projects.locations.jobs.debug.getConfig",
12638	//   "parameterOrder": [
12639	//     "projectId",
12640	//     "location",
12641	//     "jobId"
12642	//   ],
12643	//   "parameters": {
12644	//     "jobId": {
12645	//       "description": "The job id.",
12646	//       "location": "path",
12647	//       "required": true,
12648	//       "type": "string"
12649	//     },
12650	//     "location": {
12651	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
12652	//       "location": "path",
12653	//       "required": true,
12654	//       "type": "string"
12655	//     },
12656	//     "projectId": {
12657	//       "description": "The project id.",
12658	//       "location": "path",
12659	//       "required": true,
12660	//       "type": "string"
12661	//     }
12662	//   },
12663	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig",
12664	//   "request": {
12665	//     "$ref": "GetDebugConfigRequest"
12666	//   },
12667	//   "response": {
12668	//     "$ref": "GetDebugConfigResponse"
12669	//   },
12670	//   "scopes": [
12671	//     "https://www.googleapis.com/auth/cloud-platform",
12672	//     "https://www.googleapis.com/auth/compute",
12673	//     "https://www.googleapis.com/auth/compute.readonly",
12674	//     "https://www.googleapis.com/auth/userinfo.email"
12675	//   ]
12676	// }
12677
12678}
12679
12680// method id "dataflow.projects.locations.jobs.debug.sendCapture":
12681
12682type ProjectsLocationsJobsDebugSendCaptureCall struct {
12683	s                       *Service
12684	projectId               string
12685	location                string
12686	jobId                   string
12687	senddebugcapturerequest *SendDebugCaptureRequest
12688	urlParams_              gensupport.URLParams
12689	ctx_                    context.Context
12690	header_                 http.Header
12691}
12692
12693// SendCapture: Send encoded debug capture data for component.
12694//
12695// - jobId: The job id.
12696// - location: The [regional endpoint]
12697//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
12698//   that contains the job specified by job_id.
12699// - projectId: The project id.
12700func (r *ProjectsLocationsJobsDebugService) SendCapture(projectId string, location string, jobId string, senddebugcapturerequest *SendDebugCaptureRequest) *ProjectsLocationsJobsDebugSendCaptureCall {
12701	c := &ProjectsLocationsJobsDebugSendCaptureCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12702	c.projectId = projectId
12703	c.location = location
12704	c.jobId = jobId
12705	c.senddebugcapturerequest = senddebugcapturerequest
12706	return c
12707}
12708
12709// Fields allows partial responses to be retrieved. See
12710// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12711// for more information.
12712func (c *ProjectsLocationsJobsDebugSendCaptureCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsDebugSendCaptureCall {
12713	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12714	return c
12715}
12716
12717// Context sets the context to be used in this call's Do method. Any
12718// pending HTTP request will be aborted if the provided context is
12719// canceled.
12720func (c *ProjectsLocationsJobsDebugSendCaptureCall) Context(ctx context.Context) *ProjectsLocationsJobsDebugSendCaptureCall {
12721	c.ctx_ = ctx
12722	return c
12723}
12724
12725// Header returns an http.Header that can be modified by the caller to
12726// add HTTP headers to the request.
12727func (c *ProjectsLocationsJobsDebugSendCaptureCall) Header() http.Header {
12728	if c.header_ == nil {
12729		c.header_ = make(http.Header)
12730	}
12731	return c.header_
12732}
12733
12734func (c *ProjectsLocationsJobsDebugSendCaptureCall) doRequest(alt string) (*http.Response, error) {
12735	reqHeaders := make(http.Header)
12736	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
12737	for k, v := range c.header_ {
12738		reqHeaders[k] = v
12739	}
12740	reqHeaders.Set("User-Agent", c.s.userAgent())
12741	var body io.Reader = nil
12742	body, err := googleapi.WithoutDataWrapper.JSONReader(c.senddebugcapturerequest)
12743	if err != nil {
12744		return nil, err
12745	}
12746	reqHeaders.Set("Content-Type", "application/json")
12747	c.urlParams_.Set("alt", alt)
12748	c.urlParams_.Set("prettyPrint", "false")
12749	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture")
12750	urls += "?" + c.urlParams_.Encode()
12751	req, err := http.NewRequest("POST", urls, body)
12752	if err != nil {
12753		return nil, err
12754	}
12755	req.Header = reqHeaders
12756	googleapi.Expand(req.URL, map[string]string{
12757		"projectId": c.projectId,
12758		"location":  c.location,
12759		"jobId":     c.jobId,
12760	})
12761	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12762}
12763
12764// Do executes the "dataflow.projects.locations.jobs.debug.sendCapture" call.
12765// Exactly one of *SendDebugCaptureResponse or error will be non-nil.
12766// Any non-2xx status code is an error. Response headers are in either
12767// *SendDebugCaptureResponse.ServerResponse.Header or (if a response was
12768// returned at all) in error.(*googleapi.Error).Header. Use
12769// googleapi.IsNotModified to check whether the returned error was
12770// because http.StatusNotModified was returned.
12771func (c *ProjectsLocationsJobsDebugSendCaptureCall) Do(opts ...googleapi.CallOption) (*SendDebugCaptureResponse, error) {
12772	gensupport.SetOptions(c.urlParams_, opts...)
12773	res, err := c.doRequest("json")
12774	if res != nil && res.StatusCode == http.StatusNotModified {
12775		if res.Body != nil {
12776			res.Body.Close()
12777		}
12778		return nil, &googleapi.Error{
12779			Code:   res.StatusCode,
12780			Header: res.Header,
12781		}
12782	}
12783	if err != nil {
12784		return nil, err
12785	}
12786	defer googleapi.CloseBody(res)
12787	if err := googleapi.CheckResponse(res); err != nil {
12788		return nil, err
12789	}
12790	ret := &SendDebugCaptureResponse{
12791		ServerResponse: googleapi.ServerResponse{
12792			Header:         res.Header,
12793			HTTPStatusCode: res.StatusCode,
12794		},
12795	}
12796	target := &ret
12797	if err := gensupport.DecodeResponse(target, res); err != nil {
12798		return nil, err
12799	}
12800	return ret, nil
12801	// {
12802	//   "description": "Send encoded debug capture data for component.",
12803	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture",
12804	//   "httpMethod": "POST",
12805	//   "id": "dataflow.projects.locations.jobs.debug.sendCapture",
12806	//   "parameterOrder": [
12807	//     "projectId",
12808	//     "location",
12809	//     "jobId"
12810	//   ],
12811	//   "parameters": {
12812	//     "jobId": {
12813	//       "description": "The job id.",
12814	//       "location": "path",
12815	//       "required": true,
12816	//       "type": "string"
12817	//     },
12818	//     "location": {
12819	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
12820	//       "location": "path",
12821	//       "required": true,
12822	//       "type": "string"
12823	//     },
12824	//     "projectId": {
12825	//       "description": "The project id.",
12826	//       "location": "path",
12827	//       "required": true,
12828	//       "type": "string"
12829	//     }
12830	//   },
12831	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture",
12832	//   "request": {
12833	//     "$ref": "SendDebugCaptureRequest"
12834	//   },
12835	//   "response": {
12836	//     "$ref": "SendDebugCaptureResponse"
12837	//   },
12838	//   "scopes": [
12839	//     "https://www.googleapis.com/auth/cloud-platform",
12840	//     "https://www.googleapis.com/auth/compute",
12841	//     "https://www.googleapis.com/auth/compute.readonly",
12842	//     "https://www.googleapis.com/auth/userinfo.email"
12843	//   ]
12844	// }
12845
12846}
12847
12848// method id "dataflow.projects.locations.jobs.messages.list":
12849
12850type ProjectsLocationsJobsMessagesListCall struct {
12851	s            *Service
12852	projectId    string
12853	location     string
12854	jobId        string
12855	urlParams_   gensupport.URLParams
12856	ifNoneMatch_ string
12857	ctx_         context.Context
12858	header_      http.Header
12859}
12860
12861// List: Request the job status. To request the status of a job, we
12862// recommend using `projects.locations.jobs.messages.list` with a
12863// [regional endpoint]
12864// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
12865// Using `projects.jobs.messages.list` is not recommended, as you can
12866// only request the status of jobs that are running in `us-central1`.
12867//
12868// - jobId: The job to get messages about.
12869// - location: The [regional endpoint]
12870//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
12871//   that contains the job specified by job_id.
12872// - projectId: A project id.
12873func (r *ProjectsLocationsJobsMessagesService) List(projectId string, location string, jobId string) *ProjectsLocationsJobsMessagesListCall {
12874	c := &ProjectsLocationsJobsMessagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12875	c.projectId = projectId
12876	c.location = location
12877	c.jobId = jobId
12878	return c
12879}
12880
12881// EndTime sets the optional parameter "endTime": Return only messages
12882// with timestamps < end_time. The default is now (i.e. return up to the
12883// latest messages available).
12884func (c *ProjectsLocationsJobsMessagesListCall) EndTime(endTime string) *ProjectsLocationsJobsMessagesListCall {
12885	c.urlParams_.Set("endTime", endTime)
12886	return c
12887}
12888
12889// MinimumImportance sets the optional parameter "minimumImportance":
12890// Filter to only get messages with importance >= level
12891//
12892// Possible values:
12893//   "JOB_MESSAGE_IMPORTANCE_UNKNOWN" - The message importance isn't
12894// specified, or is unknown.
12895//   "JOB_MESSAGE_DEBUG" - The message is at the 'debug' level:
12896// typically only useful for software engineers working on the code the
12897// job is running. Typically, Dataflow pipeline runners do not display
12898// log messages at this level by default.
12899//   "JOB_MESSAGE_DETAILED" - The message is at the 'detailed' level:
12900// somewhat verbose, but potentially useful to users. Typically,
12901// Dataflow pipeline runners do not display log messages at this level
12902// by default. These messages are displayed by default in the Dataflow
12903// monitoring UI.
12904//   "JOB_MESSAGE_BASIC" - The message is at the 'basic' level: useful
12905// for keeping track of the execution of a Dataflow pipeline. Typically,
12906// Dataflow pipeline runners display log messages at this level by
12907// default, and these messages are displayed by default in the Dataflow
12908// monitoring UI.
12909//   "JOB_MESSAGE_WARNING" - The message is at the 'warning' level:
12910// indicating a condition pertaining to a job which may require human
12911// intervention. Typically, Dataflow pipeline runners display log
12912// messages at this level by default, and these messages are displayed
12913// by default in the Dataflow monitoring UI.
12914//   "JOB_MESSAGE_ERROR" - The message is at the 'error' level:
12915// indicating a condition preventing a job from succeeding. Typically,
12916// Dataflow pipeline runners display log messages at this level by
12917// default, and these messages are displayed by default in the Dataflow
12918// monitoring UI.
12919func (c *ProjectsLocationsJobsMessagesListCall) MinimumImportance(minimumImportance string) *ProjectsLocationsJobsMessagesListCall {
12920	c.urlParams_.Set("minimumImportance", minimumImportance)
12921	return c
12922}
12923
12924// PageSize sets the optional parameter "pageSize": If specified,
12925// determines the maximum number of messages to return. If unspecified,
12926// the service may choose an appropriate default, or may return an
12927// arbitrarily large number of results.
12928func (c *ProjectsLocationsJobsMessagesListCall) PageSize(pageSize int64) *ProjectsLocationsJobsMessagesListCall {
12929	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
12930	return c
12931}
12932
12933// PageToken sets the optional parameter "pageToken": If supplied, this
12934// should be the value of next_page_token returned by an earlier call.
12935// This will cause the next page of results to be returned.
12936func (c *ProjectsLocationsJobsMessagesListCall) PageToken(pageToken string) *ProjectsLocationsJobsMessagesListCall {
12937	c.urlParams_.Set("pageToken", pageToken)
12938	return c
12939}
12940
12941// StartTime sets the optional parameter "startTime": If specified,
12942// return only messages with timestamps >= start_time. The default is
12943// the job creation time (i.e. beginning of messages).
12944func (c *ProjectsLocationsJobsMessagesListCall) StartTime(startTime string) *ProjectsLocationsJobsMessagesListCall {
12945	c.urlParams_.Set("startTime", startTime)
12946	return c
12947}
12948
12949// Fields allows partial responses to be retrieved. See
12950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12951// for more information.
12952func (c *ProjectsLocationsJobsMessagesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsMessagesListCall {
12953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12954	return c
12955}
12956
12957// IfNoneMatch sets the optional parameter which makes the operation
12958// fail if the object's ETag matches the given value. This is useful for
12959// getting updates only after the object has changed since the last
12960// request. Use googleapi.IsNotModified to check whether the response
12961// error from Do is the result of In-None-Match.
12962func (c *ProjectsLocationsJobsMessagesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsMessagesListCall {
12963	c.ifNoneMatch_ = entityTag
12964	return c
12965}
12966
12967// Context sets the context to be used in this call's Do method. Any
12968// pending HTTP request will be aborted if the provided context is
12969// canceled.
12970func (c *ProjectsLocationsJobsMessagesListCall) Context(ctx context.Context) *ProjectsLocationsJobsMessagesListCall {
12971	c.ctx_ = ctx
12972	return c
12973}
12974
12975// Header returns an http.Header that can be modified by the caller to
12976// add HTTP headers to the request.
12977func (c *ProjectsLocationsJobsMessagesListCall) Header() http.Header {
12978	if c.header_ == nil {
12979		c.header_ = make(http.Header)
12980	}
12981	return c.header_
12982}
12983
12984func (c *ProjectsLocationsJobsMessagesListCall) doRequest(alt string) (*http.Response, error) {
12985	reqHeaders := make(http.Header)
12986	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
12987	for k, v := range c.header_ {
12988		reqHeaders[k] = v
12989	}
12990	reqHeaders.Set("User-Agent", c.s.userAgent())
12991	if c.ifNoneMatch_ != "" {
12992		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12993	}
12994	var body io.Reader = nil
12995	c.urlParams_.Set("alt", alt)
12996	c.urlParams_.Set("prettyPrint", "false")
12997	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages")
12998	urls += "?" + c.urlParams_.Encode()
12999	req, err := http.NewRequest("GET", urls, body)
13000	if err != nil {
13001		return nil, err
13002	}
13003	req.Header = reqHeaders
13004	googleapi.Expand(req.URL, map[string]string{
13005		"projectId": c.projectId,
13006		"location":  c.location,
13007		"jobId":     c.jobId,
13008	})
13009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13010}
13011
13012// Do executes the "dataflow.projects.locations.jobs.messages.list" call.
13013// Exactly one of *ListJobMessagesResponse or error will be non-nil. Any
13014// non-2xx status code is an error. Response headers are in either
13015// *ListJobMessagesResponse.ServerResponse.Header or (if a response was
13016// returned at all) in error.(*googleapi.Error).Header. Use
13017// googleapi.IsNotModified to check whether the returned error was
13018// because http.StatusNotModified was returned.
13019func (c *ProjectsLocationsJobsMessagesListCall) Do(opts ...googleapi.CallOption) (*ListJobMessagesResponse, error) {
13020	gensupport.SetOptions(c.urlParams_, opts...)
13021	res, err := c.doRequest("json")
13022	if res != nil && res.StatusCode == http.StatusNotModified {
13023		if res.Body != nil {
13024			res.Body.Close()
13025		}
13026		return nil, &googleapi.Error{
13027			Code:   res.StatusCode,
13028			Header: res.Header,
13029		}
13030	}
13031	if err != nil {
13032		return nil, err
13033	}
13034	defer googleapi.CloseBody(res)
13035	if err := googleapi.CheckResponse(res); err != nil {
13036		return nil, err
13037	}
13038	ret := &ListJobMessagesResponse{
13039		ServerResponse: googleapi.ServerResponse{
13040			Header:         res.Header,
13041			HTTPStatusCode: res.StatusCode,
13042		},
13043	}
13044	target := &ret
13045	if err := gensupport.DecodeResponse(target, res); err != nil {
13046		return nil, err
13047	}
13048	return ret, nil
13049	// {
13050	//   "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`.",
13051	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages",
13052	//   "httpMethod": "GET",
13053	//   "id": "dataflow.projects.locations.jobs.messages.list",
13054	//   "parameterOrder": [
13055	//     "projectId",
13056	//     "location",
13057	//     "jobId"
13058	//   ],
13059	//   "parameters": {
13060	//     "endTime": {
13061	//       "description": "Return only messages with timestamps \u003c end_time. The default is now (i.e. return up to the latest messages available).",
13062	//       "format": "google-datetime",
13063	//       "location": "query",
13064	//       "type": "string"
13065	//     },
13066	//     "jobId": {
13067	//       "description": "The job to get messages about.",
13068	//       "location": "path",
13069	//       "required": true,
13070	//       "type": "string"
13071	//     },
13072	//     "location": {
13073	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
13074	//       "location": "path",
13075	//       "required": true,
13076	//       "type": "string"
13077	//     },
13078	//     "minimumImportance": {
13079	//       "description": "Filter to only get messages with importance \u003e= level",
13080	//       "enum": [
13081	//         "JOB_MESSAGE_IMPORTANCE_UNKNOWN",
13082	//         "JOB_MESSAGE_DEBUG",
13083	//         "JOB_MESSAGE_DETAILED",
13084	//         "JOB_MESSAGE_BASIC",
13085	//         "JOB_MESSAGE_WARNING",
13086	//         "JOB_MESSAGE_ERROR"
13087	//       ],
13088	//       "enumDescriptions": [
13089	//         "The message importance isn't specified, or is unknown.",
13090	//         "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.",
13091	//         "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.",
13092	//         "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.",
13093	//         "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.",
13094	//         "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."
13095	//       ],
13096	//       "location": "query",
13097	//       "type": "string"
13098	//     },
13099	//     "pageSize": {
13100	//       "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.",
13101	//       "format": "int32",
13102	//       "location": "query",
13103	//       "type": "integer"
13104	//     },
13105	//     "pageToken": {
13106	//       "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.",
13107	//       "location": "query",
13108	//       "type": "string"
13109	//     },
13110	//     "projectId": {
13111	//       "description": "A project id.",
13112	//       "location": "path",
13113	//       "required": true,
13114	//       "type": "string"
13115	//     },
13116	//     "startTime": {
13117	//       "description": "If specified, return only messages with timestamps \u003e= start_time. The default is the job creation time (i.e. beginning of messages).",
13118	//       "format": "google-datetime",
13119	//       "location": "query",
13120	//       "type": "string"
13121	//     }
13122	//   },
13123	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages",
13124	//   "response": {
13125	//     "$ref": "ListJobMessagesResponse"
13126	//   },
13127	//   "scopes": [
13128	//     "https://www.googleapis.com/auth/cloud-platform",
13129	//     "https://www.googleapis.com/auth/compute",
13130	//     "https://www.googleapis.com/auth/compute.readonly",
13131	//     "https://www.googleapis.com/auth/userinfo.email"
13132	//   ]
13133	// }
13134
13135}
13136
13137// Pages invokes f for each page of results.
13138// A non-nil error returned from f will halt the iteration.
13139// The provided context supersedes any context provided to the Context method.
13140func (c *ProjectsLocationsJobsMessagesListCall) Pages(ctx context.Context, f func(*ListJobMessagesResponse) error) error {
13141	c.ctx_ = ctx
13142	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
13143	for {
13144		x, err := c.Do()
13145		if err != nil {
13146			return err
13147		}
13148		if err := f(x); err != nil {
13149			return err
13150		}
13151		if x.NextPageToken == "" {
13152			return nil
13153		}
13154		c.PageToken(x.NextPageToken)
13155	}
13156}
13157
13158// method id "dataflow.projects.locations.jobs.snapshots.list":
13159
13160type ProjectsLocationsJobsSnapshotsListCall struct {
13161	s            *Service
13162	projectId    string
13163	location     string
13164	jobId        string
13165	urlParams_   gensupport.URLParams
13166	ifNoneMatch_ string
13167	ctx_         context.Context
13168	header_      http.Header
13169}
13170
13171// List: Lists snapshots.
13172//
13173// - jobId: If specified, list snapshots created from this job.
13174// - location: The location to list snapshots in.
13175// - projectId: The project ID to list snapshots for.
13176func (r *ProjectsLocationsJobsSnapshotsService) List(projectId string, location string, jobId string) *ProjectsLocationsJobsSnapshotsListCall {
13177	c := &ProjectsLocationsJobsSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13178	c.projectId = projectId
13179	c.location = location
13180	c.jobId = jobId
13181	return c
13182}
13183
13184// Fields allows partial responses to be retrieved. See
13185// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13186// for more information.
13187func (c *ProjectsLocationsJobsSnapshotsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsSnapshotsListCall {
13188	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13189	return c
13190}
13191
13192// IfNoneMatch sets the optional parameter which makes the operation
13193// fail if the object's ETag matches the given value. This is useful for
13194// getting updates only after the object has changed since the last
13195// request. Use googleapi.IsNotModified to check whether the response
13196// error from Do is the result of In-None-Match.
13197func (c *ProjectsLocationsJobsSnapshotsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsSnapshotsListCall {
13198	c.ifNoneMatch_ = entityTag
13199	return c
13200}
13201
13202// Context sets the context to be used in this call's Do method. Any
13203// pending HTTP request will be aborted if the provided context is
13204// canceled.
13205func (c *ProjectsLocationsJobsSnapshotsListCall) Context(ctx context.Context) *ProjectsLocationsJobsSnapshotsListCall {
13206	c.ctx_ = ctx
13207	return c
13208}
13209
13210// Header returns an http.Header that can be modified by the caller to
13211// add HTTP headers to the request.
13212func (c *ProjectsLocationsJobsSnapshotsListCall) Header() http.Header {
13213	if c.header_ == nil {
13214		c.header_ = make(http.Header)
13215	}
13216	return c.header_
13217}
13218
13219func (c *ProjectsLocationsJobsSnapshotsListCall) doRequest(alt string) (*http.Response, error) {
13220	reqHeaders := make(http.Header)
13221	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
13222	for k, v := range c.header_ {
13223		reqHeaders[k] = v
13224	}
13225	reqHeaders.Set("User-Agent", c.s.userAgent())
13226	if c.ifNoneMatch_ != "" {
13227		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13228	}
13229	var body io.Reader = nil
13230	c.urlParams_.Set("alt", alt)
13231	c.urlParams_.Set("prettyPrint", "false")
13232	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/snapshots")
13233	urls += "?" + c.urlParams_.Encode()
13234	req, err := http.NewRequest("GET", urls, body)
13235	if err != nil {
13236		return nil, err
13237	}
13238	req.Header = reqHeaders
13239	googleapi.Expand(req.URL, map[string]string{
13240		"projectId": c.projectId,
13241		"location":  c.location,
13242		"jobId":     c.jobId,
13243	})
13244	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13245}
13246
13247// Do executes the "dataflow.projects.locations.jobs.snapshots.list" call.
13248// Exactly one of *ListSnapshotsResponse or error will be non-nil. Any
13249// non-2xx status code is an error. Response headers are in either
13250// *ListSnapshotsResponse.ServerResponse.Header or (if a response was
13251// returned at all) in error.(*googleapi.Error).Header. Use
13252// googleapi.IsNotModified to check whether the returned error was
13253// because http.StatusNotModified was returned.
13254func (c *ProjectsLocationsJobsSnapshotsListCall) Do(opts ...googleapi.CallOption) (*ListSnapshotsResponse, error) {
13255	gensupport.SetOptions(c.urlParams_, opts...)
13256	res, err := c.doRequest("json")
13257	if res != nil && res.StatusCode == http.StatusNotModified {
13258		if res.Body != nil {
13259			res.Body.Close()
13260		}
13261		return nil, &googleapi.Error{
13262			Code:   res.StatusCode,
13263			Header: res.Header,
13264		}
13265	}
13266	if err != nil {
13267		return nil, err
13268	}
13269	defer googleapi.CloseBody(res)
13270	if err := googleapi.CheckResponse(res); err != nil {
13271		return nil, err
13272	}
13273	ret := &ListSnapshotsResponse{
13274		ServerResponse: googleapi.ServerResponse{
13275			Header:         res.Header,
13276			HTTPStatusCode: res.StatusCode,
13277		},
13278	}
13279	target := &ret
13280	if err := gensupport.DecodeResponse(target, res); err != nil {
13281		return nil, err
13282	}
13283	return ret, nil
13284	// {
13285	//   "description": "Lists snapshots.",
13286	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/snapshots",
13287	//   "httpMethod": "GET",
13288	//   "id": "dataflow.projects.locations.jobs.snapshots.list",
13289	//   "parameterOrder": [
13290	//     "projectId",
13291	//     "location",
13292	//     "jobId"
13293	//   ],
13294	//   "parameters": {
13295	//     "jobId": {
13296	//       "description": "If specified, list snapshots created from this job.",
13297	//       "location": "path",
13298	//       "required": true,
13299	//       "type": "string"
13300	//     },
13301	//     "location": {
13302	//       "description": "The location to list snapshots in.",
13303	//       "location": "path",
13304	//       "required": true,
13305	//       "type": "string"
13306	//     },
13307	//     "projectId": {
13308	//       "description": "The project ID to list snapshots for.",
13309	//       "location": "path",
13310	//       "required": true,
13311	//       "type": "string"
13312	//     }
13313	//   },
13314	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/snapshots",
13315	//   "response": {
13316	//     "$ref": "ListSnapshotsResponse"
13317	//   },
13318	//   "scopes": [
13319	//     "https://www.googleapis.com/auth/cloud-platform",
13320	//     "https://www.googleapis.com/auth/compute",
13321	//     "https://www.googleapis.com/auth/compute.readonly",
13322	//     "https://www.googleapis.com/auth/userinfo.email"
13323	//   ]
13324	// }
13325
13326}
13327
13328// method id "dataflow.projects.locations.jobs.stages.getExecutionDetails":
13329
13330type ProjectsLocationsJobsStagesGetExecutionDetailsCall struct {
13331	s            *Service
13332	projectId    string
13333	location     string
13334	jobId        string
13335	stageId      string
13336	urlParams_   gensupport.URLParams
13337	ifNoneMatch_ string
13338	ctx_         context.Context
13339	header_      http.Header
13340}
13341
13342// GetExecutionDetails: Request detailed information about the execution
13343// status of a stage of the job. EXPERIMENTAL. This API is subject to
13344// change or removal without notice.
13345//
13346// - jobId: The job to get execution details for.
13347// - location: The [regional endpoint]
13348//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
13349//   that contains the job specified by job_id.
13350// - projectId: A project id.
13351// - stageId: The stage for which to fetch information.
13352func (r *ProjectsLocationsJobsStagesService) GetExecutionDetails(projectId string, location string, jobId string, stageId string) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13353	c := &ProjectsLocationsJobsStagesGetExecutionDetailsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13354	c.projectId = projectId
13355	c.location = location
13356	c.jobId = jobId
13357	c.stageId = stageId
13358	return c
13359}
13360
13361// EndTime sets the optional parameter "endTime": Upper time bound of
13362// work items to include, by start time.
13363func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) EndTime(endTime string) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13364	c.urlParams_.Set("endTime", endTime)
13365	return c
13366}
13367
13368// PageSize sets the optional parameter "pageSize": If specified,
13369// determines the maximum number of work items to return. If
13370// unspecified, the service may choose an appropriate default, or may
13371// return an arbitrarily large number of results.
13372func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) PageSize(pageSize int64) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13373	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
13374	return c
13375}
13376
13377// PageToken sets the optional parameter "pageToken": If supplied, this
13378// should be the value of next_page_token returned by an earlier call.
13379// This will cause the next page of results to be returned.
13380func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) PageToken(pageToken string) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13381	c.urlParams_.Set("pageToken", pageToken)
13382	return c
13383}
13384
13385// StartTime sets the optional parameter "startTime": Lower time bound
13386// of work items to include, by start time.
13387func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) StartTime(startTime string) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13388	c.urlParams_.Set("startTime", startTime)
13389	return c
13390}
13391
13392// Fields allows partial responses to be retrieved. See
13393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13394// for more information.
13395func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13397	return c
13398}
13399
13400// IfNoneMatch sets the optional parameter which makes the operation
13401// fail if the object's ETag matches the given value. This is useful for
13402// getting updates only after the object has changed since the last
13403// request. Use googleapi.IsNotModified to check whether the response
13404// error from Do is the result of In-None-Match.
13405func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13406	c.ifNoneMatch_ = entityTag
13407	return c
13408}
13409
13410// Context sets the context to be used in this call's Do method. Any
13411// pending HTTP request will be aborted if the provided context is
13412// canceled.
13413func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) Context(ctx context.Context) *ProjectsLocationsJobsStagesGetExecutionDetailsCall {
13414	c.ctx_ = ctx
13415	return c
13416}
13417
13418// Header returns an http.Header that can be modified by the caller to
13419// add HTTP headers to the request.
13420func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) Header() http.Header {
13421	if c.header_ == nil {
13422		c.header_ = make(http.Header)
13423	}
13424	return c.header_
13425}
13426
13427func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) doRequest(alt string) (*http.Response, error) {
13428	reqHeaders := make(http.Header)
13429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
13430	for k, v := range c.header_ {
13431		reqHeaders[k] = v
13432	}
13433	reqHeaders.Set("User-Agent", c.s.userAgent())
13434	if c.ifNoneMatch_ != "" {
13435		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13436	}
13437	var body io.Reader = nil
13438	c.urlParams_.Set("alt", alt)
13439	c.urlParams_.Set("prettyPrint", "false")
13440	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/stages/{stageId}/executionDetails")
13441	urls += "?" + c.urlParams_.Encode()
13442	req, err := http.NewRequest("GET", urls, body)
13443	if err != nil {
13444		return nil, err
13445	}
13446	req.Header = reqHeaders
13447	googleapi.Expand(req.URL, map[string]string{
13448		"projectId": c.projectId,
13449		"location":  c.location,
13450		"jobId":     c.jobId,
13451		"stageId":   c.stageId,
13452	})
13453	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13454}
13455
13456// Do executes the "dataflow.projects.locations.jobs.stages.getExecutionDetails" call.
13457// Exactly one of *StageExecutionDetails or error will be non-nil. Any
13458// non-2xx status code is an error. Response headers are in either
13459// *StageExecutionDetails.ServerResponse.Header or (if a response was
13460// returned at all) in error.(*googleapi.Error).Header. Use
13461// googleapi.IsNotModified to check whether the returned error was
13462// because http.StatusNotModified was returned.
13463func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) Do(opts ...googleapi.CallOption) (*StageExecutionDetails, error) {
13464	gensupport.SetOptions(c.urlParams_, opts...)
13465	res, err := c.doRequest("json")
13466	if res != nil && res.StatusCode == http.StatusNotModified {
13467		if res.Body != nil {
13468			res.Body.Close()
13469		}
13470		return nil, &googleapi.Error{
13471			Code:   res.StatusCode,
13472			Header: res.Header,
13473		}
13474	}
13475	if err != nil {
13476		return nil, err
13477	}
13478	defer googleapi.CloseBody(res)
13479	if err := googleapi.CheckResponse(res); err != nil {
13480		return nil, err
13481	}
13482	ret := &StageExecutionDetails{
13483		ServerResponse: googleapi.ServerResponse{
13484			Header:         res.Header,
13485			HTTPStatusCode: res.StatusCode,
13486		},
13487	}
13488	target := &ret
13489	if err := gensupport.DecodeResponse(target, res); err != nil {
13490		return nil, err
13491	}
13492	return ret, nil
13493	// {
13494	//   "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.",
13495	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/stages/{stageId}/executionDetails",
13496	//   "httpMethod": "GET",
13497	//   "id": "dataflow.projects.locations.jobs.stages.getExecutionDetails",
13498	//   "parameterOrder": [
13499	//     "projectId",
13500	//     "location",
13501	//     "jobId",
13502	//     "stageId"
13503	//   ],
13504	//   "parameters": {
13505	//     "endTime": {
13506	//       "description": "Upper time bound of work items to include, by start time.",
13507	//       "format": "google-datetime",
13508	//       "location": "query",
13509	//       "type": "string"
13510	//     },
13511	//     "jobId": {
13512	//       "description": "The job to get execution details for.",
13513	//       "location": "path",
13514	//       "required": true,
13515	//       "type": "string"
13516	//     },
13517	//     "location": {
13518	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.",
13519	//       "location": "path",
13520	//       "required": true,
13521	//       "type": "string"
13522	//     },
13523	//     "pageSize": {
13524	//       "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.",
13525	//       "format": "int32",
13526	//       "location": "query",
13527	//       "type": "integer"
13528	//     },
13529	//     "pageToken": {
13530	//       "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.",
13531	//       "location": "query",
13532	//       "type": "string"
13533	//     },
13534	//     "projectId": {
13535	//       "description": "A project id.",
13536	//       "location": "path",
13537	//       "required": true,
13538	//       "type": "string"
13539	//     },
13540	//     "stageId": {
13541	//       "description": "The stage for which to fetch information.",
13542	//       "location": "path",
13543	//       "required": true,
13544	//       "type": "string"
13545	//     },
13546	//     "startTime": {
13547	//       "description": "Lower time bound of work items to include, by start time.",
13548	//       "format": "google-datetime",
13549	//       "location": "query",
13550	//       "type": "string"
13551	//     }
13552	//   },
13553	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/stages/{stageId}/executionDetails",
13554	//   "response": {
13555	//     "$ref": "StageExecutionDetails"
13556	//   },
13557	//   "scopes": [
13558	//     "https://www.googleapis.com/auth/cloud-platform",
13559	//     "https://www.googleapis.com/auth/compute",
13560	//     "https://www.googleapis.com/auth/compute.readonly",
13561	//     "https://www.googleapis.com/auth/userinfo.email"
13562	//   ]
13563	// }
13564
13565}
13566
13567// Pages invokes f for each page of results.
13568// A non-nil error returned from f will halt the iteration.
13569// The provided context supersedes any context provided to the Context method.
13570func (c *ProjectsLocationsJobsStagesGetExecutionDetailsCall) Pages(ctx context.Context, f func(*StageExecutionDetails) error) error {
13571	c.ctx_ = ctx
13572	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
13573	for {
13574		x, err := c.Do()
13575		if err != nil {
13576			return err
13577		}
13578		if err := f(x); err != nil {
13579			return err
13580		}
13581		if x.NextPageToken == "" {
13582			return nil
13583		}
13584		c.PageToken(x.NextPageToken)
13585	}
13586}
13587
13588// method id "dataflow.projects.locations.jobs.workItems.lease":
13589
13590type ProjectsLocationsJobsWorkItemsLeaseCall struct {
13591	s                    *Service
13592	projectId            string
13593	location             string
13594	jobId                string
13595	leaseworkitemrequest *LeaseWorkItemRequest
13596	urlParams_           gensupport.URLParams
13597	ctx_                 context.Context
13598	header_              http.Header
13599}
13600
13601// Lease: Leases a dataflow WorkItem to run.
13602//
13603// - jobId: Identifies the workflow job this worker belongs to.
13604// - location: The [regional endpoint]
13605//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
13606//   that contains the WorkItem's job.
13607// - projectId: Identifies the project this worker belongs to.
13608func (r *ProjectsLocationsJobsWorkItemsService) Lease(projectId string, location string, jobId string, leaseworkitemrequest *LeaseWorkItemRequest) *ProjectsLocationsJobsWorkItemsLeaseCall {
13609	c := &ProjectsLocationsJobsWorkItemsLeaseCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13610	c.projectId = projectId
13611	c.location = location
13612	c.jobId = jobId
13613	c.leaseworkitemrequest = leaseworkitemrequest
13614	return c
13615}
13616
13617// Fields allows partial responses to be retrieved. See
13618// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13619// for more information.
13620func (c *ProjectsLocationsJobsWorkItemsLeaseCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsWorkItemsLeaseCall {
13621	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13622	return c
13623}
13624
13625// Context sets the context to be used in this call's Do method. Any
13626// pending HTTP request will be aborted if the provided context is
13627// canceled.
13628func (c *ProjectsLocationsJobsWorkItemsLeaseCall) Context(ctx context.Context) *ProjectsLocationsJobsWorkItemsLeaseCall {
13629	c.ctx_ = ctx
13630	return c
13631}
13632
13633// Header returns an http.Header that can be modified by the caller to
13634// add HTTP headers to the request.
13635func (c *ProjectsLocationsJobsWorkItemsLeaseCall) Header() http.Header {
13636	if c.header_ == nil {
13637		c.header_ = make(http.Header)
13638	}
13639	return c.header_
13640}
13641
13642func (c *ProjectsLocationsJobsWorkItemsLeaseCall) doRequest(alt string) (*http.Response, error) {
13643	reqHeaders := make(http.Header)
13644	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
13645	for k, v := range c.header_ {
13646		reqHeaders[k] = v
13647	}
13648	reqHeaders.Set("User-Agent", c.s.userAgent())
13649	var body io.Reader = nil
13650	body, err := googleapi.WithoutDataWrapper.JSONReader(c.leaseworkitemrequest)
13651	if err != nil {
13652		return nil, err
13653	}
13654	reqHeaders.Set("Content-Type", "application/json")
13655	c.urlParams_.Set("alt", alt)
13656	c.urlParams_.Set("prettyPrint", "false")
13657	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease")
13658	urls += "?" + c.urlParams_.Encode()
13659	req, err := http.NewRequest("POST", urls, body)
13660	if err != nil {
13661		return nil, err
13662	}
13663	req.Header = reqHeaders
13664	googleapi.Expand(req.URL, map[string]string{
13665		"projectId": c.projectId,
13666		"location":  c.location,
13667		"jobId":     c.jobId,
13668	})
13669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13670}
13671
13672// Do executes the "dataflow.projects.locations.jobs.workItems.lease" call.
13673// Exactly one of *LeaseWorkItemResponse or error will be non-nil. Any
13674// non-2xx status code is an error. Response headers are in either
13675// *LeaseWorkItemResponse.ServerResponse.Header or (if a response was
13676// returned at all) in error.(*googleapi.Error).Header. Use
13677// googleapi.IsNotModified to check whether the returned error was
13678// because http.StatusNotModified was returned.
13679func (c *ProjectsLocationsJobsWorkItemsLeaseCall) Do(opts ...googleapi.CallOption) (*LeaseWorkItemResponse, error) {
13680	gensupport.SetOptions(c.urlParams_, opts...)
13681	res, err := c.doRequest("json")
13682	if res != nil && res.StatusCode == http.StatusNotModified {
13683		if res.Body != nil {
13684			res.Body.Close()
13685		}
13686		return nil, &googleapi.Error{
13687			Code:   res.StatusCode,
13688			Header: res.Header,
13689		}
13690	}
13691	if err != nil {
13692		return nil, err
13693	}
13694	defer googleapi.CloseBody(res)
13695	if err := googleapi.CheckResponse(res); err != nil {
13696		return nil, err
13697	}
13698	ret := &LeaseWorkItemResponse{
13699		ServerResponse: googleapi.ServerResponse{
13700			Header:         res.Header,
13701			HTTPStatusCode: res.StatusCode,
13702		},
13703	}
13704	target := &ret
13705	if err := gensupport.DecodeResponse(target, res); err != nil {
13706		return nil, err
13707	}
13708	return ret, nil
13709	// {
13710	//   "description": "Leases a dataflow WorkItem to run.",
13711	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease",
13712	//   "httpMethod": "POST",
13713	//   "id": "dataflow.projects.locations.jobs.workItems.lease",
13714	//   "parameterOrder": [
13715	//     "projectId",
13716	//     "location",
13717	//     "jobId"
13718	//   ],
13719	//   "parameters": {
13720	//     "jobId": {
13721	//       "description": "Identifies the workflow job this worker belongs to.",
13722	//       "location": "path",
13723	//       "required": true,
13724	//       "type": "string"
13725	//     },
13726	//     "location": {
13727	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the WorkItem's job.",
13728	//       "location": "path",
13729	//       "required": true,
13730	//       "type": "string"
13731	//     },
13732	//     "projectId": {
13733	//       "description": "Identifies the project this worker belongs to.",
13734	//       "location": "path",
13735	//       "required": true,
13736	//       "type": "string"
13737	//     }
13738	//   },
13739	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease",
13740	//   "request": {
13741	//     "$ref": "LeaseWorkItemRequest"
13742	//   },
13743	//   "response": {
13744	//     "$ref": "LeaseWorkItemResponse"
13745	//   },
13746	//   "scopes": [
13747	//     "https://www.googleapis.com/auth/cloud-platform",
13748	//     "https://www.googleapis.com/auth/compute",
13749	//     "https://www.googleapis.com/auth/compute.readonly",
13750	//     "https://www.googleapis.com/auth/userinfo.email"
13751	//   ]
13752	// }
13753
13754}
13755
13756// method id "dataflow.projects.locations.jobs.workItems.reportStatus":
13757
13758type ProjectsLocationsJobsWorkItemsReportStatusCall struct {
13759	s                           *Service
13760	projectId                   string
13761	location                    string
13762	jobId                       string
13763	reportworkitemstatusrequest *ReportWorkItemStatusRequest
13764	urlParams_                  gensupport.URLParams
13765	ctx_                        context.Context
13766	header_                     http.Header
13767}
13768
13769// ReportStatus: Reports the status of dataflow WorkItems leased by a
13770// worker.
13771//
13772// - jobId: The job which the WorkItem is part of.
13773// - location: The [regional endpoint]
13774//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
13775//   that contains the WorkItem's job.
13776// - projectId: The project which owns the WorkItem's job.
13777func (r *ProjectsLocationsJobsWorkItemsService) ReportStatus(projectId string, location string, jobId string, reportworkitemstatusrequest *ReportWorkItemStatusRequest) *ProjectsLocationsJobsWorkItemsReportStatusCall {
13778	c := &ProjectsLocationsJobsWorkItemsReportStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13779	c.projectId = projectId
13780	c.location = location
13781	c.jobId = jobId
13782	c.reportworkitemstatusrequest = reportworkitemstatusrequest
13783	return c
13784}
13785
13786// Fields allows partial responses to be retrieved. See
13787// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13788// for more information.
13789func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsWorkItemsReportStatusCall {
13790	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13791	return c
13792}
13793
13794// Context sets the context to be used in this call's Do method. Any
13795// pending HTTP request will be aborted if the provided context is
13796// canceled.
13797func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) Context(ctx context.Context) *ProjectsLocationsJobsWorkItemsReportStatusCall {
13798	c.ctx_ = ctx
13799	return c
13800}
13801
13802// Header returns an http.Header that can be modified by the caller to
13803// add HTTP headers to the request.
13804func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) Header() http.Header {
13805	if c.header_ == nil {
13806		c.header_ = make(http.Header)
13807	}
13808	return c.header_
13809}
13810
13811func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) doRequest(alt string) (*http.Response, error) {
13812	reqHeaders := make(http.Header)
13813	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
13814	for k, v := range c.header_ {
13815		reqHeaders[k] = v
13816	}
13817	reqHeaders.Set("User-Agent", c.s.userAgent())
13818	var body io.Reader = nil
13819	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reportworkitemstatusrequest)
13820	if err != nil {
13821		return nil, err
13822	}
13823	reqHeaders.Set("Content-Type", "application/json")
13824	c.urlParams_.Set("alt", alt)
13825	c.urlParams_.Set("prettyPrint", "false")
13826	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus")
13827	urls += "?" + c.urlParams_.Encode()
13828	req, err := http.NewRequest("POST", urls, body)
13829	if err != nil {
13830		return nil, err
13831	}
13832	req.Header = reqHeaders
13833	googleapi.Expand(req.URL, map[string]string{
13834		"projectId": c.projectId,
13835		"location":  c.location,
13836		"jobId":     c.jobId,
13837	})
13838	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13839}
13840
13841// Do executes the "dataflow.projects.locations.jobs.workItems.reportStatus" call.
13842// Exactly one of *ReportWorkItemStatusResponse or error will be
13843// non-nil. Any non-2xx status code is an error. Response headers are in
13844// either *ReportWorkItemStatusResponse.ServerResponse.Header or (if a
13845// response was returned at all) in error.(*googleapi.Error).Header. Use
13846// googleapi.IsNotModified to check whether the returned error was
13847// because http.StatusNotModified was returned.
13848func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) Do(opts ...googleapi.CallOption) (*ReportWorkItemStatusResponse, error) {
13849	gensupport.SetOptions(c.urlParams_, opts...)
13850	res, err := c.doRequest("json")
13851	if res != nil && res.StatusCode == http.StatusNotModified {
13852		if res.Body != nil {
13853			res.Body.Close()
13854		}
13855		return nil, &googleapi.Error{
13856			Code:   res.StatusCode,
13857			Header: res.Header,
13858		}
13859	}
13860	if err != nil {
13861		return nil, err
13862	}
13863	defer googleapi.CloseBody(res)
13864	if err := googleapi.CheckResponse(res); err != nil {
13865		return nil, err
13866	}
13867	ret := &ReportWorkItemStatusResponse{
13868		ServerResponse: googleapi.ServerResponse{
13869			Header:         res.Header,
13870			HTTPStatusCode: res.StatusCode,
13871		},
13872	}
13873	target := &ret
13874	if err := gensupport.DecodeResponse(target, res); err != nil {
13875		return nil, err
13876	}
13877	return ret, nil
13878	// {
13879	//   "description": "Reports the status of dataflow WorkItems leased by a worker.",
13880	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus",
13881	//   "httpMethod": "POST",
13882	//   "id": "dataflow.projects.locations.jobs.workItems.reportStatus",
13883	//   "parameterOrder": [
13884	//     "projectId",
13885	//     "location",
13886	//     "jobId"
13887	//   ],
13888	//   "parameters": {
13889	//     "jobId": {
13890	//       "description": "The job which the WorkItem is part of.",
13891	//       "location": "path",
13892	//       "required": true,
13893	//       "type": "string"
13894	//     },
13895	//     "location": {
13896	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the WorkItem's job.",
13897	//       "location": "path",
13898	//       "required": true,
13899	//       "type": "string"
13900	//     },
13901	//     "projectId": {
13902	//       "description": "The project which owns the WorkItem's job.",
13903	//       "location": "path",
13904	//       "required": true,
13905	//       "type": "string"
13906	//     }
13907	//   },
13908	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus",
13909	//   "request": {
13910	//     "$ref": "ReportWorkItemStatusRequest"
13911	//   },
13912	//   "response": {
13913	//     "$ref": "ReportWorkItemStatusResponse"
13914	//   },
13915	//   "scopes": [
13916	//     "https://www.googleapis.com/auth/cloud-platform",
13917	//     "https://www.googleapis.com/auth/compute",
13918	//     "https://www.googleapis.com/auth/compute.readonly",
13919	//     "https://www.googleapis.com/auth/userinfo.email"
13920	//   ]
13921	// }
13922
13923}
13924
13925// method id "dataflow.projects.locations.snapshots.delete":
13926
13927type ProjectsLocationsSnapshotsDeleteCall struct {
13928	s          *Service
13929	projectId  string
13930	location   string
13931	snapshotId string
13932	urlParams_ gensupport.URLParams
13933	ctx_       context.Context
13934	header_    http.Header
13935}
13936
13937// Delete: Deletes a snapshot.
13938//
13939// - location: The location that contains this snapshot.
13940// - projectId: The ID of the Cloud Platform project that the snapshot
13941//   belongs to.
13942// - snapshotId: The ID of the snapshot.
13943func (r *ProjectsLocationsSnapshotsService) Delete(projectId string, location string, snapshotId string) *ProjectsLocationsSnapshotsDeleteCall {
13944	c := &ProjectsLocationsSnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13945	c.projectId = projectId
13946	c.location = location
13947	c.snapshotId = snapshotId
13948	return c
13949}
13950
13951// Fields allows partial responses to be retrieved. See
13952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13953// for more information.
13954func (c *ProjectsLocationsSnapshotsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsSnapshotsDeleteCall {
13955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13956	return c
13957}
13958
13959// Context sets the context to be used in this call's Do method. Any
13960// pending HTTP request will be aborted if the provided context is
13961// canceled.
13962func (c *ProjectsLocationsSnapshotsDeleteCall) Context(ctx context.Context) *ProjectsLocationsSnapshotsDeleteCall {
13963	c.ctx_ = ctx
13964	return c
13965}
13966
13967// Header returns an http.Header that can be modified by the caller to
13968// add HTTP headers to the request.
13969func (c *ProjectsLocationsSnapshotsDeleteCall) Header() http.Header {
13970	if c.header_ == nil {
13971		c.header_ = make(http.Header)
13972	}
13973	return c.header_
13974}
13975
13976func (c *ProjectsLocationsSnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
13977	reqHeaders := make(http.Header)
13978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
13979	for k, v := range c.header_ {
13980		reqHeaders[k] = v
13981	}
13982	reqHeaders.Set("User-Agent", c.s.userAgent())
13983	var body io.Reader = nil
13984	c.urlParams_.Set("alt", alt)
13985	c.urlParams_.Set("prettyPrint", "false")
13986	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}")
13987	urls += "?" + c.urlParams_.Encode()
13988	req, err := http.NewRequest("DELETE", urls, body)
13989	if err != nil {
13990		return nil, err
13991	}
13992	req.Header = reqHeaders
13993	googleapi.Expand(req.URL, map[string]string{
13994		"projectId":  c.projectId,
13995		"location":   c.location,
13996		"snapshotId": c.snapshotId,
13997	})
13998	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13999}
14000
14001// Do executes the "dataflow.projects.locations.snapshots.delete" call.
14002// Exactly one of *DeleteSnapshotResponse or error will be non-nil. Any
14003// non-2xx status code is an error. Response headers are in either
14004// *DeleteSnapshotResponse.ServerResponse.Header or (if a response was
14005// returned at all) in error.(*googleapi.Error).Header. Use
14006// googleapi.IsNotModified to check whether the returned error was
14007// because http.StatusNotModified was returned.
14008func (c *ProjectsLocationsSnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*DeleteSnapshotResponse, error) {
14009	gensupport.SetOptions(c.urlParams_, opts...)
14010	res, err := c.doRequest("json")
14011	if res != nil && res.StatusCode == http.StatusNotModified {
14012		if res.Body != nil {
14013			res.Body.Close()
14014		}
14015		return nil, &googleapi.Error{
14016			Code:   res.StatusCode,
14017			Header: res.Header,
14018		}
14019	}
14020	if err != nil {
14021		return nil, err
14022	}
14023	defer googleapi.CloseBody(res)
14024	if err := googleapi.CheckResponse(res); err != nil {
14025		return nil, err
14026	}
14027	ret := &DeleteSnapshotResponse{
14028		ServerResponse: googleapi.ServerResponse{
14029			Header:         res.Header,
14030			HTTPStatusCode: res.StatusCode,
14031		},
14032	}
14033	target := &ret
14034	if err := gensupport.DecodeResponse(target, res); err != nil {
14035		return nil, err
14036	}
14037	return ret, nil
14038	// {
14039	//   "description": "Deletes a snapshot.",
14040	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}",
14041	//   "httpMethod": "DELETE",
14042	//   "id": "dataflow.projects.locations.snapshots.delete",
14043	//   "parameterOrder": [
14044	//     "projectId",
14045	//     "location",
14046	//     "snapshotId"
14047	//   ],
14048	//   "parameters": {
14049	//     "location": {
14050	//       "description": "The location that contains this snapshot.",
14051	//       "location": "path",
14052	//       "required": true,
14053	//       "type": "string"
14054	//     },
14055	//     "projectId": {
14056	//       "description": "The ID of the Cloud Platform project that the snapshot belongs to.",
14057	//       "location": "path",
14058	//       "required": true,
14059	//       "type": "string"
14060	//     },
14061	//     "snapshotId": {
14062	//       "description": "The ID of the snapshot.",
14063	//       "location": "path",
14064	//       "required": true,
14065	//       "type": "string"
14066	//     }
14067	//   },
14068	//   "path": "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}",
14069	//   "response": {
14070	//     "$ref": "DeleteSnapshotResponse"
14071	//   },
14072	//   "scopes": [
14073	//     "https://www.googleapis.com/auth/cloud-platform",
14074	//     "https://www.googleapis.com/auth/compute",
14075	//     "https://www.googleapis.com/auth/compute.readonly",
14076	//     "https://www.googleapis.com/auth/userinfo.email"
14077	//   ]
14078	// }
14079
14080}
14081
14082// method id "dataflow.projects.locations.snapshots.get":
14083
14084type ProjectsLocationsSnapshotsGetCall struct {
14085	s            *Service
14086	projectId    string
14087	location     string
14088	snapshotId   string
14089	urlParams_   gensupport.URLParams
14090	ifNoneMatch_ string
14091	ctx_         context.Context
14092	header_      http.Header
14093}
14094
14095// Get: Gets information about a snapshot.
14096//
14097// - location: The location that contains this snapshot.
14098// - projectId: The ID of the Cloud Platform project that the snapshot
14099//   belongs to.
14100// - snapshotId: The ID of the snapshot.
14101func (r *ProjectsLocationsSnapshotsService) Get(projectId string, location string, snapshotId string) *ProjectsLocationsSnapshotsGetCall {
14102	c := &ProjectsLocationsSnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14103	c.projectId = projectId
14104	c.location = location
14105	c.snapshotId = snapshotId
14106	return c
14107}
14108
14109// Fields allows partial responses to be retrieved. See
14110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14111// for more information.
14112func (c *ProjectsLocationsSnapshotsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsSnapshotsGetCall {
14113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14114	return c
14115}
14116
14117// IfNoneMatch sets the optional parameter which makes the operation
14118// fail if the object's ETag matches the given value. This is useful for
14119// getting updates only after the object has changed since the last
14120// request. Use googleapi.IsNotModified to check whether the response
14121// error from Do is the result of In-None-Match.
14122func (c *ProjectsLocationsSnapshotsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsSnapshotsGetCall {
14123	c.ifNoneMatch_ = entityTag
14124	return c
14125}
14126
14127// Context sets the context to be used in this call's Do method. Any
14128// pending HTTP request will be aborted if the provided context is
14129// canceled.
14130func (c *ProjectsLocationsSnapshotsGetCall) Context(ctx context.Context) *ProjectsLocationsSnapshotsGetCall {
14131	c.ctx_ = ctx
14132	return c
14133}
14134
14135// Header returns an http.Header that can be modified by the caller to
14136// add HTTP headers to the request.
14137func (c *ProjectsLocationsSnapshotsGetCall) Header() http.Header {
14138	if c.header_ == nil {
14139		c.header_ = make(http.Header)
14140	}
14141	return c.header_
14142}
14143
14144func (c *ProjectsLocationsSnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
14145	reqHeaders := make(http.Header)
14146	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
14147	for k, v := range c.header_ {
14148		reqHeaders[k] = v
14149	}
14150	reqHeaders.Set("User-Agent", c.s.userAgent())
14151	if c.ifNoneMatch_ != "" {
14152		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14153	}
14154	var body io.Reader = nil
14155	c.urlParams_.Set("alt", alt)
14156	c.urlParams_.Set("prettyPrint", "false")
14157	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}")
14158	urls += "?" + c.urlParams_.Encode()
14159	req, err := http.NewRequest("GET", urls, body)
14160	if err != nil {
14161		return nil, err
14162	}
14163	req.Header = reqHeaders
14164	googleapi.Expand(req.URL, map[string]string{
14165		"projectId":  c.projectId,
14166		"location":   c.location,
14167		"snapshotId": c.snapshotId,
14168	})
14169	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14170}
14171
14172// Do executes the "dataflow.projects.locations.snapshots.get" call.
14173// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
14174// code is an error. Response headers are in either
14175// *Snapshot.ServerResponse.Header or (if a response was returned at
14176// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
14177// to check whether the returned error was because
14178// http.StatusNotModified was returned.
14179func (c *ProjectsLocationsSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
14180	gensupport.SetOptions(c.urlParams_, opts...)
14181	res, err := c.doRequest("json")
14182	if res != nil && res.StatusCode == http.StatusNotModified {
14183		if res.Body != nil {
14184			res.Body.Close()
14185		}
14186		return nil, &googleapi.Error{
14187			Code:   res.StatusCode,
14188			Header: res.Header,
14189		}
14190	}
14191	if err != nil {
14192		return nil, err
14193	}
14194	defer googleapi.CloseBody(res)
14195	if err := googleapi.CheckResponse(res); err != nil {
14196		return nil, err
14197	}
14198	ret := &Snapshot{
14199		ServerResponse: googleapi.ServerResponse{
14200			Header:         res.Header,
14201			HTTPStatusCode: res.StatusCode,
14202		},
14203	}
14204	target := &ret
14205	if err := gensupport.DecodeResponse(target, res); err != nil {
14206		return nil, err
14207	}
14208	return ret, nil
14209	// {
14210	//   "description": "Gets information about a snapshot.",
14211	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}",
14212	//   "httpMethod": "GET",
14213	//   "id": "dataflow.projects.locations.snapshots.get",
14214	//   "parameterOrder": [
14215	//     "projectId",
14216	//     "location",
14217	//     "snapshotId"
14218	//   ],
14219	//   "parameters": {
14220	//     "location": {
14221	//       "description": "The location that contains this snapshot.",
14222	//       "location": "path",
14223	//       "required": true,
14224	//       "type": "string"
14225	//     },
14226	//     "projectId": {
14227	//       "description": "The ID of the Cloud Platform project that the snapshot belongs to.",
14228	//       "location": "path",
14229	//       "required": true,
14230	//       "type": "string"
14231	//     },
14232	//     "snapshotId": {
14233	//       "description": "The ID of the snapshot.",
14234	//       "location": "path",
14235	//       "required": true,
14236	//       "type": "string"
14237	//     }
14238	//   },
14239	//   "path": "v1b3/projects/{projectId}/locations/{location}/snapshots/{snapshotId}",
14240	//   "response": {
14241	//     "$ref": "Snapshot"
14242	//   },
14243	//   "scopes": [
14244	//     "https://www.googleapis.com/auth/cloud-platform",
14245	//     "https://www.googleapis.com/auth/compute",
14246	//     "https://www.googleapis.com/auth/compute.readonly",
14247	//     "https://www.googleapis.com/auth/userinfo.email"
14248	//   ]
14249	// }
14250
14251}
14252
14253// method id "dataflow.projects.locations.snapshots.list":
14254
14255type ProjectsLocationsSnapshotsListCall struct {
14256	s            *Service
14257	projectId    string
14258	location     string
14259	urlParams_   gensupport.URLParams
14260	ifNoneMatch_ string
14261	ctx_         context.Context
14262	header_      http.Header
14263}
14264
14265// List: Lists snapshots.
14266//
14267// - location: The location to list snapshots in.
14268// - projectId: The project ID to list snapshots for.
14269func (r *ProjectsLocationsSnapshotsService) List(projectId string, location string) *ProjectsLocationsSnapshotsListCall {
14270	c := &ProjectsLocationsSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14271	c.projectId = projectId
14272	c.location = location
14273	return c
14274}
14275
14276// JobId sets the optional parameter "jobId": If specified, list
14277// snapshots created from this job.
14278func (c *ProjectsLocationsSnapshotsListCall) JobId(jobId string) *ProjectsLocationsSnapshotsListCall {
14279	c.urlParams_.Set("jobId", jobId)
14280	return c
14281}
14282
14283// Fields allows partial responses to be retrieved. See
14284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14285// for more information.
14286func (c *ProjectsLocationsSnapshotsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsSnapshotsListCall {
14287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14288	return c
14289}
14290
14291// IfNoneMatch sets the optional parameter which makes the operation
14292// fail if the object's ETag matches the given value. This is useful for
14293// getting updates only after the object has changed since the last
14294// request. Use googleapi.IsNotModified to check whether the response
14295// error from Do is the result of In-None-Match.
14296func (c *ProjectsLocationsSnapshotsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsSnapshotsListCall {
14297	c.ifNoneMatch_ = entityTag
14298	return c
14299}
14300
14301// Context sets the context to be used in this call's Do method. Any
14302// pending HTTP request will be aborted if the provided context is
14303// canceled.
14304func (c *ProjectsLocationsSnapshotsListCall) Context(ctx context.Context) *ProjectsLocationsSnapshotsListCall {
14305	c.ctx_ = ctx
14306	return c
14307}
14308
14309// Header returns an http.Header that can be modified by the caller to
14310// add HTTP headers to the request.
14311func (c *ProjectsLocationsSnapshotsListCall) Header() http.Header {
14312	if c.header_ == nil {
14313		c.header_ = make(http.Header)
14314	}
14315	return c.header_
14316}
14317
14318func (c *ProjectsLocationsSnapshotsListCall) doRequest(alt string) (*http.Response, error) {
14319	reqHeaders := make(http.Header)
14320	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
14321	for k, v := range c.header_ {
14322		reqHeaders[k] = v
14323	}
14324	reqHeaders.Set("User-Agent", c.s.userAgent())
14325	if c.ifNoneMatch_ != "" {
14326		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14327	}
14328	var body io.Reader = nil
14329	c.urlParams_.Set("alt", alt)
14330	c.urlParams_.Set("prettyPrint", "false")
14331	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/snapshots")
14332	urls += "?" + c.urlParams_.Encode()
14333	req, err := http.NewRequest("GET", urls, body)
14334	if err != nil {
14335		return nil, err
14336	}
14337	req.Header = reqHeaders
14338	googleapi.Expand(req.URL, map[string]string{
14339		"projectId": c.projectId,
14340		"location":  c.location,
14341	})
14342	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14343}
14344
14345// Do executes the "dataflow.projects.locations.snapshots.list" call.
14346// Exactly one of *ListSnapshotsResponse or error will be non-nil. Any
14347// non-2xx status code is an error. Response headers are in either
14348// *ListSnapshotsResponse.ServerResponse.Header or (if a response was
14349// returned at all) in error.(*googleapi.Error).Header. Use
14350// googleapi.IsNotModified to check whether the returned error was
14351// because http.StatusNotModified was returned.
14352func (c *ProjectsLocationsSnapshotsListCall) Do(opts ...googleapi.CallOption) (*ListSnapshotsResponse, error) {
14353	gensupport.SetOptions(c.urlParams_, opts...)
14354	res, err := c.doRequest("json")
14355	if res != nil && res.StatusCode == http.StatusNotModified {
14356		if res.Body != nil {
14357			res.Body.Close()
14358		}
14359		return nil, &googleapi.Error{
14360			Code:   res.StatusCode,
14361			Header: res.Header,
14362		}
14363	}
14364	if err != nil {
14365		return nil, err
14366	}
14367	defer googleapi.CloseBody(res)
14368	if err := googleapi.CheckResponse(res); err != nil {
14369		return nil, err
14370	}
14371	ret := &ListSnapshotsResponse{
14372		ServerResponse: googleapi.ServerResponse{
14373			Header:         res.Header,
14374			HTTPStatusCode: res.StatusCode,
14375		},
14376	}
14377	target := &ret
14378	if err := gensupport.DecodeResponse(target, res); err != nil {
14379		return nil, err
14380	}
14381	return ret, nil
14382	// {
14383	//   "description": "Lists snapshots.",
14384	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/snapshots",
14385	//   "httpMethod": "GET",
14386	//   "id": "dataflow.projects.locations.snapshots.list",
14387	//   "parameterOrder": [
14388	//     "projectId",
14389	//     "location"
14390	//   ],
14391	//   "parameters": {
14392	//     "jobId": {
14393	//       "description": "If specified, list snapshots created from this job.",
14394	//       "location": "query",
14395	//       "type": "string"
14396	//     },
14397	//     "location": {
14398	//       "description": "The location to list snapshots in.",
14399	//       "location": "path",
14400	//       "required": true,
14401	//       "type": "string"
14402	//     },
14403	//     "projectId": {
14404	//       "description": "The project ID to list snapshots for.",
14405	//       "location": "path",
14406	//       "required": true,
14407	//       "type": "string"
14408	//     }
14409	//   },
14410	//   "path": "v1b3/projects/{projectId}/locations/{location}/snapshots",
14411	//   "response": {
14412	//     "$ref": "ListSnapshotsResponse"
14413	//   },
14414	//   "scopes": [
14415	//     "https://www.googleapis.com/auth/cloud-platform",
14416	//     "https://www.googleapis.com/auth/compute",
14417	//     "https://www.googleapis.com/auth/compute.readonly",
14418	//     "https://www.googleapis.com/auth/userinfo.email"
14419	//   ]
14420	// }
14421
14422}
14423
14424// method id "dataflow.projects.locations.sql.validate":
14425
14426type ProjectsLocationsSqlValidateCall struct {
14427	s            *Service
14428	projectId    string
14429	location     string
14430	urlParams_   gensupport.URLParams
14431	ifNoneMatch_ string
14432	ctx_         context.Context
14433	header_      http.Header
14434}
14435
14436// Validate: Validates a GoogleSQL query for Cloud Dataflow syntax. Will
14437// always confirm the given query parses correctly, and if able to look
14438// up schema information from DataCatalog, will validate that the query
14439// analyzes properly as well.
14440//
14441// - location: The [regional endpoint]
14442//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
14443//   to which to direct the request.
14444// - projectId: The ID of the Cloud Platform project that the job
14445//   belongs to.
14446func (r *ProjectsLocationsSqlService) Validate(projectId string, location string) *ProjectsLocationsSqlValidateCall {
14447	c := &ProjectsLocationsSqlValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14448	c.projectId = projectId
14449	c.location = location
14450	return c
14451}
14452
14453// Query sets the optional parameter "query": The sql query to validate.
14454func (c *ProjectsLocationsSqlValidateCall) Query(query string) *ProjectsLocationsSqlValidateCall {
14455	c.urlParams_.Set("query", query)
14456	return c
14457}
14458
14459// Fields allows partial responses to be retrieved. See
14460// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14461// for more information.
14462func (c *ProjectsLocationsSqlValidateCall) Fields(s ...googleapi.Field) *ProjectsLocationsSqlValidateCall {
14463	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14464	return c
14465}
14466
14467// IfNoneMatch sets the optional parameter which makes the operation
14468// fail if the object's ETag matches the given value. This is useful for
14469// getting updates only after the object has changed since the last
14470// request. Use googleapi.IsNotModified to check whether the response
14471// error from Do is the result of In-None-Match.
14472func (c *ProjectsLocationsSqlValidateCall) IfNoneMatch(entityTag string) *ProjectsLocationsSqlValidateCall {
14473	c.ifNoneMatch_ = entityTag
14474	return c
14475}
14476
14477// Context sets the context to be used in this call's Do method. Any
14478// pending HTTP request will be aborted if the provided context is
14479// canceled.
14480func (c *ProjectsLocationsSqlValidateCall) Context(ctx context.Context) *ProjectsLocationsSqlValidateCall {
14481	c.ctx_ = ctx
14482	return c
14483}
14484
14485// Header returns an http.Header that can be modified by the caller to
14486// add HTTP headers to the request.
14487func (c *ProjectsLocationsSqlValidateCall) Header() http.Header {
14488	if c.header_ == nil {
14489		c.header_ = make(http.Header)
14490	}
14491	return c.header_
14492}
14493
14494func (c *ProjectsLocationsSqlValidateCall) doRequest(alt string) (*http.Response, error) {
14495	reqHeaders := make(http.Header)
14496	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
14497	for k, v := range c.header_ {
14498		reqHeaders[k] = v
14499	}
14500	reqHeaders.Set("User-Agent", c.s.userAgent())
14501	if c.ifNoneMatch_ != "" {
14502		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14503	}
14504	var body io.Reader = nil
14505	c.urlParams_.Set("alt", alt)
14506	c.urlParams_.Set("prettyPrint", "false")
14507	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/sql:validate")
14508	urls += "?" + c.urlParams_.Encode()
14509	req, err := http.NewRequest("GET", urls, body)
14510	if err != nil {
14511		return nil, err
14512	}
14513	req.Header = reqHeaders
14514	googleapi.Expand(req.URL, map[string]string{
14515		"projectId": c.projectId,
14516		"location":  c.location,
14517	})
14518	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14519}
14520
14521// Do executes the "dataflow.projects.locations.sql.validate" call.
14522// Exactly one of *ValidateResponse or error will be non-nil. Any
14523// non-2xx status code is an error. Response headers are in either
14524// *ValidateResponse.ServerResponse.Header or (if a response was
14525// returned at all) in error.(*googleapi.Error).Header. Use
14526// googleapi.IsNotModified to check whether the returned error was
14527// because http.StatusNotModified was returned.
14528func (c *ProjectsLocationsSqlValidateCall) Do(opts ...googleapi.CallOption) (*ValidateResponse, error) {
14529	gensupport.SetOptions(c.urlParams_, opts...)
14530	res, err := c.doRequest("json")
14531	if res != nil && res.StatusCode == http.StatusNotModified {
14532		if res.Body != nil {
14533			res.Body.Close()
14534		}
14535		return nil, &googleapi.Error{
14536			Code:   res.StatusCode,
14537			Header: res.Header,
14538		}
14539	}
14540	if err != nil {
14541		return nil, err
14542	}
14543	defer googleapi.CloseBody(res)
14544	if err := googleapi.CheckResponse(res); err != nil {
14545		return nil, err
14546	}
14547	ret := &ValidateResponse{
14548		ServerResponse: googleapi.ServerResponse{
14549			Header:         res.Header,
14550			HTTPStatusCode: res.StatusCode,
14551		},
14552	}
14553	target := &ret
14554	if err := gensupport.DecodeResponse(target, res); err != nil {
14555		return nil, err
14556	}
14557	return ret, nil
14558	// {
14559	//   "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.",
14560	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/sql:validate",
14561	//   "httpMethod": "GET",
14562	//   "id": "dataflow.projects.locations.sql.validate",
14563	//   "parameterOrder": [
14564	//     "projectId",
14565	//     "location"
14566	//   ],
14567	//   "parameters": {
14568	//     "location": {
14569	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.",
14570	//       "location": "path",
14571	//       "required": true,
14572	//       "type": "string"
14573	//     },
14574	//     "projectId": {
14575	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
14576	//       "location": "path",
14577	//       "required": true,
14578	//       "type": "string"
14579	//     },
14580	//     "query": {
14581	//       "description": "The sql query to validate.",
14582	//       "location": "query",
14583	//       "type": "string"
14584	//     }
14585	//   },
14586	//   "path": "v1b3/projects/{projectId}/locations/{location}/sql:validate",
14587	//   "response": {
14588	//     "$ref": "ValidateResponse"
14589	//   },
14590	//   "scopes": [
14591	//     "https://www.googleapis.com/auth/cloud-platform",
14592	//     "https://www.googleapis.com/auth/userinfo.email"
14593	//   ]
14594	// }
14595
14596}
14597
14598// method id "dataflow.projects.locations.templates.create":
14599
14600type ProjectsLocationsTemplatesCreateCall struct {
14601	s                            *Service
14602	projectId                    string
14603	location                     string
14604	createjobfromtemplaterequest *CreateJobFromTemplateRequest
14605	urlParams_                   gensupport.URLParams
14606	ctx_                         context.Context
14607	header_                      http.Header
14608}
14609
14610// Create: Creates a Cloud Dataflow job from a template.
14611//
14612// - location: The [regional endpoint]
14613//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
14614//   to which to direct the request.
14615// - projectId: The ID of the Cloud Platform project that the job
14616//   belongs to.
14617func (r *ProjectsLocationsTemplatesService) Create(projectId string, location string, createjobfromtemplaterequest *CreateJobFromTemplateRequest) *ProjectsLocationsTemplatesCreateCall {
14618	c := &ProjectsLocationsTemplatesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14619	c.projectId = projectId
14620	c.location = location
14621	c.createjobfromtemplaterequest = createjobfromtemplaterequest
14622	return c
14623}
14624
14625// Fields allows partial responses to be retrieved. See
14626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14627// for more information.
14628func (c *ProjectsLocationsTemplatesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsTemplatesCreateCall {
14629	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14630	return c
14631}
14632
14633// Context sets the context to be used in this call's Do method. Any
14634// pending HTTP request will be aborted if the provided context is
14635// canceled.
14636func (c *ProjectsLocationsTemplatesCreateCall) Context(ctx context.Context) *ProjectsLocationsTemplatesCreateCall {
14637	c.ctx_ = ctx
14638	return c
14639}
14640
14641// Header returns an http.Header that can be modified by the caller to
14642// add HTTP headers to the request.
14643func (c *ProjectsLocationsTemplatesCreateCall) Header() http.Header {
14644	if c.header_ == nil {
14645		c.header_ = make(http.Header)
14646	}
14647	return c.header_
14648}
14649
14650func (c *ProjectsLocationsTemplatesCreateCall) doRequest(alt string) (*http.Response, error) {
14651	reqHeaders := make(http.Header)
14652	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
14653	for k, v := range c.header_ {
14654		reqHeaders[k] = v
14655	}
14656	reqHeaders.Set("User-Agent", c.s.userAgent())
14657	var body io.Reader = nil
14658	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createjobfromtemplaterequest)
14659	if err != nil {
14660		return nil, err
14661	}
14662	reqHeaders.Set("Content-Type", "application/json")
14663	c.urlParams_.Set("alt", alt)
14664	c.urlParams_.Set("prettyPrint", "false")
14665	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/templates")
14666	urls += "?" + c.urlParams_.Encode()
14667	req, err := http.NewRequest("POST", urls, body)
14668	if err != nil {
14669		return nil, err
14670	}
14671	req.Header = reqHeaders
14672	googleapi.Expand(req.URL, map[string]string{
14673		"projectId": c.projectId,
14674		"location":  c.location,
14675	})
14676	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14677}
14678
14679// Do executes the "dataflow.projects.locations.templates.create" call.
14680// Exactly one of *Job or error will be non-nil. Any non-2xx status code
14681// is an error. Response headers are in either
14682// *Job.ServerResponse.Header or (if a response was returned at all) in
14683// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
14684// whether the returned error was because http.StatusNotModified was
14685// returned.
14686func (c *ProjectsLocationsTemplatesCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
14687	gensupport.SetOptions(c.urlParams_, opts...)
14688	res, err := c.doRequest("json")
14689	if res != nil && res.StatusCode == http.StatusNotModified {
14690		if res.Body != nil {
14691			res.Body.Close()
14692		}
14693		return nil, &googleapi.Error{
14694			Code:   res.StatusCode,
14695			Header: res.Header,
14696		}
14697	}
14698	if err != nil {
14699		return nil, err
14700	}
14701	defer googleapi.CloseBody(res)
14702	if err := googleapi.CheckResponse(res); err != nil {
14703		return nil, err
14704	}
14705	ret := &Job{
14706		ServerResponse: googleapi.ServerResponse{
14707			Header:         res.Header,
14708			HTTPStatusCode: res.StatusCode,
14709		},
14710	}
14711	target := &ret
14712	if err := gensupport.DecodeResponse(target, res); err != nil {
14713		return nil, err
14714	}
14715	return ret, nil
14716	// {
14717	//   "description": "Creates a Cloud Dataflow job from a template.",
14718	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates",
14719	//   "httpMethod": "POST",
14720	//   "id": "dataflow.projects.locations.templates.create",
14721	//   "parameterOrder": [
14722	//     "projectId",
14723	//     "location"
14724	//   ],
14725	//   "parameters": {
14726	//     "location": {
14727	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.",
14728	//       "location": "path",
14729	//       "required": true,
14730	//       "type": "string"
14731	//     },
14732	//     "projectId": {
14733	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
14734	//       "location": "path",
14735	//       "required": true,
14736	//       "type": "string"
14737	//     }
14738	//   },
14739	//   "path": "v1b3/projects/{projectId}/locations/{location}/templates",
14740	//   "request": {
14741	//     "$ref": "CreateJobFromTemplateRequest"
14742	//   },
14743	//   "response": {
14744	//     "$ref": "Job"
14745	//   },
14746	//   "scopes": [
14747	//     "https://www.googleapis.com/auth/cloud-platform",
14748	//     "https://www.googleapis.com/auth/compute",
14749	//     "https://www.googleapis.com/auth/compute.readonly",
14750	//     "https://www.googleapis.com/auth/userinfo.email"
14751	//   ]
14752	// }
14753
14754}
14755
14756// method id "dataflow.projects.locations.templates.get":
14757
14758type ProjectsLocationsTemplatesGetCall struct {
14759	s            *Service
14760	projectId    string
14761	location     string
14762	urlParams_   gensupport.URLParams
14763	ifNoneMatch_ string
14764	ctx_         context.Context
14765	header_      http.Header
14766}
14767
14768// Get: Get the template associated with a template.
14769//
14770// - location: The [regional endpoint]
14771//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
14772//   to which to direct the request.
14773// - projectId: The ID of the Cloud Platform project that the job
14774//   belongs to.
14775func (r *ProjectsLocationsTemplatesService) Get(projectId string, location string) *ProjectsLocationsTemplatesGetCall {
14776	c := &ProjectsLocationsTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14777	c.projectId = projectId
14778	c.location = location
14779	return c
14780}
14781
14782// GcsPath sets the optional parameter "gcsPath": Required. A Cloud
14783// Storage path to the template from which to create the job. Must be
14784// valid Cloud Storage URL, beginning with 'gs://'.
14785func (c *ProjectsLocationsTemplatesGetCall) GcsPath(gcsPath string) *ProjectsLocationsTemplatesGetCall {
14786	c.urlParams_.Set("gcsPath", gcsPath)
14787	return c
14788}
14789
14790// View sets the optional parameter "view": The view to retrieve.
14791// Defaults to METADATA_ONLY.
14792//
14793// Possible values:
14794//   "METADATA_ONLY" - Template view that retrieves only the metadata
14795// associated with the template.
14796func (c *ProjectsLocationsTemplatesGetCall) View(view string) *ProjectsLocationsTemplatesGetCall {
14797	c.urlParams_.Set("view", view)
14798	return c
14799}
14800
14801// Fields allows partial responses to be retrieved. See
14802// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14803// for more information.
14804func (c *ProjectsLocationsTemplatesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsTemplatesGetCall {
14805	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14806	return c
14807}
14808
14809// IfNoneMatch sets the optional parameter which makes the operation
14810// fail if the object's ETag matches the given value. This is useful for
14811// getting updates only after the object has changed since the last
14812// request. Use googleapi.IsNotModified to check whether the response
14813// error from Do is the result of In-None-Match.
14814func (c *ProjectsLocationsTemplatesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsTemplatesGetCall {
14815	c.ifNoneMatch_ = entityTag
14816	return c
14817}
14818
14819// Context sets the context to be used in this call's Do method. Any
14820// pending HTTP request will be aborted if the provided context is
14821// canceled.
14822func (c *ProjectsLocationsTemplatesGetCall) Context(ctx context.Context) *ProjectsLocationsTemplatesGetCall {
14823	c.ctx_ = ctx
14824	return c
14825}
14826
14827// Header returns an http.Header that can be modified by the caller to
14828// add HTTP headers to the request.
14829func (c *ProjectsLocationsTemplatesGetCall) Header() http.Header {
14830	if c.header_ == nil {
14831		c.header_ = make(http.Header)
14832	}
14833	return c.header_
14834}
14835
14836func (c *ProjectsLocationsTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
14837	reqHeaders := make(http.Header)
14838	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
14839	for k, v := range c.header_ {
14840		reqHeaders[k] = v
14841	}
14842	reqHeaders.Set("User-Agent", c.s.userAgent())
14843	if c.ifNoneMatch_ != "" {
14844		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14845	}
14846	var body io.Reader = nil
14847	c.urlParams_.Set("alt", alt)
14848	c.urlParams_.Set("prettyPrint", "false")
14849	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/templates:get")
14850	urls += "?" + c.urlParams_.Encode()
14851	req, err := http.NewRequest("GET", urls, body)
14852	if err != nil {
14853		return nil, err
14854	}
14855	req.Header = reqHeaders
14856	googleapi.Expand(req.URL, map[string]string{
14857		"projectId": c.projectId,
14858		"location":  c.location,
14859	})
14860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14861}
14862
14863// Do executes the "dataflow.projects.locations.templates.get" call.
14864// Exactly one of *GetTemplateResponse or error will be non-nil. Any
14865// non-2xx status code is an error. Response headers are in either
14866// *GetTemplateResponse.ServerResponse.Header or (if a response was
14867// returned at all) in error.(*googleapi.Error).Header. Use
14868// googleapi.IsNotModified to check whether the returned error was
14869// because http.StatusNotModified was returned.
14870func (c *ProjectsLocationsTemplatesGetCall) Do(opts ...googleapi.CallOption) (*GetTemplateResponse, error) {
14871	gensupport.SetOptions(c.urlParams_, opts...)
14872	res, err := c.doRequest("json")
14873	if res != nil && res.StatusCode == http.StatusNotModified {
14874		if res.Body != nil {
14875			res.Body.Close()
14876		}
14877		return nil, &googleapi.Error{
14878			Code:   res.StatusCode,
14879			Header: res.Header,
14880		}
14881	}
14882	if err != nil {
14883		return nil, err
14884	}
14885	defer googleapi.CloseBody(res)
14886	if err := googleapi.CheckResponse(res); err != nil {
14887		return nil, err
14888	}
14889	ret := &GetTemplateResponse{
14890		ServerResponse: googleapi.ServerResponse{
14891			Header:         res.Header,
14892			HTTPStatusCode: res.StatusCode,
14893		},
14894	}
14895	target := &ret
14896	if err := gensupport.DecodeResponse(target, res); err != nil {
14897		return nil, err
14898	}
14899	return ret, nil
14900	// {
14901	//   "description": "Get the template associated with a template.",
14902	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates:get",
14903	//   "httpMethod": "GET",
14904	//   "id": "dataflow.projects.locations.templates.get",
14905	//   "parameterOrder": [
14906	//     "projectId",
14907	//     "location"
14908	//   ],
14909	//   "parameters": {
14910	//     "gcsPath": {
14911	//       "description": "Required. A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.",
14912	//       "location": "query",
14913	//       "type": "string"
14914	//     },
14915	//     "location": {
14916	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.",
14917	//       "location": "path",
14918	//       "required": true,
14919	//       "type": "string"
14920	//     },
14921	//     "projectId": {
14922	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
14923	//       "location": "path",
14924	//       "required": true,
14925	//       "type": "string"
14926	//     },
14927	//     "view": {
14928	//       "description": "The view to retrieve. Defaults to METADATA_ONLY.",
14929	//       "enum": [
14930	//         "METADATA_ONLY"
14931	//       ],
14932	//       "enumDescriptions": [
14933	//         "Template view that retrieves only the metadata associated with the template."
14934	//       ],
14935	//       "location": "query",
14936	//       "type": "string"
14937	//     }
14938	//   },
14939	//   "path": "v1b3/projects/{projectId}/locations/{location}/templates:get",
14940	//   "response": {
14941	//     "$ref": "GetTemplateResponse"
14942	//   },
14943	//   "scopes": [
14944	//     "https://www.googleapis.com/auth/cloud-platform",
14945	//     "https://www.googleapis.com/auth/compute",
14946	//     "https://www.googleapis.com/auth/compute.readonly",
14947	//     "https://www.googleapis.com/auth/userinfo.email"
14948	//   ]
14949	// }
14950
14951}
14952
14953// method id "dataflow.projects.locations.templates.launch":
14954
14955type ProjectsLocationsTemplatesLaunchCall struct {
14956	s                        *Service
14957	projectId                string
14958	location                 string
14959	launchtemplateparameters *LaunchTemplateParameters
14960	urlParams_               gensupport.URLParams
14961	ctx_                     context.Context
14962	header_                  http.Header
14963}
14964
14965// Launch: Launch a template.
14966//
14967// - location: The [regional endpoint]
14968//   (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
14969//   to which to direct the request.
14970// - projectId: The ID of the Cloud Platform project that the job
14971//   belongs to.
14972func (r *ProjectsLocationsTemplatesService) Launch(projectId string, location string, launchtemplateparameters *LaunchTemplateParameters) *ProjectsLocationsTemplatesLaunchCall {
14973	c := &ProjectsLocationsTemplatesLaunchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14974	c.projectId = projectId
14975	c.location = location
14976	c.launchtemplateparameters = launchtemplateparameters
14977	return c
14978}
14979
14980// DynamicTemplateGcsPath sets the optional parameter
14981// "dynamicTemplate.gcsPath": Path to dynamic template spec file on
14982// Cloud Storage. The file must be a Json serialized
14983// DynamicTemplateFieSpec object.
14984func (c *ProjectsLocationsTemplatesLaunchCall) DynamicTemplateGcsPath(dynamicTemplateGcsPath string) *ProjectsLocationsTemplatesLaunchCall {
14985	c.urlParams_.Set("dynamicTemplate.gcsPath", dynamicTemplateGcsPath)
14986	return c
14987}
14988
14989// DynamicTemplateStagingLocation sets the optional parameter
14990// "dynamicTemplate.stagingLocation": Cloud Storage path for staging
14991// dependencies. Must be a valid Cloud Storage URL, beginning with
14992// `gs://`.
14993func (c *ProjectsLocationsTemplatesLaunchCall) DynamicTemplateStagingLocation(dynamicTemplateStagingLocation string) *ProjectsLocationsTemplatesLaunchCall {
14994	c.urlParams_.Set("dynamicTemplate.stagingLocation", dynamicTemplateStagingLocation)
14995	return c
14996}
14997
14998// GcsPath sets the optional parameter "gcsPath": A Cloud Storage path
14999// to the template from which to create the job. Must be valid Cloud
15000// Storage URL, beginning with 'gs://'.
15001func (c *ProjectsLocationsTemplatesLaunchCall) GcsPath(gcsPath string) *ProjectsLocationsTemplatesLaunchCall {
15002	c.urlParams_.Set("gcsPath", gcsPath)
15003	return c
15004}
15005
15006// ValidateOnly sets the optional parameter "validateOnly": If true, the
15007// request is validated but not actually executed. Defaults to false.
15008func (c *ProjectsLocationsTemplatesLaunchCall) ValidateOnly(validateOnly bool) *ProjectsLocationsTemplatesLaunchCall {
15009	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
15010	return c
15011}
15012
15013// Fields allows partial responses to be retrieved. See
15014// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15015// for more information.
15016func (c *ProjectsLocationsTemplatesLaunchCall) Fields(s ...googleapi.Field) *ProjectsLocationsTemplatesLaunchCall {
15017	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15018	return c
15019}
15020
15021// Context sets the context to be used in this call's Do method. Any
15022// pending HTTP request will be aborted if the provided context is
15023// canceled.
15024func (c *ProjectsLocationsTemplatesLaunchCall) Context(ctx context.Context) *ProjectsLocationsTemplatesLaunchCall {
15025	c.ctx_ = ctx
15026	return c
15027}
15028
15029// Header returns an http.Header that can be modified by the caller to
15030// add HTTP headers to the request.
15031func (c *ProjectsLocationsTemplatesLaunchCall) Header() http.Header {
15032	if c.header_ == nil {
15033		c.header_ = make(http.Header)
15034	}
15035	return c.header_
15036}
15037
15038func (c *ProjectsLocationsTemplatesLaunchCall) doRequest(alt string) (*http.Response, error) {
15039	reqHeaders := make(http.Header)
15040	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
15041	for k, v := range c.header_ {
15042		reqHeaders[k] = v
15043	}
15044	reqHeaders.Set("User-Agent", c.s.userAgent())
15045	var body io.Reader = nil
15046	body, err := googleapi.WithoutDataWrapper.JSONReader(c.launchtemplateparameters)
15047	if err != nil {
15048		return nil, err
15049	}
15050	reqHeaders.Set("Content-Type", "application/json")
15051	c.urlParams_.Set("alt", alt)
15052	c.urlParams_.Set("prettyPrint", "false")
15053	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/templates:launch")
15054	urls += "?" + c.urlParams_.Encode()
15055	req, err := http.NewRequest("POST", urls, body)
15056	if err != nil {
15057		return nil, err
15058	}
15059	req.Header = reqHeaders
15060	googleapi.Expand(req.URL, map[string]string{
15061		"projectId": c.projectId,
15062		"location":  c.location,
15063	})
15064	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15065}
15066
15067// Do executes the "dataflow.projects.locations.templates.launch" call.
15068// Exactly one of *LaunchTemplateResponse or error will be non-nil. Any
15069// non-2xx status code is an error. Response headers are in either
15070// *LaunchTemplateResponse.ServerResponse.Header or (if a response was
15071// returned at all) in error.(*googleapi.Error).Header. Use
15072// googleapi.IsNotModified to check whether the returned error was
15073// because http.StatusNotModified was returned.
15074func (c *ProjectsLocationsTemplatesLaunchCall) Do(opts ...googleapi.CallOption) (*LaunchTemplateResponse, error) {
15075	gensupport.SetOptions(c.urlParams_, opts...)
15076	res, err := c.doRequest("json")
15077	if res != nil && res.StatusCode == http.StatusNotModified {
15078		if res.Body != nil {
15079			res.Body.Close()
15080		}
15081		return nil, &googleapi.Error{
15082			Code:   res.StatusCode,
15083			Header: res.Header,
15084		}
15085	}
15086	if err != nil {
15087		return nil, err
15088	}
15089	defer googleapi.CloseBody(res)
15090	if err := googleapi.CheckResponse(res); err != nil {
15091		return nil, err
15092	}
15093	ret := &LaunchTemplateResponse{
15094		ServerResponse: googleapi.ServerResponse{
15095			Header:         res.Header,
15096			HTTPStatusCode: res.StatusCode,
15097		},
15098	}
15099	target := &ret
15100	if err := gensupport.DecodeResponse(target, res); err != nil {
15101		return nil, err
15102	}
15103	return ret, nil
15104	// {
15105	//   "description": "Launch a template.",
15106	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates:launch",
15107	//   "httpMethod": "POST",
15108	//   "id": "dataflow.projects.locations.templates.launch",
15109	//   "parameterOrder": [
15110	//     "projectId",
15111	//     "location"
15112	//   ],
15113	//   "parameters": {
15114	//     "dynamicTemplate.gcsPath": {
15115	//       "description": "Path to dynamic template spec file on Cloud Storage. The file must be a Json serialized DynamicTemplateFieSpec object.",
15116	//       "location": "query",
15117	//       "type": "string"
15118	//     },
15119	//     "dynamicTemplate.stagingLocation": {
15120	//       "description": "Cloud Storage path for staging dependencies. Must be a valid Cloud Storage URL, beginning with `gs://`.",
15121	//       "location": "query",
15122	//       "type": "string"
15123	//     },
15124	//     "gcsPath": {
15125	//       "description": "A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.",
15126	//       "location": "query",
15127	//       "type": "string"
15128	//     },
15129	//     "location": {
15130	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.",
15131	//       "location": "path",
15132	//       "required": true,
15133	//       "type": "string"
15134	//     },
15135	//     "projectId": {
15136	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
15137	//       "location": "path",
15138	//       "required": true,
15139	//       "type": "string"
15140	//     },
15141	//     "validateOnly": {
15142	//       "description": "If true, the request is validated but not actually executed. Defaults to false.",
15143	//       "location": "query",
15144	//       "type": "boolean"
15145	//     }
15146	//   },
15147	//   "path": "v1b3/projects/{projectId}/locations/{location}/templates:launch",
15148	//   "request": {
15149	//     "$ref": "LaunchTemplateParameters"
15150	//   },
15151	//   "response": {
15152	//     "$ref": "LaunchTemplateResponse"
15153	//   },
15154	//   "scopes": [
15155	//     "https://www.googleapis.com/auth/cloud-platform",
15156	//     "https://www.googleapis.com/auth/compute",
15157	//     "https://www.googleapis.com/auth/compute.readonly",
15158	//     "https://www.googleapis.com/auth/userinfo.email"
15159	//   ]
15160	// }
15161
15162}
15163
15164// method id "dataflow.projects.snapshots.get":
15165
15166type ProjectsSnapshotsGetCall struct {
15167	s            *Service
15168	projectId    string
15169	snapshotId   string
15170	urlParams_   gensupport.URLParams
15171	ifNoneMatch_ string
15172	ctx_         context.Context
15173	header_      http.Header
15174}
15175
15176// Get: Gets information about a snapshot.
15177//
15178// - projectId: The ID of the Cloud Platform project that the snapshot
15179//   belongs to.
15180// - snapshotId: The ID of the snapshot.
15181func (r *ProjectsSnapshotsService) Get(projectId string, snapshotId string) *ProjectsSnapshotsGetCall {
15182	c := &ProjectsSnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15183	c.projectId = projectId
15184	c.snapshotId = snapshotId
15185	return c
15186}
15187
15188// Location sets the optional parameter "location": The location that
15189// contains this snapshot.
15190func (c *ProjectsSnapshotsGetCall) Location(location string) *ProjectsSnapshotsGetCall {
15191	c.urlParams_.Set("location", location)
15192	return c
15193}
15194
15195// Fields allows partial responses to be retrieved. See
15196// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15197// for more information.
15198func (c *ProjectsSnapshotsGetCall) Fields(s ...googleapi.Field) *ProjectsSnapshotsGetCall {
15199	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15200	return c
15201}
15202
15203// IfNoneMatch sets the optional parameter which makes the operation
15204// fail if the object's ETag matches the given value. This is useful for
15205// getting updates only after the object has changed since the last
15206// request. Use googleapi.IsNotModified to check whether the response
15207// error from Do is the result of In-None-Match.
15208func (c *ProjectsSnapshotsGetCall) IfNoneMatch(entityTag string) *ProjectsSnapshotsGetCall {
15209	c.ifNoneMatch_ = entityTag
15210	return c
15211}
15212
15213// Context sets the context to be used in this call's Do method. Any
15214// pending HTTP request will be aborted if the provided context is
15215// canceled.
15216func (c *ProjectsSnapshotsGetCall) Context(ctx context.Context) *ProjectsSnapshotsGetCall {
15217	c.ctx_ = ctx
15218	return c
15219}
15220
15221// Header returns an http.Header that can be modified by the caller to
15222// add HTTP headers to the request.
15223func (c *ProjectsSnapshotsGetCall) Header() http.Header {
15224	if c.header_ == nil {
15225		c.header_ = make(http.Header)
15226	}
15227	return c.header_
15228}
15229
15230func (c *ProjectsSnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
15231	reqHeaders := make(http.Header)
15232	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
15233	for k, v := range c.header_ {
15234		reqHeaders[k] = v
15235	}
15236	reqHeaders.Set("User-Agent", c.s.userAgent())
15237	if c.ifNoneMatch_ != "" {
15238		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15239	}
15240	var body io.Reader = nil
15241	c.urlParams_.Set("alt", alt)
15242	c.urlParams_.Set("prettyPrint", "false")
15243	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/snapshots/{snapshotId}")
15244	urls += "?" + c.urlParams_.Encode()
15245	req, err := http.NewRequest("GET", urls, body)
15246	if err != nil {
15247		return nil, err
15248	}
15249	req.Header = reqHeaders
15250	googleapi.Expand(req.URL, map[string]string{
15251		"projectId":  c.projectId,
15252		"snapshotId": c.snapshotId,
15253	})
15254	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15255}
15256
15257// Do executes the "dataflow.projects.snapshots.get" call.
15258// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
15259// code is an error. Response headers are in either
15260// *Snapshot.ServerResponse.Header or (if a response was returned at
15261// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15262// to check whether the returned error was because
15263// http.StatusNotModified was returned.
15264func (c *ProjectsSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
15265	gensupport.SetOptions(c.urlParams_, opts...)
15266	res, err := c.doRequest("json")
15267	if res != nil && res.StatusCode == http.StatusNotModified {
15268		if res.Body != nil {
15269			res.Body.Close()
15270		}
15271		return nil, &googleapi.Error{
15272			Code:   res.StatusCode,
15273			Header: res.Header,
15274		}
15275	}
15276	if err != nil {
15277		return nil, err
15278	}
15279	defer googleapi.CloseBody(res)
15280	if err := googleapi.CheckResponse(res); err != nil {
15281		return nil, err
15282	}
15283	ret := &Snapshot{
15284		ServerResponse: googleapi.ServerResponse{
15285			Header:         res.Header,
15286			HTTPStatusCode: res.StatusCode,
15287		},
15288	}
15289	target := &ret
15290	if err := gensupport.DecodeResponse(target, res); err != nil {
15291		return nil, err
15292	}
15293	return ret, nil
15294	// {
15295	//   "description": "Gets information about a snapshot.",
15296	//   "flatPath": "v1b3/projects/{projectId}/snapshots/{snapshotId}",
15297	//   "httpMethod": "GET",
15298	//   "id": "dataflow.projects.snapshots.get",
15299	//   "parameterOrder": [
15300	//     "projectId",
15301	//     "snapshotId"
15302	//   ],
15303	//   "parameters": {
15304	//     "location": {
15305	//       "description": "The location that contains this snapshot.",
15306	//       "location": "query",
15307	//       "type": "string"
15308	//     },
15309	//     "projectId": {
15310	//       "description": "The ID of the Cloud Platform project that the snapshot belongs to.",
15311	//       "location": "path",
15312	//       "required": true,
15313	//       "type": "string"
15314	//     },
15315	//     "snapshotId": {
15316	//       "description": "The ID of the snapshot.",
15317	//       "location": "path",
15318	//       "required": true,
15319	//       "type": "string"
15320	//     }
15321	//   },
15322	//   "path": "v1b3/projects/{projectId}/snapshots/{snapshotId}",
15323	//   "response": {
15324	//     "$ref": "Snapshot"
15325	//   },
15326	//   "scopes": [
15327	//     "https://www.googleapis.com/auth/cloud-platform",
15328	//     "https://www.googleapis.com/auth/compute",
15329	//     "https://www.googleapis.com/auth/compute.readonly",
15330	//     "https://www.googleapis.com/auth/userinfo.email"
15331	//   ]
15332	// }
15333
15334}
15335
15336// method id "dataflow.projects.snapshots.list":
15337
15338type ProjectsSnapshotsListCall struct {
15339	s            *Service
15340	projectId    string
15341	urlParams_   gensupport.URLParams
15342	ifNoneMatch_ string
15343	ctx_         context.Context
15344	header_      http.Header
15345}
15346
15347// List: Lists snapshots.
15348//
15349// - projectId: The project ID to list snapshots for.
15350func (r *ProjectsSnapshotsService) List(projectId string) *ProjectsSnapshotsListCall {
15351	c := &ProjectsSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15352	c.projectId = projectId
15353	return c
15354}
15355
15356// JobId sets the optional parameter "jobId": If specified, list
15357// snapshots created from this job.
15358func (c *ProjectsSnapshotsListCall) JobId(jobId string) *ProjectsSnapshotsListCall {
15359	c.urlParams_.Set("jobId", jobId)
15360	return c
15361}
15362
15363// Location sets the optional parameter "location": The location to list
15364// snapshots in.
15365func (c *ProjectsSnapshotsListCall) Location(location string) *ProjectsSnapshotsListCall {
15366	c.urlParams_.Set("location", location)
15367	return c
15368}
15369
15370// Fields allows partial responses to be retrieved. See
15371// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15372// for more information.
15373func (c *ProjectsSnapshotsListCall) Fields(s ...googleapi.Field) *ProjectsSnapshotsListCall {
15374	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15375	return c
15376}
15377
15378// IfNoneMatch sets the optional parameter which makes the operation
15379// fail if the object's ETag matches the given value. This is useful for
15380// getting updates only after the object has changed since the last
15381// request. Use googleapi.IsNotModified to check whether the response
15382// error from Do is the result of In-None-Match.
15383func (c *ProjectsSnapshotsListCall) IfNoneMatch(entityTag string) *ProjectsSnapshotsListCall {
15384	c.ifNoneMatch_ = entityTag
15385	return c
15386}
15387
15388// Context sets the context to be used in this call's Do method. Any
15389// pending HTTP request will be aborted if the provided context is
15390// canceled.
15391func (c *ProjectsSnapshotsListCall) Context(ctx context.Context) *ProjectsSnapshotsListCall {
15392	c.ctx_ = ctx
15393	return c
15394}
15395
15396// Header returns an http.Header that can be modified by the caller to
15397// add HTTP headers to the request.
15398func (c *ProjectsSnapshotsListCall) Header() http.Header {
15399	if c.header_ == nil {
15400		c.header_ = make(http.Header)
15401	}
15402	return c.header_
15403}
15404
15405func (c *ProjectsSnapshotsListCall) doRequest(alt string) (*http.Response, error) {
15406	reqHeaders := make(http.Header)
15407	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
15408	for k, v := range c.header_ {
15409		reqHeaders[k] = v
15410	}
15411	reqHeaders.Set("User-Agent", c.s.userAgent())
15412	if c.ifNoneMatch_ != "" {
15413		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15414	}
15415	var body io.Reader = nil
15416	c.urlParams_.Set("alt", alt)
15417	c.urlParams_.Set("prettyPrint", "false")
15418	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/snapshots")
15419	urls += "?" + c.urlParams_.Encode()
15420	req, err := http.NewRequest("GET", urls, body)
15421	if err != nil {
15422		return nil, err
15423	}
15424	req.Header = reqHeaders
15425	googleapi.Expand(req.URL, map[string]string{
15426		"projectId": c.projectId,
15427	})
15428	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15429}
15430
15431// Do executes the "dataflow.projects.snapshots.list" call.
15432// Exactly one of *ListSnapshotsResponse or error will be non-nil. Any
15433// non-2xx status code is an error. Response headers are in either
15434// *ListSnapshotsResponse.ServerResponse.Header or (if a response was
15435// returned at all) in error.(*googleapi.Error).Header. Use
15436// googleapi.IsNotModified to check whether the returned error was
15437// because http.StatusNotModified was returned.
15438func (c *ProjectsSnapshotsListCall) Do(opts ...googleapi.CallOption) (*ListSnapshotsResponse, error) {
15439	gensupport.SetOptions(c.urlParams_, opts...)
15440	res, err := c.doRequest("json")
15441	if res != nil && res.StatusCode == http.StatusNotModified {
15442		if res.Body != nil {
15443			res.Body.Close()
15444		}
15445		return nil, &googleapi.Error{
15446			Code:   res.StatusCode,
15447			Header: res.Header,
15448		}
15449	}
15450	if err != nil {
15451		return nil, err
15452	}
15453	defer googleapi.CloseBody(res)
15454	if err := googleapi.CheckResponse(res); err != nil {
15455		return nil, err
15456	}
15457	ret := &ListSnapshotsResponse{
15458		ServerResponse: googleapi.ServerResponse{
15459			Header:         res.Header,
15460			HTTPStatusCode: res.StatusCode,
15461		},
15462	}
15463	target := &ret
15464	if err := gensupport.DecodeResponse(target, res); err != nil {
15465		return nil, err
15466	}
15467	return ret, nil
15468	// {
15469	//   "description": "Lists snapshots.",
15470	//   "flatPath": "v1b3/projects/{projectId}/snapshots",
15471	//   "httpMethod": "GET",
15472	//   "id": "dataflow.projects.snapshots.list",
15473	//   "parameterOrder": [
15474	//     "projectId"
15475	//   ],
15476	//   "parameters": {
15477	//     "jobId": {
15478	//       "description": "If specified, list snapshots created from this job.",
15479	//       "location": "query",
15480	//       "type": "string"
15481	//     },
15482	//     "location": {
15483	//       "description": "The location to list snapshots in.",
15484	//       "location": "query",
15485	//       "type": "string"
15486	//     },
15487	//     "projectId": {
15488	//       "description": "The project ID to list snapshots for.",
15489	//       "location": "path",
15490	//       "required": true,
15491	//       "type": "string"
15492	//     }
15493	//   },
15494	//   "path": "v1b3/projects/{projectId}/snapshots",
15495	//   "response": {
15496	//     "$ref": "ListSnapshotsResponse"
15497	//   },
15498	//   "scopes": [
15499	//     "https://www.googleapis.com/auth/cloud-platform",
15500	//     "https://www.googleapis.com/auth/compute",
15501	//     "https://www.googleapis.com/auth/compute.readonly",
15502	//     "https://www.googleapis.com/auth/userinfo.email"
15503	//   ]
15504	// }
15505
15506}
15507
15508// method id "dataflow.projects.templates.create":
15509
15510type ProjectsTemplatesCreateCall struct {
15511	s                            *Service
15512	projectId                    string
15513	createjobfromtemplaterequest *CreateJobFromTemplateRequest
15514	urlParams_                   gensupport.URLParams
15515	ctx_                         context.Context
15516	header_                      http.Header
15517}
15518
15519// Create: Creates a Cloud Dataflow job from a template.
15520//
15521// - projectId: The ID of the Cloud Platform project that the job
15522//   belongs to.
15523func (r *ProjectsTemplatesService) Create(projectId string, createjobfromtemplaterequest *CreateJobFromTemplateRequest) *ProjectsTemplatesCreateCall {
15524	c := &ProjectsTemplatesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15525	c.projectId = projectId
15526	c.createjobfromtemplaterequest = createjobfromtemplaterequest
15527	return c
15528}
15529
15530// Fields allows partial responses to be retrieved. See
15531// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15532// for more information.
15533func (c *ProjectsTemplatesCreateCall) Fields(s ...googleapi.Field) *ProjectsTemplatesCreateCall {
15534	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15535	return c
15536}
15537
15538// Context sets the context to be used in this call's Do method. Any
15539// pending HTTP request will be aborted if the provided context is
15540// canceled.
15541func (c *ProjectsTemplatesCreateCall) Context(ctx context.Context) *ProjectsTemplatesCreateCall {
15542	c.ctx_ = ctx
15543	return c
15544}
15545
15546// Header returns an http.Header that can be modified by the caller to
15547// add HTTP headers to the request.
15548func (c *ProjectsTemplatesCreateCall) Header() http.Header {
15549	if c.header_ == nil {
15550		c.header_ = make(http.Header)
15551	}
15552	return c.header_
15553}
15554
15555func (c *ProjectsTemplatesCreateCall) doRequest(alt string) (*http.Response, error) {
15556	reqHeaders := make(http.Header)
15557	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
15558	for k, v := range c.header_ {
15559		reqHeaders[k] = v
15560	}
15561	reqHeaders.Set("User-Agent", c.s.userAgent())
15562	var body io.Reader = nil
15563	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createjobfromtemplaterequest)
15564	if err != nil {
15565		return nil, err
15566	}
15567	reqHeaders.Set("Content-Type", "application/json")
15568	c.urlParams_.Set("alt", alt)
15569	c.urlParams_.Set("prettyPrint", "false")
15570	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/templates")
15571	urls += "?" + c.urlParams_.Encode()
15572	req, err := http.NewRequest("POST", urls, body)
15573	if err != nil {
15574		return nil, err
15575	}
15576	req.Header = reqHeaders
15577	googleapi.Expand(req.URL, map[string]string{
15578		"projectId": c.projectId,
15579	})
15580	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15581}
15582
15583// Do executes the "dataflow.projects.templates.create" call.
15584// Exactly one of *Job or error will be non-nil. Any non-2xx status code
15585// is an error. Response headers are in either
15586// *Job.ServerResponse.Header or (if a response was returned at all) in
15587// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
15588// whether the returned error was because http.StatusNotModified was
15589// returned.
15590func (c *ProjectsTemplatesCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
15591	gensupport.SetOptions(c.urlParams_, opts...)
15592	res, err := c.doRequest("json")
15593	if res != nil && res.StatusCode == http.StatusNotModified {
15594		if res.Body != nil {
15595			res.Body.Close()
15596		}
15597		return nil, &googleapi.Error{
15598			Code:   res.StatusCode,
15599			Header: res.Header,
15600		}
15601	}
15602	if err != nil {
15603		return nil, err
15604	}
15605	defer googleapi.CloseBody(res)
15606	if err := googleapi.CheckResponse(res); err != nil {
15607		return nil, err
15608	}
15609	ret := &Job{
15610		ServerResponse: googleapi.ServerResponse{
15611			Header:         res.Header,
15612			HTTPStatusCode: res.StatusCode,
15613		},
15614	}
15615	target := &ret
15616	if err := gensupport.DecodeResponse(target, res); err != nil {
15617		return nil, err
15618	}
15619	return ret, nil
15620	// {
15621	//   "description": "Creates a Cloud Dataflow job from a template.",
15622	//   "flatPath": "v1b3/projects/{projectId}/templates",
15623	//   "httpMethod": "POST",
15624	//   "id": "dataflow.projects.templates.create",
15625	//   "parameterOrder": [
15626	//     "projectId"
15627	//   ],
15628	//   "parameters": {
15629	//     "projectId": {
15630	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
15631	//       "location": "path",
15632	//       "required": true,
15633	//       "type": "string"
15634	//     }
15635	//   },
15636	//   "path": "v1b3/projects/{projectId}/templates",
15637	//   "request": {
15638	//     "$ref": "CreateJobFromTemplateRequest"
15639	//   },
15640	//   "response": {
15641	//     "$ref": "Job"
15642	//   },
15643	//   "scopes": [
15644	//     "https://www.googleapis.com/auth/cloud-platform",
15645	//     "https://www.googleapis.com/auth/compute",
15646	//     "https://www.googleapis.com/auth/compute.readonly",
15647	//     "https://www.googleapis.com/auth/userinfo.email"
15648	//   ]
15649	// }
15650
15651}
15652
15653// method id "dataflow.projects.templates.get":
15654
15655type ProjectsTemplatesGetCall struct {
15656	s            *Service
15657	projectId    string
15658	urlParams_   gensupport.URLParams
15659	ifNoneMatch_ string
15660	ctx_         context.Context
15661	header_      http.Header
15662}
15663
15664// Get: Get the template associated with a template.
15665//
15666// - projectId: The ID of the Cloud Platform project that the job
15667//   belongs to.
15668func (r *ProjectsTemplatesService) Get(projectId string) *ProjectsTemplatesGetCall {
15669	c := &ProjectsTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15670	c.projectId = projectId
15671	return c
15672}
15673
15674// GcsPath sets the optional parameter "gcsPath": Required. A Cloud
15675// Storage path to the template from which to create the job. Must be
15676// valid Cloud Storage URL, beginning with 'gs://'.
15677func (c *ProjectsTemplatesGetCall) GcsPath(gcsPath string) *ProjectsTemplatesGetCall {
15678	c.urlParams_.Set("gcsPath", gcsPath)
15679	return c
15680}
15681
15682// Location sets the optional parameter "location": The [regional
15683// endpoint]
15684// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
15685// to which to direct the request.
15686func (c *ProjectsTemplatesGetCall) Location(location string) *ProjectsTemplatesGetCall {
15687	c.urlParams_.Set("location", location)
15688	return c
15689}
15690
15691// View sets the optional parameter "view": The view to retrieve.
15692// Defaults to METADATA_ONLY.
15693//
15694// Possible values:
15695//   "METADATA_ONLY" - Template view that retrieves only the metadata
15696// associated with the template.
15697func (c *ProjectsTemplatesGetCall) View(view string) *ProjectsTemplatesGetCall {
15698	c.urlParams_.Set("view", view)
15699	return c
15700}
15701
15702// Fields allows partial responses to be retrieved. See
15703// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15704// for more information.
15705func (c *ProjectsTemplatesGetCall) Fields(s ...googleapi.Field) *ProjectsTemplatesGetCall {
15706	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15707	return c
15708}
15709
15710// IfNoneMatch sets the optional parameter which makes the operation
15711// fail if the object's ETag matches the given value. This is useful for
15712// getting updates only after the object has changed since the last
15713// request. Use googleapi.IsNotModified to check whether the response
15714// error from Do is the result of In-None-Match.
15715func (c *ProjectsTemplatesGetCall) IfNoneMatch(entityTag string) *ProjectsTemplatesGetCall {
15716	c.ifNoneMatch_ = entityTag
15717	return c
15718}
15719
15720// Context sets the context to be used in this call's Do method. Any
15721// pending HTTP request will be aborted if the provided context is
15722// canceled.
15723func (c *ProjectsTemplatesGetCall) Context(ctx context.Context) *ProjectsTemplatesGetCall {
15724	c.ctx_ = ctx
15725	return c
15726}
15727
15728// Header returns an http.Header that can be modified by the caller to
15729// add HTTP headers to the request.
15730func (c *ProjectsTemplatesGetCall) Header() http.Header {
15731	if c.header_ == nil {
15732		c.header_ = make(http.Header)
15733	}
15734	return c.header_
15735}
15736
15737func (c *ProjectsTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
15738	reqHeaders := make(http.Header)
15739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
15740	for k, v := range c.header_ {
15741		reqHeaders[k] = v
15742	}
15743	reqHeaders.Set("User-Agent", c.s.userAgent())
15744	if c.ifNoneMatch_ != "" {
15745		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15746	}
15747	var body io.Reader = nil
15748	c.urlParams_.Set("alt", alt)
15749	c.urlParams_.Set("prettyPrint", "false")
15750	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/templates:get")
15751	urls += "?" + c.urlParams_.Encode()
15752	req, err := http.NewRequest("GET", urls, body)
15753	if err != nil {
15754		return nil, err
15755	}
15756	req.Header = reqHeaders
15757	googleapi.Expand(req.URL, map[string]string{
15758		"projectId": c.projectId,
15759	})
15760	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15761}
15762
15763// Do executes the "dataflow.projects.templates.get" call.
15764// Exactly one of *GetTemplateResponse or error will be non-nil. Any
15765// non-2xx status code is an error. Response headers are in either
15766// *GetTemplateResponse.ServerResponse.Header or (if a response was
15767// returned at all) in error.(*googleapi.Error).Header. Use
15768// googleapi.IsNotModified to check whether the returned error was
15769// because http.StatusNotModified was returned.
15770func (c *ProjectsTemplatesGetCall) Do(opts ...googleapi.CallOption) (*GetTemplateResponse, error) {
15771	gensupport.SetOptions(c.urlParams_, opts...)
15772	res, err := c.doRequest("json")
15773	if res != nil && res.StatusCode == http.StatusNotModified {
15774		if res.Body != nil {
15775			res.Body.Close()
15776		}
15777		return nil, &googleapi.Error{
15778			Code:   res.StatusCode,
15779			Header: res.Header,
15780		}
15781	}
15782	if err != nil {
15783		return nil, err
15784	}
15785	defer googleapi.CloseBody(res)
15786	if err := googleapi.CheckResponse(res); err != nil {
15787		return nil, err
15788	}
15789	ret := &GetTemplateResponse{
15790		ServerResponse: googleapi.ServerResponse{
15791			Header:         res.Header,
15792			HTTPStatusCode: res.StatusCode,
15793		},
15794	}
15795	target := &ret
15796	if err := gensupport.DecodeResponse(target, res); err != nil {
15797		return nil, err
15798	}
15799	return ret, nil
15800	// {
15801	//   "description": "Get the template associated with a template.",
15802	//   "flatPath": "v1b3/projects/{projectId}/templates:get",
15803	//   "httpMethod": "GET",
15804	//   "id": "dataflow.projects.templates.get",
15805	//   "parameterOrder": [
15806	//     "projectId"
15807	//   ],
15808	//   "parameters": {
15809	//     "gcsPath": {
15810	//       "description": "Required. A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.",
15811	//       "location": "query",
15812	//       "type": "string"
15813	//     },
15814	//     "location": {
15815	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.",
15816	//       "location": "query",
15817	//       "type": "string"
15818	//     },
15819	//     "projectId": {
15820	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
15821	//       "location": "path",
15822	//       "required": true,
15823	//       "type": "string"
15824	//     },
15825	//     "view": {
15826	//       "description": "The view to retrieve. Defaults to METADATA_ONLY.",
15827	//       "enum": [
15828	//         "METADATA_ONLY"
15829	//       ],
15830	//       "enumDescriptions": [
15831	//         "Template view that retrieves only the metadata associated with the template."
15832	//       ],
15833	//       "location": "query",
15834	//       "type": "string"
15835	//     }
15836	//   },
15837	//   "path": "v1b3/projects/{projectId}/templates:get",
15838	//   "response": {
15839	//     "$ref": "GetTemplateResponse"
15840	//   },
15841	//   "scopes": [
15842	//     "https://www.googleapis.com/auth/cloud-platform",
15843	//     "https://www.googleapis.com/auth/compute",
15844	//     "https://www.googleapis.com/auth/compute.readonly",
15845	//     "https://www.googleapis.com/auth/userinfo.email"
15846	//   ]
15847	// }
15848
15849}
15850
15851// method id "dataflow.projects.templates.launch":
15852
15853type ProjectsTemplatesLaunchCall struct {
15854	s                        *Service
15855	projectId                string
15856	launchtemplateparameters *LaunchTemplateParameters
15857	urlParams_               gensupport.URLParams
15858	ctx_                     context.Context
15859	header_                  http.Header
15860}
15861
15862// Launch: Launch a template.
15863//
15864// - projectId: The ID of the Cloud Platform project that the job
15865//   belongs to.
15866func (r *ProjectsTemplatesService) Launch(projectId string, launchtemplateparameters *LaunchTemplateParameters) *ProjectsTemplatesLaunchCall {
15867	c := &ProjectsTemplatesLaunchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15868	c.projectId = projectId
15869	c.launchtemplateparameters = launchtemplateparameters
15870	return c
15871}
15872
15873// DynamicTemplateGcsPath sets the optional parameter
15874// "dynamicTemplate.gcsPath": Path to dynamic template spec file on
15875// Cloud Storage. The file must be a Json serialized
15876// DynamicTemplateFieSpec object.
15877func (c *ProjectsTemplatesLaunchCall) DynamicTemplateGcsPath(dynamicTemplateGcsPath string) *ProjectsTemplatesLaunchCall {
15878	c.urlParams_.Set("dynamicTemplate.gcsPath", dynamicTemplateGcsPath)
15879	return c
15880}
15881
15882// DynamicTemplateStagingLocation sets the optional parameter
15883// "dynamicTemplate.stagingLocation": Cloud Storage path for staging
15884// dependencies. Must be a valid Cloud Storage URL, beginning with
15885// `gs://`.
15886func (c *ProjectsTemplatesLaunchCall) DynamicTemplateStagingLocation(dynamicTemplateStagingLocation string) *ProjectsTemplatesLaunchCall {
15887	c.urlParams_.Set("dynamicTemplate.stagingLocation", dynamicTemplateStagingLocation)
15888	return c
15889}
15890
15891// GcsPath sets the optional parameter "gcsPath": A Cloud Storage path
15892// to the template from which to create the job. Must be valid Cloud
15893// Storage URL, beginning with 'gs://'.
15894func (c *ProjectsTemplatesLaunchCall) GcsPath(gcsPath string) *ProjectsTemplatesLaunchCall {
15895	c.urlParams_.Set("gcsPath", gcsPath)
15896	return c
15897}
15898
15899// Location sets the optional parameter "location": The [regional
15900// endpoint]
15901// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
15902// to which to direct the request.
15903func (c *ProjectsTemplatesLaunchCall) Location(location string) *ProjectsTemplatesLaunchCall {
15904	c.urlParams_.Set("location", location)
15905	return c
15906}
15907
15908// ValidateOnly sets the optional parameter "validateOnly": If true, the
15909// request is validated but not actually executed. Defaults to false.
15910func (c *ProjectsTemplatesLaunchCall) ValidateOnly(validateOnly bool) *ProjectsTemplatesLaunchCall {
15911	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
15912	return c
15913}
15914
15915// Fields allows partial responses to be retrieved. See
15916// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15917// for more information.
15918func (c *ProjectsTemplatesLaunchCall) Fields(s ...googleapi.Field) *ProjectsTemplatesLaunchCall {
15919	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15920	return c
15921}
15922
15923// Context sets the context to be used in this call's Do method. Any
15924// pending HTTP request will be aborted if the provided context is
15925// canceled.
15926func (c *ProjectsTemplatesLaunchCall) Context(ctx context.Context) *ProjectsTemplatesLaunchCall {
15927	c.ctx_ = ctx
15928	return c
15929}
15930
15931// Header returns an http.Header that can be modified by the caller to
15932// add HTTP headers to the request.
15933func (c *ProjectsTemplatesLaunchCall) Header() http.Header {
15934	if c.header_ == nil {
15935		c.header_ = make(http.Header)
15936	}
15937	return c.header_
15938}
15939
15940func (c *ProjectsTemplatesLaunchCall) doRequest(alt string) (*http.Response, error) {
15941	reqHeaders := make(http.Header)
15942	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
15943	for k, v := range c.header_ {
15944		reqHeaders[k] = v
15945	}
15946	reqHeaders.Set("User-Agent", c.s.userAgent())
15947	var body io.Reader = nil
15948	body, err := googleapi.WithoutDataWrapper.JSONReader(c.launchtemplateparameters)
15949	if err != nil {
15950		return nil, err
15951	}
15952	reqHeaders.Set("Content-Type", "application/json")
15953	c.urlParams_.Set("alt", alt)
15954	c.urlParams_.Set("prettyPrint", "false")
15955	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/templates:launch")
15956	urls += "?" + c.urlParams_.Encode()
15957	req, err := http.NewRequest("POST", urls, body)
15958	if err != nil {
15959		return nil, err
15960	}
15961	req.Header = reqHeaders
15962	googleapi.Expand(req.URL, map[string]string{
15963		"projectId": c.projectId,
15964	})
15965	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15966}
15967
15968// Do executes the "dataflow.projects.templates.launch" call.
15969// Exactly one of *LaunchTemplateResponse or error will be non-nil. Any
15970// non-2xx status code is an error. Response headers are in either
15971// *LaunchTemplateResponse.ServerResponse.Header or (if a response was
15972// returned at all) in error.(*googleapi.Error).Header. Use
15973// googleapi.IsNotModified to check whether the returned error was
15974// because http.StatusNotModified was returned.
15975func (c *ProjectsTemplatesLaunchCall) Do(opts ...googleapi.CallOption) (*LaunchTemplateResponse, error) {
15976	gensupport.SetOptions(c.urlParams_, opts...)
15977	res, err := c.doRequest("json")
15978	if res != nil && res.StatusCode == http.StatusNotModified {
15979		if res.Body != nil {
15980			res.Body.Close()
15981		}
15982		return nil, &googleapi.Error{
15983			Code:   res.StatusCode,
15984			Header: res.Header,
15985		}
15986	}
15987	if err != nil {
15988		return nil, err
15989	}
15990	defer googleapi.CloseBody(res)
15991	if err := googleapi.CheckResponse(res); err != nil {
15992		return nil, err
15993	}
15994	ret := &LaunchTemplateResponse{
15995		ServerResponse: googleapi.ServerResponse{
15996			Header:         res.Header,
15997			HTTPStatusCode: res.StatusCode,
15998		},
15999	}
16000	target := &ret
16001	if err := gensupport.DecodeResponse(target, res); err != nil {
16002		return nil, err
16003	}
16004	return ret, nil
16005	// {
16006	//   "description": "Launch a template.",
16007	//   "flatPath": "v1b3/projects/{projectId}/templates:launch",
16008	//   "httpMethod": "POST",
16009	//   "id": "dataflow.projects.templates.launch",
16010	//   "parameterOrder": [
16011	//     "projectId"
16012	//   ],
16013	//   "parameters": {
16014	//     "dynamicTemplate.gcsPath": {
16015	//       "description": "Path to dynamic template spec file on Cloud Storage. The file must be a Json serialized DynamicTemplateFieSpec object.",
16016	//       "location": "query",
16017	//       "type": "string"
16018	//     },
16019	//     "dynamicTemplate.stagingLocation": {
16020	//       "description": "Cloud Storage path for staging dependencies. Must be a valid Cloud Storage URL, beginning with `gs://`.",
16021	//       "location": "query",
16022	//       "type": "string"
16023	//     },
16024	//     "gcsPath": {
16025	//       "description": "A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.",
16026	//       "location": "query",
16027	//       "type": "string"
16028	//     },
16029	//     "location": {
16030	//       "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.",
16031	//       "location": "query",
16032	//       "type": "string"
16033	//     },
16034	//     "projectId": {
16035	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
16036	//       "location": "path",
16037	//       "required": true,
16038	//       "type": "string"
16039	//     },
16040	//     "validateOnly": {
16041	//       "description": "If true, the request is validated but not actually executed. Defaults to false.",
16042	//       "location": "query",
16043	//       "type": "boolean"
16044	//     }
16045	//   },
16046	//   "path": "v1b3/projects/{projectId}/templates:launch",
16047	//   "request": {
16048	//     "$ref": "LaunchTemplateParameters"
16049	//   },
16050	//   "response": {
16051	//     "$ref": "LaunchTemplateResponse"
16052	//   },
16053	//   "scopes": [
16054	//     "https://www.googleapis.com/auth/cloud-platform",
16055	//     "https://www.googleapis.com/auth/compute",
16056	//     "https://www.googleapis.com/auth/compute.readonly",
16057	//     "https://www.googleapis.com/auth/userinfo.email"
16058	//   ]
16059	// }
16060
16061}
16062