1// Copyright 2019 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package 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	htransport "google.golang.org/api/transport/http"
60)
61
62// Always reference these packages, just in case the auto-generated code
63// below doesn't.
64var _ = bytes.NewBuffer
65var _ = strconv.Itoa
66var _ = fmt.Sprintf
67var _ = json.NewDecoder
68var _ = io.Copy
69var _ = url.Parse
70var _ = gensupport.MarshalJSON
71var _ = googleapi.Version
72var _ = errors.New
73var _ = strings.Replace
74var _ = context.Canceled
75
76const apiId = "dataflow:v1b3"
77const apiName = "dataflow"
78const apiVersion = "v1b3"
79const basePath = "https://dataflow.googleapis.com/"
80
81// OAuth2 scopes used by this API.
82const (
83	// View and manage your data across Google Cloud Platform services
84	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
85
86	// View and manage your Google Compute Engine resources
87	ComputeScope = "https://www.googleapis.com/auth/compute"
88
89	// View your Google Compute Engine resources
90	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
91
92	// View your email address
93	UserinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email"
94)
95
96// NewService creates a new Service.
97func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
98	scopesOption := option.WithScopes(
99		"https://www.googleapis.com/auth/cloud-platform",
100		"https://www.googleapis.com/auth/compute",
101		"https://www.googleapis.com/auth/compute.readonly",
102		"https://www.googleapis.com/auth/userinfo.email",
103	)
104	// NOTE: prepend, so we don't override user-specified scopes.
105	opts = append([]option.ClientOption{scopesOption}, opts...)
106	client, endpoint, err := htransport.NewClient(ctx, opts...)
107	if err != nil {
108		return nil, err
109	}
110	s, err := New(client)
111	if err != nil {
112		return nil, err
113	}
114	if endpoint != "" {
115		s.BasePath = endpoint
116	}
117	return s, nil
118}
119
120// New creates a new Service. It uses the provided http.Client for requests.
121//
122// Deprecated: please use NewService instead.
123// To provide a custom HTTP client, use option.WithHTTPClient.
124// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
125func New(client *http.Client) (*Service, error) {
126	if client == nil {
127		return nil, errors.New("client is nil")
128	}
129	s := &Service{client: client, BasePath: basePath}
130	s.Projects = NewProjectsService(s)
131	return s, nil
132}
133
134type Service struct {
135	client    *http.Client
136	BasePath  string // API endpoint base URL
137	UserAgent string // optional additional User-Agent fragment
138
139	Projects *ProjectsService
140}
141
142func (s *Service) userAgent() string {
143	if s.UserAgent == "" {
144		return googleapi.UserAgent
145	}
146	return googleapi.UserAgent + " " + s.UserAgent
147}
148
149func NewProjectsService(s *Service) *ProjectsService {
150	rs := &ProjectsService{s: s}
151	rs.Jobs = NewProjectsJobsService(s)
152	rs.Locations = NewProjectsLocationsService(s)
153	rs.Templates = NewProjectsTemplatesService(s)
154	return rs
155}
156
157type ProjectsService struct {
158	s *Service
159
160	Jobs *ProjectsJobsService
161
162	Locations *ProjectsLocationsService
163
164	Templates *ProjectsTemplatesService
165}
166
167func NewProjectsJobsService(s *Service) *ProjectsJobsService {
168	rs := &ProjectsJobsService{s: s}
169	rs.Debug = NewProjectsJobsDebugService(s)
170	rs.Messages = NewProjectsJobsMessagesService(s)
171	rs.WorkItems = NewProjectsJobsWorkItemsService(s)
172	return rs
173}
174
175type ProjectsJobsService struct {
176	s *Service
177
178	Debug *ProjectsJobsDebugService
179
180	Messages *ProjectsJobsMessagesService
181
182	WorkItems *ProjectsJobsWorkItemsService
183}
184
185func NewProjectsJobsDebugService(s *Service) *ProjectsJobsDebugService {
186	rs := &ProjectsJobsDebugService{s: s}
187	return rs
188}
189
190type ProjectsJobsDebugService struct {
191	s *Service
192}
193
194func NewProjectsJobsMessagesService(s *Service) *ProjectsJobsMessagesService {
195	rs := &ProjectsJobsMessagesService{s: s}
196	return rs
197}
198
199type ProjectsJobsMessagesService struct {
200	s *Service
201}
202
203func NewProjectsJobsWorkItemsService(s *Service) *ProjectsJobsWorkItemsService {
204	rs := &ProjectsJobsWorkItemsService{s: s}
205	return rs
206}
207
208type ProjectsJobsWorkItemsService struct {
209	s *Service
210}
211
212func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
213	rs := &ProjectsLocationsService{s: s}
214	rs.Jobs = NewProjectsLocationsJobsService(s)
215	rs.Sql = NewProjectsLocationsSqlService(s)
216	rs.Templates = NewProjectsLocationsTemplatesService(s)
217	return rs
218}
219
220type ProjectsLocationsService struct {
221	s *Service
222
223	Jobs *ProjectsLocationsJobsService
224
225	Sql *ProjectsLocationsSqlService
226
227	Templates *ProjectsLocationsTemplatesService
228}
229
230func NewProjectsLocationsJobsService(s *Service) *ProjectsLocationsJobsService {
231	rs := &ProjectsLocationsJobsService{s: s}
232	rs.Debug = NewProjectsLocationsJobsDebugService(s)
233	rs.Messages = NewProjectsLocationsJobsMessagesService(s)
234	rs.WorkItems = NewProjectsLocationsJobsWorkItemsService(s)
235	return rs
236}
237
238type ProjectsLocationsJobsService struct {
239	s *Service
240
241	Debug *ProjectsLocationsJobsDebugService
242
243	Messages *ProjectsLocationsJobsMessagesService
244
245	WorkItems *ProjectsLocationsJobsWorkItemsService
246}
247
248func NewProjectsLocationsJobsDebugService(s *Service) *ProjectsLocationsJobsDebugService {
249	rs := &ProjectsLocationsJobsDebugService{s: s}
250	return rs
251}
252
253type ProjectsLocationsJobsDebugService struct {
254	s *Service
255}
256
257func NewProjectsLocationsJobsMessagesService(s *Service) *ProjectsLocationsJobsMessagesService {
258	rs := &ProjectsLocationsJobsMessagesService{s: s}
259	return rs
260}
261
262type ProjectsLocationsJobsMessagesService struct {
263	s *Service
264}
265
266func NewProjectsLocationsJobsWorkItemsService(s *Service) *ProjectsLocationsJobsWorkItemsService {
267	rs := &ProjectsLocationsJobsWorkItemsService{s: s}
268	return rs
269}
270
271type ProjectsLocationsJobsWorkItemsService struct {
272	s *Service
273}
274
275func NewProjectsLocationsSqlService(s *Service) *ProjectsLocationsSqlService {
276	rs := &ProjectsLocationsSqlService{s: s}
277	return rs
278}
279
280type ProjectsLocationsSqlService struct {
281	s *Service
282}
283
284func NewProjectsLocationsTemplatesService(s *Service) *ProjectsLocationsTemplatesService {
285	rs := &ProjectsLocationsTemplatesService{s: s}
286	return rs
287}
288
289type ProjectsLocationsTemplatesService struct {
290	s *Service
291}
292
293func NewProjectsTemplatesService(s *Service) *ProjectsTemplatesService {
294	rs := &ProjectsTemplatesService{s: s}
295	return rs
296}
297
298type ProjectsTemplatesService struct {
299	s *Service
300}
301
302// ApproximateProgress: Obsolete in favor of ApproximateReportedProgress
303// and ApproximateSplitRequest.
304type ApproximateProgress struct {
305	// PercentComplete: Obsolete.
306	PercentComplete float64 `json:"percentComplete,omitempty"`
307
308	// Position: Obsolete.
309	Position *Position `json:"position,omitempty"`
310
311	// RemainingTime: Obsolete.
312	RemainingTime string `json:"remainingTime,omitempty"`
313
314	// ForceSendFields is a list of field names (e.g. "PercentComplete") to
315	// unconditionally include in API requests. By default, fields with
316	// empty values are omitted from API requests. However, any non-pointer,
317	// non-interface field appearing in ForceSendFields will be sent to the
318	// server regardless of whether the field is empty or not. This may be
319	// used to include empty fields in Patch requests.
320	ForceSendFields []string `json:"-"`
321
322	// NullFields is a list of field names (e.g. "PercentComplete") to
323	// include in API requests with the JSON null value. By default, fields
324	// with empty values are omitted from API requests. However, any field
325	// with an empty value appearing in NullFields will be sent to the
326	// server as null. It is an error if a field in this list has a
327	// non-empty value. This may be used to include null fields in Patch
328	// requests.
329	NullFields []string `json:"-"`
330}
331
332func (s *ApproximateProgress) MarshalJSON() ([]byte, error) {
333	type NoMethod ApproximateProgress
334	raw := NoMethod(*s)
335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
336}
337
338func (s *ApproximateProgress) UnmarshalJSON(data []byte) error {
339	type NoMethod ApproximateProgress
340	var s1 struct {
341		PercentComplete gensupport.JSONFloat64 `json:"percentComplete"`
342		*NoMethod
343	}
344	s1.NoMethod = (*NoMethod)(s)
345	if err := json.Unmarshal(data, &s1); err != nil {
346		return err
347	}
348	s.PercentComplete = float64(s1.PercentComplete)
349	return nil
350}
351
352// ApproximateReportedProgress: A progress measurement of a WorkItem by
353// a worker.
354type ApproximateReportedProgress struct {
355	// ConsumedParallelism: Total amount of parallelism in the portion of
356	// input of this task that has
357	// already been consumed and is no longer active. In the first two
358	// examples
359	// above (see remaining_parallelism), the value should be 29 or
360	// 2
361	// respectively.  The sum of remaining_parallelism and
362	// consumed_parallelism
363	// should equal the total amount of parallelism in this work item.
364	// If
365	// specified, must be finite.
366	ConsumedParallelism *ReportedParallelism `json:"consumedParallelism,omitempty"`
367
368	// FractionConsumed: Completion as fraction of the input consumed, from
369	// 0.0 (beginning, nothing
370	// consumed), to 1.0 (end of the input, entire input consumed).
371	FractionConsumed float64 `json:"fractionConsumed,omitempty"`
372
373	// Position: A Position within the work to represent a progress.
374	Position *Position `json:"position,omitempty"`
375
376	// RemainingParallelism: Total amount of parallelism in the input of
377	// this task that remains,
378	// (i.e. can be delegated to this task and any new tasks via
379	// dynamic
380	// splitting). Always at least 1 for non-finished work items and 0
381	// for
382	// finished.
383	//
384	// "Amount of parallelism" refers to how many non-empty parts of the
385	// input
386	// can be read in parallel. This does not necessarily equal number
387	// of records. An input that can be read in parallel down to
388	// the
389	// individual records is called "perfectly splittable".
390	// An example of non-perfectly parallelizable input is a
391	// block-compressed
392	// file format where a block of records has to be read as a whole,
393	// but different blocks can be read in parallel.
394	//
395	// Examples:
396	// * If we are processing record #30 (starting at 1) out of 50 in a
397	// perfectly
398	//   splittable 50-record input, this value should be 21 (20 remaining +
399	// 1
400	//   current).
401	// * If we are reading through block 3 in a block-compressed file
402	// consisting
403	//   of 5 blocks, this value should be 3 (since blocks 4 and 5 can be
404	//   processed in parallel by new tasks via dynamic splitting and the
405	// current
406	//   task remains processing block 3).
407	// * If we are reading through the last block in a block-compressed
408	// file,
409	//   or reading or processing the last record in a perfectly splittable
410	//   input, this value should be 1, because apart from the current task,
411	// no
412	//   additional remainder can be split off.
413	RemainingParallelism *ReportedParallelism `json:"remainingParallelism,omitempty"`
414
415	// ForceSendFields is a list of field names (e.g. "ConsumedParallelism")
416	// to unconditionally include in API requests. By default, fields with
417	// empty values are omitted from API requests. However, any non-pointer,
418	// non-interface field appearing in ForceSendFields will be sent to the
419	// server regardless of whether the field is empty or not. This may be
420	// used to include empty fields in Patch requests.
421	ForceSendFields []string `json:"-"`
422
423	// NullFields is a list of field names (e.g. "ConsumedParallelism") to
424	// include in API requests with the JSON null value. By default, fields
425	// with empty values are omitted from API requests. However, any field
426	// with an empty value appearing in NullFields will be sent to the
427	// server as null. It is an error if a field in this list has a
428	// non-empty value. This may be used to include null fields in Patch
429	// requests.
430	NullFields []string `json:"-"`
431}
432
433func (s *ApproximateReportedProgress) MarshalJSON() ([]byte, error) {
434	type NoMethod ApproximateReportedProgress
435	raw := NoMethod(*s)
436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
437}
438
439func (s *ApproximateReportedProgress) UnmarshalJSON(data []byte) error {
440	type NoMethod ApproximateReportedProgress
441	var s1 struct {
442		FractionConsumed gensupport.JSONFloat64 `json:"fractionConsumed"`
443		*NoMethod
444	}
445	s1.NoMethod = (*NoMethod)(s)
446	if err := json.Unmarshal(data, &s1); err != nil {
447		return err
448	}
449	s.FractionConsumed = float64(s1.FractionConsumed)
450	return nil
451}
452
453// ApproximateSplitRequest: A suggestion by the service to the worker to
454// dynamically split the WorkItem.
455type ApproximateSplitRequest struct {
456	// FractionConsumed: A fraction at which to split the work item, from
457	// 0.0 (beginning of the
458	// input) to 1.0 (end of the input).
459	FractionConsumed float64 `json:"fractionConsumed,omitempty"`
460
461	// FractionOfRemainder: The fraction of the remainder of work to split
462	// the work item at, from 0.0
463	// (split at the current position) to 1.0 (end of the input).
464	FractionOfRemainder float64 `json:"fractionOfRemainder,omitempty"`
465
466	// Position: A Position at which to split the work item.
467	Position *Position `json:"position,omitempty"`
468
469	// ForceSendFields is a list of field names (e.g. "FractionConsumed") to
470	// unconditionally include in API requests. By default, fields with
471	// empty values are omitted from API requests. However, any non-pointer,
472	// non-interface field appearing in ForceSendFields will be sent to the
473	// server regardless of whether the field is empty or not. This may be
474	// used to include empty fields in Patch requests.
475	ForceSendFields []string `json:"-"`
476
477	// NullFields is a list of field names (e.g. "FractionConsumed") to
478	// include in API requests with the JSON null value. By default, fields
479	// with empty values are omitted from API requests. However, any field
480	// with an empty value appearing in NullFields will be sent to the
481	// server as null. It is an error if a field in this list has a
482	// non-empty value. This may be used to include null fields in Patch
483	// requests.
484	NullFields []string `json:"-"`
485}
486
487func (s *ApproximateSplitRequest) MarshalJSON() ([]byte, error) {
488	type NoMethod ApproximateSplitRequest
489	raw := NoMethod(*s)
490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
491}
492
493func (s *ApproximateSplitRequest) UnmarshalJSON(data []byte) error {
494	type NoMethod ApproximateSplitRequest
495	var s1 struct {
496		FractionConsumed    gensupport.JSONFloat64 `json:"fractionConsumed"`
497		FractionOfRemainder gensupport.JSONFloat64 `json:"fractionOfRemainder"`
498		*NoMethod
499	}
500	s1.NoMethod = (*NoMethod)(s)
501	if err := json.Unmarshal(data, &s1); err != nil {
502		return err
503	}
504	s.FractionConsumed = float64(s1.FractionConsumed)
505	s.FractionOfRemainder = float64(s1.FractionOfRemainder)
506	return nil
507}
508
509// AutoscalingEvent: A structured message reporting an autoscaling
510// decision made by the Dataflow
511// service.
512type AutoscalingEvent struct {
513	// CurrentNumWorkers: The current number of workers the job has.
514	CurrentNumWorkers int64 `json:"currentNumWorkers,omitempty,string"`
515
516	// Description: A message describing why the system decided to adjust
517	// the current
518	// number of workers, why it failed, or why the system decided to
519	// not make any changes to the number of workers.
520	Description *StructuredMessage `json:"description,omitempty"`
521
522	// EventType: The type of autoscaling event to report.
523	//
524	// Possible values:
525	//   "TYPE_UNKNOWN" - Default type for the enum.  Value should never be
526	// returned.
527	//   "TARGET_NUM_WORKERS_CHANGED" - The TARGET_NUM_WORKERS_CHANGED type
528	// should be used when the target
529	// worker pool size has changed at the start of an actuation. An
530	// event
531	// should always be specified as TARGET_NUM_WORKERS_CHANGED if it
532	// reflects
533	// a change in the target_num_workers.
534	//   "CURRENT_NUM_WORKERS_CHANGED" - The CURRENT_NUM_WORKERS_CHANGED
535	// type should be used when actual worker
536	// pool size has been changed, but the target_num_workers has not
537	// changed.
538	//   "ACTUATION_FAILURE" - The ACTUATION_FAILURE type should be used
539	// when we want to report
540	// an error to the user indicating why the current number of workers
541	// in the pool could not be changed.
542	// Displayed in the current status and history widgets.
543	//   "NO_CHANGE" - Used when we want to report to the user a reason why
544	// we are
545	// not currently adjusting the number of workers.
546	// Should specify both target_num_workers, current_num_workers and
547	// a
548	// decision_message.
549	EventType string `json:"eventType,omitempty"`
550
551	// TargetNumWorkers: The target number of workers the worker pool wants
552	// to resize to use.
553	TargetNumWorkers int64 `json:"targetNumWorkers,omitempty,string"`
554
555	// Time: The time this event was emitted to indicate a new target or
556	// current
557	// num_workers value.
558	Time string `json:"time,omitempty"`
559
560	// WorkerPool: A short and friendly name for the worker pool this event
561	// refers to,
562	// populated from the value of PoolStageRelation::user_pool_name.
563	WorkerPool string `json:"workerPool,omitempty"`
564
565	// ForceSendFields is a list of field names (e.g. "CurrentNumWorkers")
566	// to unconditionally include in API requests. By default, fields with
567	// empty values are omitted from API requests. However, any non-pointer,
568	// non-interface field appearing in ForceSendFields will be sent to the
569	// server regardless of whether the field is empty or not. This may be
570	// used to include empty fields in Patch requests.
571	ForceSendFields []string `json:"-"`
572
573	// NullFields is a list of field names (e.g. "CurrentNumWorkers") to
574	// include in API requests with the JSON null value. By default, fields
575	// with empty values are omitted from API requests. However, any field
576	// with an empty value appearing in NullFields will be sent to the
577	// server as null. It is an error if a field in this list has a
578	// non-empty value. This may be used to include null fields in Patch
579	// requests.
580	NullFields []string `json:"-"`
581}
582
583func (s *AutoscalingEvent) MarshalJSON() ([]byte, error) {
584	type NoMethod AutoscalingEvent
585	raw := NoMethod(*s)
586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
587}
588
589// AutoscalingSettings: Settings for WorkerPool autoscaling.
590type AutoscalingSettings struct {
591	// Algorithm: The algorithm to use for autoscaling.
592	//
593	// Possible values:
594	//   "AUTOSCALING_ALGORITHM_UNKNOWN" - The algorithm is unknown, or
595	// unspecified.
596	//   "AUTOSCALING_ALGORITHM_NONE" - Disable autoscaling.
597	//   "AUTOSCALING_ALGORITHM_BASIC" - Increase worker count over time to
598	// reduce job execution time.
599	Algorithm string `json:"algorithm,omitempty"`
600
601	// MaxNumWorkers: The maximum number of workers to cap scaling at.
602	MaxNumWorkers int64 `json:"maxNumWorkers,omitempty"`
603
604	// ForceSendFields is a list of field names (e.g. "Algorithm") to
605	// unconditionally include in API requests. By default, fields with
606	// empty values are omitted from API requests. However, any non-pointer,
607	// non-interface field appearing in ForceSendFields will be sent to the
608	// server regardless of whether the field is empty or not. This may be
609	// used to include empty fields in Patch requests.
610	ForceSendFields []string `json:"-"`
611
612	// NullFields is a list of field names (e.g. "Algorithm") to include in
613	// API requests with the JSON null value. By default, fields with empty
614	// values are omitted from API requests. However, any field with an
615	// empty value appearing in NullFields will be sent to the server as
616	// null. It is an error if a field in this list has a non-empty value.
617	// This may be used to include null fields in Patch requests.
618	NullFields []string `json:"-"`
619}
620
621func (s *AutoscalingSettings) MarshalJSON() ([]byte, error) {
622	type NoMethod AutoscalingSettings
623	raw := NoMethod(*s)
624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
625}
626
627// BigQueryIODetails: Metadata for a BigQuery connector used by the job.
628type BigQueryIODetails struct {
629	// Dataset: Dataset accessed in the connection.
630	Dataset string `json:"dataset,omitempty"`
631
632	// ProjectId: Project accessed in the connection.
633	ProjectId string `json:"projectId,omitempty"`
634
635	// Query: Query used to access data in the connection.
636	Query string `json:"query,omitempty"`
637
638	// Table: Table accessed in the connection.
639	Table string `json:"table,omitempty"`
640
641	// ForceSendFields is a list of field names (e.g. "Dataset") to
642	// unconditionally include in API requests. By default, fields with
643	// empty values are omitted from API requests. However, any non-pointer,
644	// non-interface field appearing in ForceSendFields will be sent to the
645	// server regardless of whether the field is empty or not. This may be
646	// used to include empty fields in Patch requests.
647	ForceSendFields []string `json:"-"`
648
649	// NullFields is a list of field names (e.g. "Dataset") to include in
650	// API requests with the JSON null value. By default, fields with empty
651	// values are omitted from API requests. However, any field with an
652	// empty value appearing in NullFields will be sent to the server as
653	// null. It is an error if a field in this list has a non-empty value.
654	// This may be used to include null fields in Patch requests.
655	NullFields []string `json:"-"`
656}
657
658func (s *BigQueryIODetails) MarshalJSON() ([]byte, error) {
659	type NoMethod BigQueryIODetails
660	raw := NoMethod(*s)
661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
662}
663
664// BigTableIODetails: Metadata for a BigTable connector used by the job.
665type BigTableIODetails struct {
666	// InstanceId: InstanceId accessed in the connection.
667	InstanceId string `json:"instanceId,omitempty"`
668
669	// ProjectId: ProjectId accessed in the connection.
670	ProjectId string `json:"projectId,omitempty"`
671
672	// TableId: TableId accessed in the connection.
673	TableId string `json:"tableId,omitempty"`
674
675	// ForceSendFields is a list of field names (e.g. "InstanceId") to
676	// unconditionally include in API requests. By default, fields with
677	// empty values are omitted from API requests. However, any non-pointer,
678	// non-interface field appearing in ForceSendFields will be sent to the
679	// server regardless of whether the field is empty or not. This may be
680	// used to include empty fields in Patch requests.
681	ForceSendFields []string `json:"-"`
682
683	// NullFields is a list of field names (e.g. "InstanceId") to include in
684	// API requests with the JSON null value. By default, fields with empty
685	// values are omitted from API requests. However, any field with an
686	// empty value appearing in NullFields will be sent to the server as
687	// null. It is an error if a field in this list has a non-empty value.
688	// This may be used to include null fields in Patch requests.
689	NullFields []string `json:"-"`
690}
691
692func (s *BigTableIODetails) MarshalJSON() ([]byte, error) {
693	type NoMethod BigTableIODetails
694	raw := NoMethod(*s)
695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
696}
697
698// CPUTime: Modeled after information exposed by /proc/stat.
699type CPUTime struct {
700	// Rate: Average CPU utilization rate (% non-idle cpu / second) since
701	// previous
702	// sample.
703	Rate float64 `json:"rate,omitempty"`
704
705	// Timestamp: Timestamp of the measurement.
706	Timestamp string `json:"timestamp,omitempty"`
707
708	// TotalMs: Total active CPU time across all cores (ie., non-idle) in
709	// milliseconds
710	// since start-up.
711	TotalMs uint64 `json:"totalMs,omitempty,string"`
712
713	// ForceSendFields is a list of field names (e.g. "Rate") to
714	// unconditionally include in API requests. By default, fields with
715	// empty values are omitted from API requests. However, any non-pointer,
716	// non-interface field appearing in ForceSendFields will be sent to the
717	// server regardless of whether the field is empty or not. This may be
718	// used to include empty fields in Patch requests.
719	ForceSendFields []string `json:"-"`
720
721	// NullFields is a list of field names (e.g. "Rate") to include in API
722	// requests with the JSON null value. By default, fields with empty
723	// values are omitted from API requests. However, any field with an
724	// empty value appearing in NullFields will be sent to the server as
725	// null. It is an error if a field in this list has a non-empty value.
726	// This may be used to include null fields in Patch requests.
727	NullFields []string `json:"-"`
728}
729
730func (s *CPUTime) MarshalJSON() ([]byte, error) {
731	type NoMethod CPUTime
732	raw := NoMethod(*s)
733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
734}
735
736func (s *CPUTime) UnmarshalJSON(data []byte) error {
737	type NoMethod CPUTime
738	var s1 struct {
739		Rate gensupport.JSONFloat64 `json:"rate"`
740		*NoMethod
741	}
742	s1.NoMethod = (*NoMethod)(s)
743	if err := json.Unmarshal(data, &s1); err != nil {
744		return err
745	}
746	s.Rate = float64(s1.Rate)
747	return nil
748}
749
750// ComponentSource: Description of an interstitial value between
751// transforms in an execution
752// stage.
753type ComponentSource struct {
754	// Name: Dataflow service generated name for this source.
755	Name string `json:"name,omitempty"`
756
757	// OriginalTransformOrCollection: User name for the original user
758	// transform or collection with which this
759	// source is most closely associated.
760	OriginalTransformOrCollection string `json:"originalTransformOrCollection,omitempty"`
761
762	// UserName: Human-readable name for this transform; may be user or
763	// system generated.
764	UserName string `json:"userName,omitempty"`
765
766	// ForceSendFields is a list of field names (e.g. "Name") to
767	// unconditionally include in API requests. By default, fields with
768	// empty values are omitted from API requests. However, any non-pointer,
769	// non-interface field appearing in ForceSendFields will be sent to the
770	// server regardless of whether the field is empty or not. This may be
771	// used to include empty fields in Patch requests.
772	ForceSendFields []string `json:"-"`
773
774	// NullFields is a list of field names (e.g. "Name") to include in API
775	// requests with the JSON null value. By default, fields with empty
776	// values are omitted from API requests. However, any field with an
777	// empty value appearing in NullFields will be sent to the server as
778	// null. It is an error if a field in this list has a non-empty value.
779	// This may be used to include null fields in Patch requests.
780	NullFields []string `json:"-"`
781}
782
783func (s *ComponentSource) MarshalJSON() ([]byte, error) {
784	type NoMethod ComponentSource
785	raw := NoMethod(*s)
786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
787}
788
789// ComponentTransform: Description of a transform executed as part of an
790// execution stage.
791type ComponentTransform struct {
792	// Name: Dataflow service generated name for this source.
793	Name string `json:"name,omitempty"`
794
795	// OriginalTransform: User name for the original user transform with
796	// which this transform is
797	// most closely associated.
798	OriginalTransform string `json:"originalTransform,omitempty"`
799
800	// UserName: Human-readable name for this transform; may be user or
801	// system generated.
802	UserName string `json:"userName,omitempty"`
803
804	// ForceSendFields is a list of field names (e.g. "Name") to
805	// unconditionally include in API requests. By default, fields with
806	// empty values are omitted from API requests. However, any non-pointer,
807	// non-interface field appearing in ForceSendFields will be sent to the
808	// server regardless of whether the field is empty or not. This may be
809	// used to include empty fields in Patch requests.
810	ForceSendFields []string `json:"-"`
811
812	// NullFields is a list of field names (e.g. "Name") to include in API
813	// requests with the JSON null value. By default, fields with empty
814	// values are omitted from API requests. However, any field with an
815	// empty value appearing in NullFields will be sent to the server as
816	// null. It is an error if a field in this list has a non-empty value.
817	// This may be used to include null fields in Patch requests.
818	NullFields []string `json:"-"`
819}
820
821func (s *ComponentTransform) MarshalJSON() ([]byte, error) {
822	type NoMethod ComponentTransform
823	raw := NoMethod(*s)
824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
825}
826
827// ComputationTopology: All configuration data for a particular
828// Computation.
829type ComputationTopology struct {
830	// ComputationId: The ID of the computation.
831	ComputationId string `json:"computationId,omitempty"`
832
833	// Inputs: The inputs to the computation.
834	Inputs []*StreamLocation `json:"inputs,omitempty"`
835
836	// KeyRanges: The key ranges processed by the computation.
837	KeyRanges []*KeyRangeLocation `json:"keyRanges,omitempty"`
838
839	// Outputs: The outputs from the computation.
840	Outputs []*StreamLocation `json:"outputs,omitempty"`
841
842	// StateFamilies: The state family values.
843	StateFamilies []*StateFamilyConfig `json:"stateFamilies,omitempty"`
844
845	// SystemStageName: The system stage name.
846	SystemStageName string `json:"systemStageName,omitempty"`
847
848	// ForceSendFields is a list of field names (e.g. "ComputationId") to
849	// unconditionally include in API requests. By default, fields with
850	// empty values are omitted from API requests. However, any non-pointer,
851	// non-interface field appearing in ForceSendFields will be sent to the
852	// server regardless of whether the field is empty or not. This may be
853	// used to include empty fields in Patch requests.
854	ForceSendFields []string `json:"-"`
855
856	// NullFields is a list of field names (e.g. "ComputationId") to include
857	// in API requests with the JSON null value. By default, fields with
858	// empty values are omitted from API requests. However, any field with
859	// an empty value appearing in NullFields will be sent to the server as
860	// null. It is an error if a field in this list has a non-empty value.
861	// This may be used to include null fields in Patch requests.
862	NullFields []string `json:"-"`
863}
864
865func (s *ComputationTopology) MarshalJSON() ([]byte, error) {
866	type NoMethod ComputationTopology
867	raw := NoMethod(*s)
868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
869}
870
871// ConcatPosition: A position that encapsulates an inner position and an
872// index for the inner
873// position. A ConcatPosition can be used by a reader of a source
874// that
875// encapsulates a set of other sources.
876type ConcatPosition struct {
877	// Index: Index of the inner source.
878	Index int64 `json:"index,omitempty"`
879
880	// Position: Position within the inner source.
881	Position *Position `json:"position,omitempty"`
882
883	// ForceSendFields is a list of field names (e.g. "Index") to
884	// unconditionally include in API requests. By default, fields with
885	// empty values are omitted from API requests. However, any non-pointer,
886	// non-interface field appearing in ForceSendFields will be sent to the
887	// server regardless of whether the field is empty or not. This may be
888	// used to include empty fields in Patch requests.
889	ForceSendFields []string `json:"-"`
890
891	// NullFields is a list of field names (e.g. "Index") to include in API
892	// requests with the JSON null value. By default, fields with empty
893	// values are omitted from API requests. However, any field with an
894	// empty value appearing in NullFields will be sent to the server as
895	// null. It is an error if a field in this list has a non-empty value.
896	// This may be used to include null fields in Patch requests.
897	NullFields []string `json:"-"`
898}
899
900func (s *ConcatPosition) MarshalJSON() ([]byte, error) {
901	type NoMethod ConcatPosition
902	raw := NoMethod(*s)
903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
904}
905
906// CounterMetadata: CounterMetadata includes all static non-name
907// non-value counter attributes.
908type CounterMetadata struct {
909	// Description: Human-readable description of the counter semantics.
910	Description string `json:"description,omitempty"`
911
912	// Kind: Counter aggregation kind.
913	//
914	// Possible values:
915	//   "INVALID" - Counter aggregation kind was not set.
916	//   "SUM" - Aggregated value is the sum of all contributed values.
917	//   "MAX" - Aggregated value is the max of all contributed values.
918	//   "MIN" - Aggregated value is the min of all contributed values.
919	//   "MEAN" - Aggregated value is the mean of all contributed values.
920	//   "OR" - Aggregated value represents the logical 'or' of all
921	// contributed values.
922	//   "AND" - Aggregated value represents the logical 'and' of all
923	// contributed values.
924	//   "SET" - Aggregated value is a set of unique contributed values.
925	//   "DISTRIBUTION" - Aggregated value captures statistics about a
926	// distribution.
927	//   "LATEST_VALUE" - Aggregated value tracks the latest value of a
928	// variable.
929	Kind string `json:"kind,omitempty"`
930
931	// OtherUnits: A string referring to the unit type.
932	OtherUnits string `json:"otherUnits,omitempty"`
933
934	// StandardUnits: System defined Units, see above enum.
935	//
936	// Possible values:
937	//   "BYTES" - Counter returns a value in bytes.
938	//   "BYTES_PER_SEC" - Counter returns a value in bytes per second.
939	//   "MILLISECONDS" - Counter returns a value in milliseconds.
940	//   "MICROSECONDS" - Counter returns a value in microseconds.
941	//   "NANOSECONDS" - Counter returns a value in nanoseconds.
942	//   "TIMESTAMP_MSEC" - Counter returns a timestamp in milliseconds.
943	//   "TIMESTAMP_USEC" - Counter returns a timestamp in microseconds.
944	//   "TIMESTAMP_NSEC" - Counter returns a timestamp in nanoseconds.
945	StandardUnits string `json:"standardUnits,omitempty"`
946
947	// ForceSendFields is a list of field names (e.g. "Description") to
948	// unconditionally include in API requests. By default, fields with
949	// empty values are omitted from API requests. However, any non-pointer,
950	// non-interface field appearing in ForceSendFields will be sent to the
951	// server regardless of whether the field is empty or not. This may be
952	// used to include empty fields in Patch requests.
953	ForceSendFields []string `json:"-"`
954
955	// NullFields is a list of field names (e.g. "Description") to include
956	// in API requests with the JSON null value. By default, fields with
957	// empty values are omitted from API requests. However, any field with
958	// an empty value appearing in NullFields will be sent to the server as
959	// null. It is an error if a field in this list has a non-empty value.
960	// This may be used to include null fields in Patch requests.
961	NullFields []string `json:"-"`
962}
963
964func (s *CounterMetadata) MarshalJSON() ([]byte, error) {
965	type NoMethod CounterMetadata
966	raw := NoMethod(*s)
967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
968}
969
970// CounterStructuredName: Identifies a counter within a per-job
971// namespace. Counters whose structured
972// names are the same get merged into a single value for the job.
973type CounterStructuredName struct {
974	// ComponentStepName: Name of the optimized step being executed by the
975	// workers.
976	ComponentStepName string `json:"componentStepName,omitempty"`
977
978	// ExecutionStepName: Name of the stage. An execution step contains
979	// multiple component steps.
980	ExecutionStepName string `json:"executionStepName,omitempty"`
981
982	// InputIndex: Index of an input collection that's being read
983	// from/written to as a side
984	// input.
985	// The index identifies a step's side inputs starting by 1 (e.g. the
986	// first
987	// side input has input_index 1, the third has input_index 3).
988	// Side inputs are identified by a pair of (original_step_name,
989	// input_index).
990	// This field helps uniquely identify them.
991	InputIndex int64 `json:"inputIndex,omitempty"`
992
993	// Name: Counter name. Not necessarily globally-unique, but unique
994	// within the
995	// context of the other fields.
996	// Required.
997	Name string `json:"name,omitempty"`
998
999	// Origin: One of the standard Origins defined above.
1000	//
1001	// Possible values:
1002	//   "SYSTEM" - Counter was created by the Dataflow system.
1003	//   "USER" - Counter was created by the user.
1004	Origin string `json:"origin,omitempty"`
1005
1006	// OriginNamespace: A string containing a more specific namespace of the
1007	// counter's origin.
1008	OriginNamespace string `json:"originNamespace,omitempty"`
1009
1010	// OriginalRequestingStepName: The step name requesting an operation,
1011	// such as GBK.
1012	// I.e. the ParDo causing a read/write from shuffle to occur, or a
1013	// read from side inputs.
1014	OriginalRequestingStepName string `json:"originalRequestingStepName,omitempty"`
1015
1016	// OriginalStepName: System generated name of the original step in the
1017	// user's graph, before
1018	// optimization.
1019	OriginalStepName string `json:"originalStepName,omitempty"`
1020
1021	// Portion: Portion of this counter, either key or value.
1022	//
1023	// Possible values:
1024	//   "ALL" - Counter portion has not been set.
1025	//   "KEY" - Counter reports a key.
1026	//   "VALUE" - Counter reports a value.
1027	Portion string `json:"portion,omitempty"`
1028
1029	// WorkerId: ID of a particular worker.
1030	WorkerId string `json:"workerId,omitempty"`
1031
1032	// ForceSendFields is a list of field names (e.g. "ComponentStepName")
1033	// to unconditionally include in API requests. By default, fields with
1034	// empty values are omitted from API requests. However, any non-pointer,
1035	// non-interface field appearing in ForceSendFields will be sent to the
1036	// server regardless of whether the field is empty or not. This may be
1037	// used to include empty fields in Patch requests.
1038	ForceSendFields []string `json:"-"`
1039
1040	// NullFields is a list of field names (e.g. "ComponentStepName") to
1041	// include in API requests with the JSON null value. By default, fields
1042	// with empty values are omitted from API requests. However, any field
1043	// with an empty value appearing in NullFields will be sent to the
1044	// server as null. It is an error if a field in this list has a
1045	// non-empty value. This may be used to include null fields in Patch
1046	// requests.
1047	NullFields []string `json:"-"`
1048}
1049
1050func (s *CounterStructuredName) MarshalJSON() ([]byte, error) {
1051	type NoMethod CounterStructuredName
1052	raw := NoMethod(*s)
1053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1054}
1055
1056// CounterStructuredNameAndMetadata: A single message which encapsulates
1057// structured name and metadata for a given
1058// counter.
1059type CounterStructuredNameAndMetadata struct {
1060	// Metadata: Metadata associated with a counter
1061	Metadata *CounterMetadata `json:"metadata,omitempty"`
1062
1063	// Name: Structured name of the counter.
1064	Name *CounterStructuredName `json:"name,omitempty"`
1065
1066	// ForceSendFields is a list of field names (e.g. "Metadata") to
1067	// unconditionally include in API requests. By default, fields with
1068	// empty values are omitted from API requests. However, any non-pointer,
1069	// non-interface field appearing in ForceSendFields will be sent to the
1070	// server regardless of whether the field is empty or not. This may be
1071	// used to include empty fields in Patch requests.
1072	ForceSendFields []string `json:"-"`
1073
1074	// NullFields is a list of field names (e.g. "Metadata") to include in
1075	// API requests with the JSON null value. By default, fields with empty
1076	// values are omitted from API requests. However, any field with an
1077	// empty value appearing in NullFields will be sent to the server as
1078	// null. It is an error if a field in this list has a non-empty value.
1079	// This may be used to include null fields in Patch requests.
1080	NullFields []string `json:"-"`
1081}
1082
1083func (s *CounterStructuredNameAndMetadata) MarshalJSON() ([]byte, error) {
1084	type NoMethod CounterStructuredNameAndMetadata
1085	raw := NoMethod(*s)
1086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1087}
1088
1089// CounterUpdate: An update to a Counter sent from a worker.
1090type CounterUpdate struct {
1091	// Boolean: Boolean value for And, Or.
1092	Boolean bool `json:"boolean,omitempty"`
1093
1094	// Cumulative: True if this counter is reported as the total cumulative
1095	// aggregate
1096	// value accumulated since the worker started working on this
1097	// WorkItem.
1098	// By default this is false, indicating that this counter is reported
1099	// as a delta.
1100	Cumulative bool `json:"cumulative,omitempty"`
1101
1102	// Distribution: Distribution data
1103	Distribution *DistributionUpdate `json:"distribution,omitempty"`
1104
1105	// FloatingPoint: Floating point value for Sum, Max, Min.
1106	FloatingPoint float64 `json:"floatingPoint,omitempty"`
1107
1108	// FloatingPointList: List of floating point numbers, for Set.
1109	FloatingPointList *FloatingPointList `json:"floatingPointList,omitempty"`
1110
1111	// FloatingPointMean: Floating point mean aggregation value for Mean.
1112	FloatingPointMean *FloatingPointMean `json:"floatingPointMean,omitempty"`
1113
1114	// Integer: Integer value for Sum, Max, Min.
1115	Integer *SplitInt64 `json:"integer,omitempty"`
1116
1117	// IntegerGauge: Gauge data
1118	IntegerGauge *IntegerGauge `json:"integerGauge,omitempty"`
1119
1120	// IntegerList: List of integers, for Set.
1121	IntegerList *IntegerList `json:"integerList,omitempty"`
1122
1123	// IntegerMean: Integer mean aggregation value for Mean.
1124	IntegerMean *IntegerMean `json:"integerMean,omitempty"`
1125
1126	// Internal: Value for internally-defined counters used by the Dataflow
1127	// service.
1128	Internal interface{} `json:"internal,omitempty"`
1129
1130	// NameAndKind: Counter name and aggregation type.
1131	NameAndKind *NameAndKind `json:"nameAndKind,omitempty"`
1132
1133	// ShortId: The service-generated short identifier for this counter.
1134	// The short_id -> (name, metadata) mapping is constant for the lifetime
1135	// of
1136	// a job.
1137	ShortId int64 `json:"shortId,omitempty,string"`
1138
1139	// StringList: List of strings, for Set.
1140	StringList *StringList `json:"stringList,omitempty"`
1141
1142	// StructuredNameAndMetadata: Counter structured name and metadata.
1143	StructuredNameAndMetadata *CounterStructuredNameAndMetadata `json:"structuredNameAndMetadata,omitempty"`
1144
1145	// ForceSendFields is a list of field names (e.g. "Boolean") to
1146	// unconditionally include in API requests. By default, fields with
1147	// empty values are omitted from API requests. However, any non-pointer,
1148	// non-interface field appearing in ForceSendFields will be sent to the
1149	// server regardless of whether the field is empty or not. This may be
1150	// used to include empty fields in Patch requests.
1151	ForceSendFields []string `json:"-"`
1152
1153	// NullFields is a list of field names (e.g. "Boolean") to include in
1154	// API requests with the JSON null value. By default, fields with empty
1155	// values are omitted from API requests. However, any field with an
1156	// empty value appearing in NullFields will be sent to the server as
1157	// null. It is an error if a field in this list has a non-empty value.
1158	// This may be used to include null fields in Patch requests.
1159	NullFields []string `json:"-"`
1160}
1161
1162func (s *CounterUpdate) MarshalJSON() ([]byte, error) {
1163	type NoMethod CounterUpdate
1164	raw := NoMethod(*s)
1165	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1166}
1167
1168func (s *CounterUpdate) UnmarshalJSON(data []byte) error {
1169	type NoMethod CounterUpdate
1170	var s1 struct {
1171		FloatingPoint gensupport.JSONFloat64 `json:"floatingPoint"`
1172		*NoMethod
1173	}
1174	s1.NoMethod = (*NoMethod)(s)
1175	if err := json.Unmarshal(data, &s1); err != nil {
1176		return err
1177	}
1178	s.FloatingPoint = float64(s1.FloatingPoint)
1179	return nil
1180}
1181
1182// CreateJobFromTemplateRequest: A request to create a Cloud Dataflow
1183// job from a template.
1184type CreateJobFromTemplateRequest struct {
1185	// Environment: The runtime environment for the job.
1186	Environment *RuntimeEnvironment `json:"environment,omitempty"`
1187
1188	// GcsPath: Required. A Cloud Storage path to the template from which
1189	// to
1190	// create the job.
1191	// Must be a valid Cloud Storage URL, beginning with `gs://`.
1192	GcsPath string `json:"gcsPath,omitempty"`
1193
1194	// JobName: Required. The job name to use for the created job.
1195	JobName string `json:"jobName,omitempty"`
1196
1197	// Location: The [regional
1198	// endpoint]
1199	// (https://cloud.google.com/dataflow/docs/concepts/regional-en
1200	// dpoints) to
1201	// which to direct the request.
1202	Location string `json:"location,omitempty"`
1203
1204	// Parameters: The runtime parameters to pass to the job.
1205	Parameters map[string]string `json:"parameters,omitempty"`
1206
1207	// ForceSendFields is a list of field names (e.g. "Environment") to
1208	// unconditionally include in API requests. By default, fields with
1209	// empty values are omitted from API requests. However, any non-pointer,
1210	// non-interface field appearing in ForceSendFields will be sent to the
1211	// server regardless of whether the field is empty or not. This may be
1212	// used to include empty fields in Patch requests.
1213	ForceSendFields []string `json:"-"`
1214
1215	// NullFields is a list of field names (e.g. "Environment") to include
1216	// in API requests with the JSON null value. By default, fields with
1217	// empty values are omitted from API requests. However, any field with
1218	// an empty value appearing in NullFields will be sent to the server as
1219	// null. It is an error if a field in this list has a non-empty value.
1220	// This may be used to include null fields in Patch requests.
1221	NullFields []string `json:"-"`
1222}
1223
1224func (s *CreateJobFromTemplateRequest) MarshalJSON() ([]byte, error) {
1225	type NoMethod CreateJobFromTemplateRequest
1226	raw := NoMethod(*s)
1227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1228}
1229
1230// CustomSourceLocation: Identifies the location of a custom souce.
1231type CustomSourceLocation struct {
1232	// Stateful: Whether this source is stateful.
1233	Stateful bool `json:"stateful,omitempty"`
1234
1235	// ForceSendFields is a list of field names (e.g. "Stateful") to
1236	// unconditionally include in API requests. By default, fields with
1237	// empty values are omitted from API requests. However, any non-pointer,
1238	// non-interface field appearing in ForceSendFields will be sent to the
1239	// server regardless of whether the field is empty or not. This may be
1240	// used to include empty fields in Patch requests.
1241	ForceSendFields []string `json:"-"`
1242
1243	// NullFields is a list of field names (e.g. "Stateful") to include in
1244	// API requests with the JSON null value. By default, fields with empty
1245	// values are omitted from API requests. However, any field with an
1246	// empty value appearing in NullFields will be sent to the server as
1247	// null. It is an error if a field in this list has a non-empty value.
1248	// This may be used to include null fields in Patch requests.
1249	NullFields []string `json:"-"`
1250}
1251
1252func (s *CustomSourceLocation) MarshalJSON() ([]byte, error) {
1253	type NoMethod CustomSourceLocation
1254	raw := NoMethod(*s)
1255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1256}
1257
1258// DataDiskAssignment: Data disk assignment for a given VM instance.
1259type DataDiskAssignment struct {
1260	// DataDisks: Mounted data disks. The order is important a data disk's
1261	// 0-based index in
1262	// this list defines which persistent directory the disk is mounted to,
1263	// for
1264	// example the list of { "myproject-1014-104817-4c2-harness-0-disk-0"
1265	// },
1266	// { "myproject-1014-104817-4c2-harness-0-disk-1" }.
1267	DataDisks []string `json:"dataDisks,omitempty"`
1268
1269	// VmInstance: VM instance name the data disks mounted to, for
1270	// example
1271	// "myproject-1014-104817-4c2-harness-0".
1272	VmInstance string `json:"vmInstance,omitempty"`
1273
1274	// ForceSendFields is a list of field names (e.g. "DataDisks") to
1275	// unconditionally include in API requests. By default, fields with
1276	// empty values are omitted from API requests. However, any non-pointer,
1277	// non-interface field appearing in ForceSendFields will be sent to the
1278	// server regardless of whether the field is empty or not. This may be
1279	// used to include empty fields in Patch requests.
1280	ForceSendFields []string `json:"-"`
1281
1282	// NullFields is a list of field names (e.g. "DataDisks") to include in
1283	// API requests with the JSON null value. By default, fields with empty
1284	// values are omitted from API requests. However, any field with an
1285	// empty value appearing in NullFields will be sent to the server as
1286	// null. It is an error if a field in this list has a non-empty value.
1287	// This may be used to include null fields in Patch requests.
1288	NullFields []string `json:"-"`
1289}
1290
1291func (s *DataDiskAssignment) MarshalJSON() ([]byte, error) {
1292	type NoMethod DataDiskAssignment
1293	raw := NoMethod(*s)
1294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1295}
1296
1297// DatastoreIODetails: Metadata for a Datastore connector used by the
1298// job.
1299type DatastoreIODetails struct {
1300	// Namespace: Namespace used in the connection.
1301	Namespace string `json:"namespace,omitempty"`
1302
1303	// ProjectId: ProjectId accessed in the connection.
1304	ProjectId string `json:"projectId,omitempty"`
1305
1306	// ForceSendFields is a list of field names (e.g. "Namespace") to
1307	// unconditionally include in API requests. By default, fields with
1308	// empty values are omitted from API requests. However, any non-pointer,
1309	// non-interface field appearing in ForceSendFields will be sent to the
1310	// server regardless of whether the field is empty or not. This may be
1311	// used to include empty fields in Patch requests.
1312	ForceSendFields []string `json:"-"`
1313
1314	// NullFields is a list of field names (e.g. "Namespace") to include in
1315	// API requests with the JSON null value. By default, fields with empty
1316	// values are omitted from API requests. However, any field with an
1317	// empty value appearing in NullFields will be sent to the server as
1318	// null. It is an error if a field in this list has a non-empty value.
1319	// This may be used to include null fields in Patch requests.
1320	NullFields []string `json:"-"`
1321}
1322
1323func (s *DatastoreIODetails) MarshalJSON() ([]byte, error) {
1324	type NoMethod DatastoreIODetails
1325	raw := NoMethod(*s)
1326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1327}
1328
1329// DerivedSource: Specification of one of the bundles produced as a
1330// result of splitting
1331// a Source (e.g. when executing a SourceSplitRequest, or when
1332// splitting an active task using
1333// WorkItemStatus.dynamic_source_split),
1334// relative to the source being split.
1335type DerivedSource struct {
1336	// DerivationMode: What source to base the produced source on (if any).
1337	//
1338	// Possible values:
1339	//   "SOURCE_DERIVATION_MODE_UNKNOWN" - The source derivation is
1340	// unknown, or unspecified.
1341	//   "SOURCE_DERIVATION_MODE_INDEPENDENT" - Produce a completely
1342	// independent Source with no base.
1343	//   "SOURCE_DERIVATION_MODE_CHILD_OF_CURRENT" - Produce a Source based
1344	// on the Source being split.
1345	//   "SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" - Produce a Source
1346	// based on the base of the Source being split.
1347	DerivationMode string `json:"derivationMode,omitempty"`
1348
1349	// Source: Specification of the source.
1350	Source *Source `json:"source,omitempty"`
1351
1352	// ForceSendFields is a list of field names (e.g. "DerivationMode") to
1353	// unconditionally include in API requests. By default, fields with
1354	// empty values are omitted from API requests. However, any non-pointer,
1355	// non-interface field appearing in ForceSendFields will be sent to the
1356	// server regardless of whether the field is empty or not. This may be
1357	// used to include empty fields in Patch requests.
1358	ForceSendFields []string `json:"-"`
1359
1360	// NullFields is a list of field names (e.g. "DerivationMode") to
1361	// include in API requests with the JSON null value. By default, fields
1362	// with empty values are omitted from API requests. However, any field
1363	// with an empty value appearing in NullFields will be sent to the
1364	// server as null. It is an error if a field in this list has a
1365	// non-empty value. This may be used to include null fields in Patch
1366	// requests.
1367	NullFields []string `json:"-"`
1368}
1369
1370func (s *DerivedSource) MarshalJSON() ([]byte, error) {
1371	type NoMethod DerivedSource
1372	raw := NoMethod(*s)
1373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1374}
1375
1376// Disk: Describes the data disk used by a workflow job.
1377type Disk struct {
1378	// DiskType: Disk storage type, as defined by Google Compute Engine.
1379	// This
1380	// must be a disk type appropriate to the project and zone in which
1381	// the workers will run.  If unknown or unspecified, the service
1382	// will attempt to choose a reasonable default.
1383	//
1384	// For example, the standard persistent disk type is a resource
1385	// name
1386	// typically ending in "pd-standard".  If SSD persistent disks
1387	// are
1388	// available, the resource name typically ends with "pd-ssd".
1389	// The
1390	// actual valid values are defined the Google Compute Engine API,
1391	// not by the Cloud Dataflow API; consult the Google Compute
1392	// Engine
1393	// documentation for more information about determining the set
1394	// of
1395	// available disk types for a particular project and zone.
1396	//
1397	// Google Compute Engine Disk types are local to a particular
1398	// project in a particular zone, and so the resource name will
1399	// typically look something like
1400	// this:
1401	//
1402	// compute.googleapis.com/projects/project-id/zones/zone/diskTypes
1403	// /pd-standard
1404	DiskType string `json:"diskType,omitempty"`
1405
1406	// MountPoint: Directory in a VM where disk is mounted.
1407	MountPoint string `json:"mountPoint,omitempty"`
1408
1409	// SizeGb: Size of disk in GB.  If zero or unspecified, the service
1410	// will
1411	// attempt to choose a reasonable default.
1412	SizeGb int64 `json:"sizeGb,omitempty"`
1413
1414	// ForceSendFields is a list of field names (e.g. "DiskType") to
1415	// unconditionally include in API requests. By default, fields with
1416	// empty values are omitted from API requests. However, any non-pointer,
1417	// non-interface field appearing in ForceSendFields will be sent to the
1418	// server regardless of whether the field is empty or not. This may be
1419	// used to include empty fields in Patch requests.
1420	ForceSendFields []string `json:"-"`
1421
1422	// NullFields is a list of field names (e.g. "DiskType") to include in
1423	// API requests with the JSON null value. By default, fields with empty
1424	// values are omitted from API requests. However, any field with an
1425	// empty value appearing in NullFields will be sent to the server as
1426	// null. It is an error if a field in this list has a non-empty value.
1427	// This may be used to include null fields in Patch requests.
1428	NullFields []string `json:"-"`
1429}
1430
1431func (s *Disk) MarshalJSON() ([]byte, error) {
1432	type NoMethod Disk
1433	raw := NoMethod(*s)
1434	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1435}
1436
1437// DisplayData: Data provided with a pipeline or transform to provide
1438// descriptive info.
1439type DisplayData struct {
1440	// BoolValue: Contains value if the data is of a boolean type.
1441	BoolValue bool `json:"boolValue,omitempty"`
1442
1443	// DurationValue: Contains value if the data is of duration type.
1444	DurationValue string `json:"durationValue,omitempty"`
1445
1446	// FloatValue: Contains value if the data is of float type.
1447	FloatValue float64 `json:"floatValue,omitempty"`
1448
1449	// Int64Value: Contains value if the data is of int64 type.
1450	Int64Value int64 `json:"int64Value,omitempty,string"`
1451
1452	// JavaClassValue: Contains value if the data is of java class type.
1453	JavaClassValue string `json:"javaClassValue,omitempty"`
1454
1455	// Key: The key identifying the display data.
1456	// This is intended to be used as a label for the display data
1457	// when viewed in a dax monitoring system.
1458	Key string `json:"key,omitempty"`
1459
1460	// Label: An optional label to display in a dax UI for the element.
1461	Label string `json:"label,omitempty"`
1462
1463	// Namespace: The namespace for the key. This is usually a class name or
1464	// programming
1465	// language namespace (i.e. python module) which defines the display
1466	// data.
1467	// This allows a dax monitoring system to specially handle the data
1468	// and perform custom rendering.
1469	Namespace string `json:"namespace,omitempty"`
1470
1471	// ShortStrValue: A possible additional shorter value to display.
1472	// For example a java_class_name_value of com.mypackage.MyDoFn
1473	// will be stored with MyDoFn as the short_str_value
1474	// and
1475	// com.mypackage.MyDoFn as the java_class_name value.
1476	// short_str_value can be displayed and java_class_name_value
1477	// will be displayed as a tooltip.
1478	ShortStrValue string `json:"shortStrValue,omitempty"`
1479
1480	// StrValue: Contains value if the data is of string type.
1481	StrValue string `json:"strValue,omitempty"`
1482
1483	// TimestampValue: Contains value if the data is of timestamp type.
1484	TimestampValue string `json:"timestampValue,omitempty"`
1485
1486	// Url: An optional full URL.
1487	Url string `json:"url,omitempty"`
1488
1489	// ForceSendFields is a list of field names (e.g. "BoolValue") to
1490	// unconditionally include in API requests. By default, fields with
1491	// empty values are omitted from API requests. However, any non-pointer,
1492	// non-interface field appearing in ForceSendFields will be sent to the
1493	// server regardless of whether the field is empty or not. This may be
1494	// used to include empty fields in Patch requests.
1495	ForceSendFields []string `json:"-"`
1496
1497	// NullFields is a list of field names (e.g. "BoolValue") to include in
1498	// API requests with the JSON null value. By default, fields with empty
1499	// values are omitted from API requests. However, any field with an
1500	// empty value appearing in NullFields will be sent to the server as
1501	// null. It is an error if a field in this list has a non-empty value.
1502	// This may be used to include null fields in Patch requests.
1503	NullFields []string `json:"-"`
1504}
1505
1506func (s *DisplayData) MarshalJSON() ([]byte, error) {
1507	type NoMethod DisplayData
1508	raw := NoMethod(*s)
1509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1510}
1511
1512func (s *DisplayData) UnmarshalJSON(data []byte) error {
1513	type NoMethod DisplayData
1514	var s1 struct {
1515		FloatValue gensupport.JSONFloat64 `json:"floatValue"`
1516		*NoMethod
1517	}
1518	s1.NoMethod = (*NoMethod)(s)
1519	if err := json.Unmarshal(data, &s1); err != nil {
1520		return err
1521	}
1522	s.FloatValue = float64(s1.FloatValue)
1523	return nil
1524}
1525
1526// DistributionUpdate: A metric value representing a distribution.
1527type DistributionUpdate struct {
1528	// Count: The count of the number of elements present in the
1529	// distribution.
1530	Count *SplitInt64 `json:"count,omitempty"`
1531
1532	// Histogram: (Optional) Histogram of value counts for the distribution.
1533	Histogram *Histogram `json:"histogram,omitempty"`
1534
1535	// Max: The maximum value present in the distribution.
1536	Max *SplitInt64 `json:"max,omitempty"`
1537
1538	// Min: The minimum value present in the distribution.
1539	Min *SplitInt64 `json:"min,omitempty"`
1540
1541	// Sum: Use an int64 since we'd prefer the added precision. If overflow
1542	// is a common
1543	// problem we can detect it and use an additional int64 or a double.
1544	Sum *SplitInt64 `json:"sum,omitempty"`
1545
1546	// SumOfSquares: Use a double since the sum of squares is likely to
1547	// overflow int64.
1548	SumOfSquares float64 `json:"sumOfSquares,omitempty"`
1549
1550	// ForceSendFields is a list of field names (e.g. "Count") to
1551	// unconditionally include in API requests. By default, fields with
1552	// empty values are omitted from API requests. However, any non-pointer,
1553	// non-interface field appearing in ForceSendFields will be sent to the
1554	// server regardless of whether the field is empty or not. This may be
1555	// used to include empty fields in Patch requests.
1556	ForceSendFields []string `json:"-"`
1557
1558	// NullFields is a list of field names (e.g. "Count") to include in API
1559	// requests with the JSON null value. By default, fields with empty
1560	// values are omitted from API requests. However, any field with an
1561	// empty value appearing in NullFields will be sent to the server as
1562	// null. It is an error if a field in this list has a non-empty value.
1563	// This may be used to include null fields in Patch requests.
1564	NullFields []string `json:"-"`
1565}
1566
1567func (s *DistributionUpdate) MarshalJSON() ([]byte, error) {
1568	type NoMethod DistributionUpdate
1569	raw := NoMethod(*s)
1570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1571}
1572
1573func (s *DistributionUpdate) UnmarshalJSON(data []byte) error {
1574	type NoMethod DistributionUpdate
1575	var s1 struct {
1576		SumOfSquares gensupport.JSONFloat64 `json:"sumOfSquares"`
1577		*NoMethod
1578	}
1579	s1.NoMethod = (*NoMethod)(s)
1580	if err := json.Unmarshal(data, &s1); err != nil {
1581		return err
1582	}
1583	s.SumOfSquares = float64(s1.SumOfSquares)
1584	return nil
1585}
1586
1587// DynamicSourceSplit: When a task splits using
1588// WorkItemStatus.dynamic_source_split, this
1589// message describes the two parts of the split relative to
1590// the
1591// description of the current task's input.
1592type DynamicSourceSplit struct {
1593	// Primary: Primary part (continued to be processed by
1594	// worker).
1595	// Specified relative to the previously-current source.
1596	// Becomes current.
1597	Primary *DerivedSource `json:"primary,omitempty"`
1598
1599	// Residual: Residual part (returned to the pool of work).
1600	// Specified relative to the previously-current source.
1601	Residual *DerivedSource `json:"residual,omitempty"`
1602
1603	// ForceSendFields is a list of field names (e.g. "Primary") to
1604	// unconditionally include in API requests. By default, fields with
1605	// empty values are omitted from API requests. However, any non-pointer,
1606	// non-interface field appearing in ForceSendFields will be sent to the
1607	// server regardless of whether the field is empty or not. This may be
1608	// used to include empty fields in Patch requests.
1609	ForceSendFields []string `json:"-"`
1610
1611	// NullFields is a list of field names (e.g. "Primary") to include in
1612	// API requests with the JSON null value. By default, fields with empty
1613	// values are omitted from API requests. However, any field with an
1614	// empty value appearing in NullFields will be sent to the server as
1615	// null. It is an error if a field in this list has a non-empty value.
1616	// This may be used to include null fields in Patch requests.
1617	NullFields []string `json:"-"`
1618}
1619
1620func (s *DynamicSourceSplit) MarshalJSON() ([]byte, error) {
1621	type NoMethod DynamicSourceSplit
1622	raw := NoMethod(*s)
1623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1624}
1625
1626// Environment: Describes the environment in which a Dataflow Job runs.
1627type Environment struct {
1628	// ClusterManagerApiService: The type of cluster manager API to use.  If
1629	// unknown or
1630	// unspecified, the service will attempt to choose a reasonable
1631	// default.  This should be in the form of the API service name,
1632	// e.g. "compute.googleapis.com".
1633	ClusterManagerApiService string `json:"clusterManagerApiService,omitempty"`
1634
1635	// Dataset: The dataset for the current project where various
1636	// workflow
1637	// related tables are stored.
1638	//
1639	// The supported resource type is:
1640	//
1641	// Google BigQuery:
1642	//   bigquery.googleapis.com/{dataset}
1643	Dataset string `json:"dataset,omitempty"`
1644
1645	// Experiments: The list of experiments to enable.
1646	Experiments []string `json:"experiments,omitempty"`
1647
1648	// FlexResourceSchedulingGoal: Which Flexible Resource Scheduling mode
1649	// to run in.
1650	//
1651	// Possible values:
1652	//   "FLEXRS_UNSPECIFIED" - Run in the default mode.
1653	//   "FLEXRS_SPEED_OPTIMIZED" - Optimize for lower execution time.
1654	//   "FLEXRS_COST_OPTIMIZED" - Optimize for lower cost.
1655	FlexResourceSchedulingGoal string `json:"flexResourceSchedulingGoal,omitempty"`
1656
1657	// InternalExperiments: Experimental settings.
1658	InternalExperiments googleapi.RawMessage `json:"internalExperiments,omitempty"`
1659
1660	// SdkPipelineOptions: The Cloud Dataflow SDK pipeline options specified
1661	// by the user. These
1662	// options are passed through the service and are used to recreate
1663	// the
1664	// SDK pipeline options on the worker in a language agnostic and
1665	// platform
1666	// independent way.
1667	SdkPipelineOptions googleapi.RawMessage `json:"sdkPipelineOptions,omitempty"`
1668
1669	// ServiceAccountEmail: Identity to run virtual machines as. Defaults to
1670	// the default account.
1671	ServiceAccountEmail string `json:"serviceAccountEmail,omitempty"`
1672
1673	// ServiceKmsKeyName: If set, contains the Cloud KMS key identifier used
1674	// to encrypt data
1675	// at rest, AKA a Customer Managed Encryption Key (CMEK).
1676	//
1677	// Format:
1678	//
1679	// projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KE
1680	// Y
1681	ServiceKmsKeyName string `json:"serviceKmsKeyName,omitempty"`
1682
1683	// TempStoragePrefix: The prefix of the resources the system should use
1684	// for temporary
1685	// storage.  The system will append the suffix "/temp-{JOBNAME} to
1686	// this resource prefix, where {JOBNAME} is the value of the
1687	// job_name field.  The resulting bucket and object prefix is used
1688	// as the prefix of the resources used to store temporary data
1689	// needed during the job execution.  NOTE: This will override the
1690	// value in taskrunner_settings.
1691	// The supported resource type is:
1692	//
1693	// Google Cloud Storage:
1694	//
1695	//   storage.googleapis.com/{bucket}/{object}
1696	//   bucket.storage.googleapis.com/{object}
1697	TempStoragePrefix string `json:"tempStoragePrefix,omitempty"`
1698
1699	// UserAgent: A description of the process that generated the request.
1700	UserAgent googleapi.RawMessage `json:"userAgent,omitempty"`
1701
1702	// Version: A structure describing which components and their versions
1703	// of the service
1704	// are required in order to run the job.
1705	Version googleapi.RawMessage `json:"version,omitempty"`
1706
1707	// WorkerPools: The worker pools. At least one "harness" worker pool
1708	// must be
1709	// specified in order for the job to have workers.
1710	WorkerPools []*WorkerPool `json:"workerPools,omitempty"`
1711
1712	// WorkerRegion: The Compute Engine
1713	// region
1714	// (https://cloud.google.com/compute/docs/regions-zones/regions-zo
1715	// nes) in
1716	// which worker processing should occur, e.g. "us-west1". Mutually
1717	// exclusive
1718	// with worker_zone. If neither worker_region nor worker_zone is
1719	// specified,
1720	// default to the control plane's region.
1721	WorkerRegion string `json:"workerRegion,omitempty"`
1722
1723	// WorkerZone: The Compute Engine
1724	// zone
1725	// (https://cloud.google.com/compute/docs/regions-zones/regions-zone
1726	// s) in
1727	// which worker processing should occur, e.g. "us-west1-a". Mutually
1728	// exclusive
1729	// with worker_region. If neither worker_region nor worker_zone is
1730	// specified,
1731	// a zone in the control plane's region is chosen based on available
1732	// capacity.
1733	WorkerZone string `json:"workerZone,omitempty"`
1734
1735	// ForceSendFields is a list of field names (e.g.
1736	// "ClusterManagerApiService") to unconditionally include in API
1737	// requests. By default, fields with empty values are omitted from API
1738	// requests. However, any non-pointer, non-interface field appearing in
1739	// ForceSendFields will be sent to the server regardless of whether the
1740	// field is empty or not. This may be used to include empty fields in
1741	// Patch requests.
1742	ForceSendFields []string `json:"-"`
1743
1744	// NullFields is a list of field names (e.g. "ClusterManagerApiService")
1745	// to include in API requests with the JSON null value. By default,
1746	// fields with empty values are omitted from API requests. However, any
1747	// field with an empty value appearing in NullFields will be sent to the
1748	// server as null. It is an error if a field in this list has a
1749	// non-empty value. This may be used to include null fields in Patch
1750	// requests.
1751	NullFields []string `json:"-"`
1752}
1753
1754func (s *Environment) MarshalJSON() ([]byte, error) {
1755	type NoMethod Environment
1756	raw := NoMethod(*s)
1757	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1758}
1759
1760// ExecutionStageState: A message describing the state of a particular
1761// execution stage.
1762type ExecutionStageState struct {
1763	// CurrentStateTime: The time at which the stage transitioned to this
1764	// state.
1765	CurrentStateTime string `json:"currentStateTime,omitempty"`
1766
1767	// ExecutionStageName: The name of the execution stage.
1768	ExecutionStageName string `json:"executionStageName,omitempty"`
1769
1770	// ExecutionStageState: Executions stage states allow the same set of
1771	// values as JobState.
1772	//
1773	// Possible values:
1774	//   "JOB_STATE_UNKNOWN" - The job's run state isn't specified.
1775	//   "JOB_STATE_STOPPED" - `JOB_STATE_STOPPED` indicates that the job
1776	// has not
1777	// yet started to run.
1778	//   "JOB_STATE_RUNNING" - `JOB_STATE_RUNNING` indicates that the job is
1779	// currently running.
1780	//   "JOB_STATE_DONE" - `JOB_STATE_DONE` indicates that the job has
1781	// successfully completed.
1782	// This is a terminal job state.  This state may be set by the Cloud
1783	// Dataflow
1784	// service, as a transition from `JOB_STATE_RUNNING`. It may also be set
1785	// via a
1786	// Cloud Dataflow `UpdateJob` call, if the job has not yet reached a
1787	// terminal
1788	// state.
1789	//   "JOB_STATE_FAILED" - `JOB_STATE_FAILED` indicates that the job has
1790	// failed.  This is a
1791	// terminal job state.  This state may only be set by the Cloud
1792	// Dataflow
1793	// service, and only as a transition from `JOB_STATE_RUNNING`.
1794	//   "JOB_STATE_CANCELLED" - `JOB_STATE_CANCELLED` indicates that the
1795	// job has been explicitly
1796	// cancelled. This is a terminal job state. This state may only be
1797	// set via a Cloud Dataflow `UpdateJob` call, and only if the job has
1798	// not
1799	// yet reached another terminal state.
1800	//   "JOB_STATE_UPDATED" - `JOB_STATE_UPDATED` indicates that the job
1801	// was successfully updated,
1802	// meaning that this job was stopped and another job was started,
1803	// inheriting
1804	// state from this one. This is a terminal job state. This state may
1805	// only be
1806	// set by the Cloud Dataflow service, and only as a transition
1807	// from
1808	// `JOB_STATE_RUNNING`.
1809	//   "JOB_STATE_DRAINING" - `JOB_STATE_DRAINING` indicates that the job
1810	// is in the process of draining.
1811	// A draining job has stopped pulling from its input sources and is
1812	// processing
1813	// any data that remains in-flight. This state may be set via a Cloud
1814	// Dataflow
1815	// `UpdateJob` call, but only as a transition from `JOB_STATE_RUNNING`.
1816	// Jobs
1817	// that are draining may only transition to
1818	// `JOB_STATE_DRAINED`,
1819	// `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.
1820	//   "JOB_STATE_DRAINED" - `JOB_STATE_DRAINED` indicates that the job
1821	// has been drained.
1822	// A drained job terminated by stopping pulling from its input sources
1823	// and
1824	// processing any data that remained in-flight when draining was
1825	// requested.
1826	// This state is a terminal state, may only be set by the Cloud
1827	// Dataflow
1828	// service, and only as a transition from `JOB_STATE_DRAINING`.
1829	//   "JOB_STATE_PENDING" - `JOB_STATE_PENDING` indicates that the job
1830	// has been created but is not yet
1831	// running.  Jobs that are pending may only transition to
1832	// `JOB_STATE_RUNNING`,
1833	// or `JOB_STATE_FAILED`.
1834	//   "JOB_STATE_CANCELLING" - `JOB_STATE_CANCELLING` indicates that the
1835	// job has been explicitly cancelled
1836	// and is in the process of stopping.  Jobs that are cancelling may
1837	// only
1838	// transition to `JOB_STATE_CANCELLED` or `JOB_STATE_FAILED`.
1839	//   "JOB_STATE_QUEUED" - `JOB_STATE_QUEUED` indicates that the job has
1840	// been created but is being
1841	// delayed until launch. Jobs that are queued may only transition
1842	// to
1843	// `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.
1844	ExecutionStageState string `json:"executionStageState,omitempty"`
1845
1846	// ForceSendFields is a list of field names (e.g. "CurrentStateTime") to
1847	// unconditionally include in API requests. By default, fields with
1848	// empty values are omitted from API requests. However, any non-pointer,
1849	// non-interface field appearing in ForceSendFields will be sent to the
1850	// server regardless of whether the field is empty or not. This may be
1851	// used to include empty fields in Patch requests.
1852	ForceSendFields []string `json:"-"`
1853
1854	// NullFields is a list of field names (e.g. "CurrentStateTime") to
1855	// include in API requests with the JSON null value. By default, fields
1856	// with empty values are omitted from API requests. However, any field
1857	// with an empty value appearing in NullFields will be sent to the
1858	// server as null. It is an error if a field in this list has a
1859	// non-empty value. This may be used to include null fields in Patch
1860	// requests.
1861	NullFields []string `json:"-"`
1862}
1863
1864func (s *ExecutionStageState) MarshalJSON() ([]byte, error) {
1865	type NoMethod ExecutionStageState
1866	raw := NoMethod(*s)
1867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1868}
1869
1870// ExecutionStageSummary: Description of the composing transforms,
1871// names/ids, and input/outputs of a
1872// stage of execution.  Some composing transforms and sources may have
1873// been
1874// generated by the Dataflow service during execution planning.
1875type ExecutionStageSummary struct {
1876	// ComponentSource: Collections produced and consumed by component
1877	// transforms of this stage.
1878	ComponentSource []*ComponentSource `json:"componentSource,omitempty"`
1879
1880	// ComponentTransform: Transforms that comprise this execution stage.
1881	ComponentTransform []*ComponentTransform `json:"componentTransform,omitempty"`
1882
1883	// Id: Dataflow service generated id for this stage.
1884	Id string `json:"id,omitempty"`
1885
1886	// InputSource: Input sources for this stage.
1887	InputSource []*StageSource `json:"inputSource,omitempty"`
1888
1889	// Kind: Type of tranform this stage is executing.
1890	//
1891	// Possible values:
1892	//   "UNKNOWN_KIND" - Unrecognized transform type.
1893	//   "PAR_DO_KIND" - ParDo transform.
1894	//   "GROUP_BY_KEY_KIND" - Group By Key transform.
1895	//   "FLATTEN_KIND" - Flatten transform.
1896	//   "READ_KIND" - Read transform.
1897	//   "WRITE_KIND" - Write transform.
1898	//   "CONSTANT_KIND" - Constructs from a constant value, such as with
1899	// Create.of.
1900	//   "SINGLETON_KIND" - Creates a Singleton view of a collection.
1901	//   "SHUFFLE_KIND" - Opening or closing a shuffle session, often as
1902	// part of a GroupByKey.
1903	Kind string `json:"kind,omitempty"`
1904
1905	// Name: Dataflow service generated name for this stage.
1906	Name string `json:"name,omitempty"`
1907
1908	// OutputSource: Output sources for this stage.
1909	OutputSource []*StageSource `json:"outputSource,omitempty"`
1910
1911	// ForceSendFields is a list of field names (e.g. "ComponentSource") to
1912	// unconditionally include in API requests. By default, fields with
1913	// empty values are omitted from API requests. However, any non-pointer,
1914	// non-interface field appearing in ForceSendFields will be sent to the
1915	// server regardless of whether the field is empty or not. This may be
1916	// used to include empty fields in Patch requests.
1917	ForceSendFields []string `json:"-"`
1918
1919	// NullFields is a list of field names (e.g. "ComponentSource") to
1920	// include in API requests with the JSON null value. By default, fields
1921	// with empty values are omitted from API requests. However, any field
1922	// with an empty value appearing in NullFields will be sent to the
1923	// server as null. It is an error if a field in this list has a
1924	// non-empty value. This may be used to include null fields in Patch
1925	// requests.
1926	NullFields []string `json:"-"`
1927}
1928
1929func (s *ExecutionStageSummary) MarshalJSON() ([]byte, error) {
1930	type NoMethod ExecutionStageSummary
1931	raw := NoMethod(*s)
1932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1933}
1934
1935// FailedLocation: Indicates which [regional
1936// endpoint]
1937// (https://cloud.google.com/dataflow/docs/concepts/regional-en
1938// dpoints) failed
1939// to respond to a request for data.
1940type FailedLocation struct {
1941	// Name: The name of the [regional
1942	// endpoint]
1943	// (https://cloud.google.com/dataflow/docs/concepts/regional-en
1944	// dpoints) that
1945	// failed to respond.
1946	Name string `json:"name,omitempty"`
1947
1948	// ForceSendFields is a list of field names (e.g. "Name") to
1949	// unconditionally include in API requests. By default, fields with
1950	// empty values are omitted from API requests. However, any non-pointer,
1951	// non-interface field appearing in ForceSendFields will be sent to the
1952	// server regardless of whether the field is empty or not. This may be
1953	// used to include empty fields in Patch requests.
1954	ForceSendFields []string `json:"-"`
1955
1956	// NullFields is a list of field names (e.g. "Name") to include in API
1957	// requests with the JSON null value. By default, fields with empty
1958	// values are omitted from API requests. However, any field with an
1959	// empty value appearing in NullFields will be sent to the server as
1960	// null. It is an error if a field in this list has a non-empty value.
1961	// This may be used to include null fields in Patch requests.
1962	NullFields []string `json:"-"`
1963}
1964
1965func (s *FailedLocation) MarshalJSON() ([]byte, error) {
1966	type NoMethod FailedLocation
1967	raw := NoMethod(*s)
1968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1969}
1970
1971// FileIODetails: Metadata for a File connector used by the job.
1972type FileIODetails struct {
1973	// FilePattern: File Pattern used to access files by the connector.
1974	FilePattern string `json:"filePattern,omitempty"`
1975
1976	// ForceSendFields is a list of field names (e.g. "FilePattern") to
1977	// unconditionally include in API requests. By default, fields with
1978	// empty values are omitted from API requests. However, any non-pointer,
1979	// non-interface field appearing in ForceSendFields will be sent to the
1980	// server regardless of whether the field is empty or not. This may be
1981	// used to include empty fields in Patch requests.
1982	ForceSendFields []string `json:"-"`
1983
1984	// NullFields is a list of field names (e.g. "FilePattern") to include
1985	// in API requests with the JSON null value. By default, fields with
1986	// empty values are omitted from API requests. However, any field with
1987	// an empty value appearing in NullFields will be sent to the server as
1988	// null. It is an error if a field in this list has a non-empty value.
1989	// This may be used to include null fields in Patch requests.
1990	NullFields []string `json:"-"`
1991}
1992
1993func (s *FileIODetails) MarshalJSON() ([]byte, error) {
1994	type NoMethod FileIODetails
1995	raw := NoMethod(*s)
1996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1997}
1998
1999// FlattenInstruction: An instruction that copies its inputs (zero or
2000// more) to its (single) output.
2001type FlattenInstruction struct {
2002	// Inputs: Describes the inputs to the flatten instruction.
2003	Inputs []*InstructionInput `json:"inputs,omitempty"`
2004
2005	// ForceSendFields is a list of field names (e.g. "Inputs") to
2006	// unconditionally include in API requests. By default, fields with
2007	// empty values are omitted from API requests. However, any non-pointer,
2008	// non-interface field appearing in ForceSendFields will be sent to the
2009	// server regardless of whether the field is empty or not. This may be
2010	// used to include empty fields in Patch requests.
2011	ForceSendFields []string `json:"-"`
2012
2013	// NullFields is a list of field names (e.g. "Inputs") to include in API
2014	// requests with the JSON null value. By default, fields with empty
2015	// values are omitted from API requests. However, any field with an
2016	// empty value appearing in NullFields will be sent to the server as
2017	// null. It is an error if a field in this list has a non-empty value.
2018	// This may be used to include null fields in Patch requests.
2019	NullFields []string `json:"-"`
2020}
2021
2022func (s *FlattenInstruction) MarshalJSON() ([]byte, error) {
2023	type NoMethod FlattenInstruction
2024	raw := NoMethod(*s)
2025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2026}
2027
2028// FloatingPointList: A metric value representing a list of floating
2029// point numbers.
2030type FloatingPointList struct {
2031	// Elements: Elements of the list.
2032	Elements []float64 `json:"elements,omitempty"`
2033
2034	// ForceSendFields is a list of field names (e.g. "Elements") to
2035	// unconditionally include in API requests. By default, fields with
2036	// empty values are omitted from API requests. However, any non-pointer,
2037	// non-interface field appearing in ForceSendFields will be sent to the
2038	// server regardless of whether the field is empty or not. This may be
2039	// used to include empty fields in Patch requests.
2040	ForceSendFields []string `json:"-"`
2041
2042	// NullFields is a list of field names (e.g. "Elements") to include in
2043	// API requests with the JSON null value. By default, fields with empty
2044	// values are omitted from API requests. However, any field with an
2045	// empty value appearing in NullFields will be sent to the server as
2046	// null. It is an error if a field in this list has a non-empty value.
2047	// This may be used to include null fields in Patch requests.
2048	NullFields []string `json:"-"`
2049}
2050
2051func (s *FloatingPointList) MarshalJSON() ([]byte, error) {
2052	type NoMethod FloatingPointList
2053	raw := NoMethod(*s)
2054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2055}
2056
2057// FloatingPointMean: A representation of a floating point mean metric
2058// contribution.
2059type FloatingPointMean struct {
2060	// Count: The number of values being aggregated.
2061	Count *SplitInt64 `json:"count,omitempty"`
2062
2063	// Sum: The sum of all values being aggregated.
2064	Sum float64 `json:"sum,omitempty"`
2065
2066	// ForceSendFields is a list of field names (e.g. "Count") to
2067	// unconditionally include in API requests. By default, fields with
2068	// empty values are omitted from API requests. However, any non-pointer,
2069	// non-interface field appearing in ForceSendFields will be sent to the
2070	// server regardless of whether the field is empty or not. This may be
2071	// used to include empty fields in Patch requests.
2072	ForceSendFields []string `json:"-"`
2073
2074	// NullFields is a list of field names (e.g. "Count") to include in API
2075	// requests with the JSON null value. By default, fields with empty
2076	// values are omitted from API requests. However, any field with an
2077	// empty value appearing in NullFields will be sent to the server as
2078	// null. It is an error if a field in this list has a non-empty value.
2079	// This may be used to include null fields in Patch requests.
2080	NullFields []string `json:"-"`
2081}
2082
2083func (s *FloatingPointMean) MarshalJSON() ([]byte, error) {
2084	type NoMethod FloatingPointMean
2085	raw := NoMethod(*s)
2086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2087}
2088
2089func (s *FloatingPointMean) UnmarshalJSON(data []byte) error {
2090	type NoMethod FloatingPointMean
2091	var s1 struct {
2092		Sum gensupport.JSONFloat64 `json:"sum"`
2093		*NoMethod
2094	}
2095	s1.NoMethod = (*NoMethod)(s)
2096	if err := json.Unmarshal(data, &s1); err != nil {
2097		return err
2098	}
2099	s.Sum = float64(s1.Sum)
2100	return nil
2101}
2102
2103// GetDebugConfigRequest: Request to get updated debug configuration for
2104// component.
2105type GetDebugConfigRequest struct {
2106	// ComponentId: The internal component id for which debug configuration
2107	// is
2108	// requested.
2109	ComponentId string `json:"componentId,omitempty"`
2110
2111	// Location: The [regional
2112	// endpoint]
2113	// (https://cloud.google.com/dataflow/docs/concepts/regional-en
2114	// dpoints) that
2115	// contains the job specified by job_id.
2116	Location string `json:"location,omitempty"`
2117
2118	// WorkerId: The worker id, i.e., VM hostname.
2119	WorkerId string `json:"workerId,omitempty"`
2120
2121	// ForceSendFields is a list of field names (e.g. "ComponentId") to
2122	// unconditionally include in API requests. By default, fields with
2123	// empty values are omitted from API requests. However, any non-pointer,
2124	// non-interface field appearing in ForceSendFields will be sent to the
2125	// server regardless of whether the field is empty or not. This may be
2126	// used to include empty fields in Patch requests.
2127	ForceSendFields []string `json:"-"`
2128
2129	// NullFields is a list of field names (e.g. "ComponentId") to include
2130	// in API requests with the JSON null value. By default, fields with
2131	// empty values are omitted from API requests. However, any field with
2132	// an empty value appearing in NullFields will be sent to the server as
2133	// null. It is an error if a field in this list has a non-empty value.
2134	// This may be used to include null fields in Patch requests.
2135	NullFields []string `json:"-"`
2136}
2137
2138func (s *GetDebugConfigRequest) MarshalJSON() ([]byte, error) {
2139	type NoMethod GetDebugConfigRequest
2140	raw := NoMethod(*s)
2141	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2142}
2143
2144// GetDebugConfigResponse: Response to a get debug configuration
2145// request.
2146type GetDebugConfigResponse struct {
2147	// Config: The encoded debug configuration for the requested component.
2148	Config string `json:"config,omitempty"`
2149
2150	// ServerResponse contains the HTTP response code and headers from the
2151	// server.
2152	googleapi.ServerResponse `json:"-"`
2153
2154	// ForceSendFields is a list of field names (e.g. "Config") to
2155	// unconditionally include in API requests. By default, fields with
2156	// empty values are omitted from API requests. However, any non-pointer,
2157	// non-interface field appearing in ForceSendFields will be sent to the
2158	// server regardless of whether the field is empty or not. This may be
2159	// used to include empty fields in Patch requests.
2160	ForceSendFields []string `json:"-"`
2161
2162	// NullFields is a list of field names (e.g. "Config") to include in API
2163	// requests with the JSON null value. By default, fields with empty
2164	// values are omitted from API requests. However, any field with an
2165	// empty value appearing in NullFields will be sent to the server as
2166	// null. It is an error if a field in this list has a non-empty value.
2167	// This may be used to include null fields in Patch requests.
2168	NullFields []string `json:"-"`
2169}
2170
2171func (s *GetDebugConfigResponse) MarshalJSON() ([]byte, error) {
2172	type NoMethod GetDebugConfigResponse
2173	raw := NoMethod(*s)
2174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2175}
2176
2177// GetTemplateResponse: The response to a GetTemplate request.
2178type GetTemplateResponse struct {
2179	// Metadata: The template metadata describing the template name,
2180	// available
2181	// parameters, etc.
2182	Metadata *TemplateMetadata `json:"metadata,omitempty"`
2183
2184	// Status: The status of the get template request. Any problems with
2185	// the
2186	// request will be indicated in the error_details.
2187	Status *Status `json:"status,omitempty"`
2188
2189	// ServerResponse contains the HTTP response code and headers from the
2190	// server.
2191	googleapi.ServerResponse `json:"-"`
2192
2193	// ForceSendFields is a list of field names (e.g. "Metadata") to
2194	// unconditionally include in API requests. By default, fields with
2195	// empty values are omitted from API requests. However, any non-pointer,
2196	// non-interface field appearing in ForceSendFields will be sent to the
2197	// server regardless of whether the field is empty or not. This may be
2198	// used to include empty fields in Patch requests.
2199	ForceSendFields []string `json:"-"`
2200
2201	// NullFields is a list of field names (e.g. "Metadata") to include in
2202	// API requests with the JSON null value. By default, fields with empty
2203	// values are omitted from API requests. However, any field with an
2204	// empty value appearing in NullFields will be sent to the server as
2205	// null. It is an error if a field in this list has a non-empty value.
2206	// This may be used to include null fields in Patch requests.
2207	NullFields []string `json:"-"`
2208}
2209
2210func (s *GetTemplateResponse) MarshalJSON() ([]byte, error) {
2211	type NoMethod GetTemplateResponse
2212	raw := NoMethod(*s)
2213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2214}
2215
2216// Histogram: Histogram of value counts for a distribution.
2217//
2218// Buckets have an inclusive lower bound and exclusive upper bound and
2219// use
2220// "1,2,5 bucketing": The first bucket range is from [0,1) and all
2221// subsequent
2222// bucket boundaries are powers of ten multiplied by 1, 2, or 5. Thus,
2223// bucket
2224// boundaries are 0, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000,
2225// ...
2226// Negative values are not supported.
2227type Histogram struct {
2228	// BucketCounts: Counts of values in each bucket. For efficiency, prefix
2229	// and trailing
2230	// buckets with count = 0 are elided. Buckets can store the full range
2231	// of
2232	// values of an unsigned long, with ULLONG_MAX falling into the 59th
2233	// bucket
2234	// with range [1e19, 2e19).
2235	BucketCounts googleapi.Int64s `json:"bucketCounts,omitempty"`
2236
2237	// FirstBucketOffset: Starting index of first stored bucket. The
2238	// non-inclusive upper-bound of
2239	// the ith bucket is given by:
2240	//   pow(10,(i-first_bucket_offset)/3) *
2241	// (1,2,5)[(i-first_bucket_offset)%3]
2242	FirstBucketOffset int64 `json:"firstBucketOffset,omitempty"`
2243
2244	// ForceSendFields is a list of field names (e.g. "BucketCounts") to
2245	// unconditionally include in API requests. By default, fields with
2246	// empty values are omitted from API requests. However, any non-pointer,
2247	// non-interface field appearing in ForceSendFields will be sent to the
2248	// server regardless of whether the field is empty or not. This may be
2249	// used to include empty fields in Patch requests.
2250	ForceSendFields []string `json:"-"`
2251
2252	// NullFields is a list of field names (e.g. "BucketCounts") to include
2253	// in API requests with the JSON null value. By default, fields with
2254	// empty values are omitted from API requests. However, any field with
2255	// an empty value appearing in NullFields will be sent to the server as
2256	// null. It is an error if a field in this list has a non-empty value.
2257	// This may be used to include null fields in Patch requests.
2258	NullFields []string `json:"-"`
2259}
2260
2261func (s *Histogram) MarshalJSON() ([]byte, error) {
2262	type NoMethod Histogram
2263	raw := NoMethod(*s)
2264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2265}
2266
2267// HotKeyDetection: Proto describing a hot key detected on a given
2268// WorkItem.
2269type HotKeyDetection struct {
2270	// HotKeyAge: The age of the hot key measured from when it was first
2271	// detected.
2272	HotKeyAge string `json:"hotKeyAge,omitempty"`
2273
2274	// SystemName: System-defined name of the step containing this hot
2275	// key.
2276	// Unique across the workflow.
2277	SystemName string `json:"systemName,omitempty"`
2278
2279	// UserStepName: User-provided name of the step that contains this hot
2280	// key.
2281	UserStepName string `json:"userStepName,omitempty"`
2282
2283	// ForceSendFields is a list of field names (e.g. "HotKeyAge") to
2284	// unconditionally include in API requests. By default, fields with
2285	// empty values are omitted from API requests. However, any non-pointer,
2286	// non-interface field appearing in ForceSendFields will be sent to the
2287	// server regardless of whether the field is empty or not. This may be
2288	// used to include empty fields in Patch requests.
2289	ForceSendFields []string `json:"-"`
2290
2291	// NullFields is a list of field names (e.g. "HotKeyAge") to include in
2292	// API requests with the JSON null value. By default, fields with empty
2293	// values are omitted from API requests. However, any field with an
2294	// empty value appearing in NullFields will be sent to the server as
2295	// null. It is an error if a field in this list has a non-empty value.
2296	// This may be used to include null fields in Patch requests.
2297	NullFields []string `json:"-"`
2298}
2299
2300func (s *HotKeyDetection) MarshalJSON() ([]byte, error) {
2301	type NoMethod HotKeyDetection
2302	raw := NoMethod(*s)
2303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2304}
2305
2306// InstructionInput: An input of an instruction, as a reference to an
2307// output of a
2308// producer instruction.
2309type InstructionInput struct {
2310	// OutputNum: The output index (origin zero) within the producer.
2311	OutputNum int64 `json:"outputNum,omitempty"`
2312
2313	// ProducerInstructionIndex: The index (origin zero) of the parallel
2314	// instruction that produces
2315	// the output to be consumed by this input.  This index is relative
2316	// to the list of instructions in this input's instruction's
2317	// containing MapTask.
2318	ProducerInstructionIndex int64 `json:"producerInstructionIndex,omitempty"`
2319
2320	// ForceSendFields is a list of field names (e.g. "OutputNum") to
2321	// unconditionally include in API requests. By default, fields with
2322	// empty values are omitted from API requests. However, any non-pointer,
2323	// non-interface field appearing in ForceSendFields will be sent to the
2324	// server regardless of whether the field is empty or not. This may be
2325	// used to include empty fields in Patch requests.
2326	ForceSendFields []string `json:"-"`
2327
2328	// NullFields is a list of field names (e.g. "OutputNum") to include in
2329	// API requests with the JSON null value. By default, fields with empty
2330	// values are omitted from API requests. However, any field with an
2331	// empty value appearing in NullFields will be sent to the server as
2332	// null. It is an error if a field in this list has a non-empty value.
2333	// This may be used to include null fields in Patch requests.
2334	NullFields []string `json:"-"`
2335}
2336
2337func (s *InstructionInput) MarshalJSON() ([]byte, error) {
2338	type NoMethod InstructionInput
2339	raw := NoMethod(*s)
2340	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2341}
2342
2343// InstructionOutput: An output of an instruction.
2344type InstructionOutput struct {
2345	// Codec: The codec to use to encode data being written via this output.
2346	Codec googleapi.RawMessage `json:"codec,omitempty"`
2347
2348	// Name: The user-provided name of this output.
2349	Name string `json:"name,omitempty"`
2350
2351	// OnlyCountKeyBytes: For system-generated byte and mean byte metrics,
2352	// certain instructions
2353	// should only report the key size.
2354	OnlyCountKeyBytes bool `json:"onlyCountKeyBytes,omitempty"`
2355
2356	// OnlyCountValueBytes: For system-generated byte and mean byte metrics,
2357	// certain instructions
2358	// should only report the value size.
2359	OnlyCountValueBytes bool `json:"onlyCountValueBytes,omitempty"`
2360
2361	// OriginalName: System-defined name for this output in the original
2362	// workflow graph.
2363	// Outputs that do not contribute to an original instruction do not set
2364	// this.
2365	OriginalName string `json:"originalName,omitempty"`
2366
2367	// SystemName: System-defined name of this output.
2368	// Unique across the workflow.
2369	SystemName string `json:"systemName,omitempty"`
2370
2371	// ForceSendFields is a list of field names (e.g. "Codec") to
2372	// unconditionally include in API requests. By default, fields with
2373	// empty values are omitted from API requests. However, any non-pointer,
2374	// non-interface field appearing in ForceSendFields will be sent to the
2375	// server regardless of whether the field is empty or not. This may be
2376	// used to include empty fields in Patch requests.
2377	ForceSendFields []string `json:"-"`
2378
2379	// NullFields is a list of field names (e.g. "Codec") to include in API
2380	// requests with the JSON null value. By default, fields with empty
2381	// values are omitted from API requests. However, any field with an
2382	// empty value appearing in NullFields will be sent to the server as
2383	// null. It is an error if a field in this list has a non-empty value.
2384	// This may be used to include null fields in Patch requests.
2385	NullFields []string `json:"-"`
2386}
2387
2388func (s *InstructionOutput) MarshalJSON() ([]byte, error) {
2389	type NoMethod InstructionOutput
2390	raw := NoMethod(*s)
2391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2392}
2393
2394// IntegerGauge: A metric value representing temporal values of a
2395// variable.
2396type IntegerGauge struct {
2397	// Timestamp: The time at which this value was measured. Measured as
2398	// msecs from epoch.
2399	Timestamp string `json:"timestamp,omitempty"`
2400
2401	// Value: The value of the variable represented by this gauge.
2402	Value *SplitInt64 `json:"value,omitempty"`
2403
2404	// ForceSendFields is a list of field names (e.g. "Timestamp") to
2405	// unconditionally include in API requests. By default, fields with
2406	// empty values are omitted from API requests. However, any non-pointer,
2407	// non-interface field appearing in ForceSendFields will be sent to the
2408	// server regardless of whether the field is empty or not. This may be
2409	// used to include empty fields in Patch requests.
2410	ForceSendFields []string `json:"-"`
2411
2412	// NullFields is a list of field names (e.g. "Timestamp") to include in
2413	// API requests with the JSON null value. By default, fields with empty
2414	// values are omitted from API requests. However, any field with an
2415	// empty value appearing in NullFields will be sent to the server as
2416	// null. It is an error if a field in this list has a non-empty value.
2417	// This may be used to include null fields in Patch requests.
2418	NullFields []string `json:"-"`
2419}
2420
2421func (s *IntegerGauge) MarshalJSON() ([]byte, error) {
2422	type NoMethod IntegerGauge
2423	raw := NoMethod(*s)
2424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2425}
2426
2427// IntegerList: A metric value representing a list of integers.
2428type IntegerList struct {
2429	// Elements: Elements of the list.
2430	Elements []*SplitInt64 `json:"elements,omitempty"`
2431
2432	// ForceSendFields is a list of field names (e.g. "Elements") to
2433	// unconditionally include in API requests. By default, fields with
2434	// empty values are omitted from API requests. However, any non-pointer,
2435	// non-interface field appearing in ForceSendFields will be sent to the
2436	// server regardless of whether the field is empty or not. This may be
2437	// used to include empty fields in Patch requests.
2438	ForceSendFields []string `json:"-"`
2439
2440	// NullFields is a list of field names (e.g. "Elements") to include in
2441	// API requests with the JSON null value. By default, fields with empty
2442	// values are omitted from API requests. However, any field with an
2443	// empty value appearing in NullFields will be sent to the server as
2444	// null. It is an error if a field in this list has a non-empty value.
2445	// This may be used to include null fields in Patch requests.
2446	NullFields []string `json:"-"`
2447}
2448
2449func (s *IntegerList) MarshalJSON() ([]byte, error) {
2450	type NoMethod IntegerList
2451	raw := NoMethod(*s)
2452	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2453}
2454
2455// IntegerMean: A representation of an integer mean metric contribution.
2456type IntegerMean struct {
2457	// Count: The number of values being aggregated.
2458	Count *SplitInt64 `json:"count,omitempty"`
2459
2460	// Sum: The sum of all values being aggregated.
2461	Sum *SplitInt64 `json:"sum,omitempty"`
2462
2463	// ForceSendFields is a list of field names (e.g. "Count") to
2464	// unconditionally include in API requests. By default, fields with
2465	// empty values are omitted from API requests. However, any non-pointer,
2466	// non-interface field appearing in ForceSendFields will be sent to the
2467	// server regardless of whether the field is empty or not. This may be
2468	// used to include empty fields in Patch requests.
2469	ForceSendFields []string `json:"-"`
2470
2471	// NullFields is a list of field names (e.g. "Count") to include in API
2472	// requests with the JSON null value. By default, fields with empty
2473	// values are omitted from API requests. However, any field with an
2474	// empty value appearing in NullFields will be sent to the server as
2475	// null. It is an error if a field in this list has a non-empty value.
2476	// This may be used to include null fields in Patch requests.
2477	NullFields []string `json:"-"`
2478}
2479
2480func (s *IntegerMean) MarshalJSON() ([]byte, error) {
2481	type NoMethod IntegerMean
2482	raw := NoMethod(*s)
2483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2484}
2485
2486// Job: Defines a job to be run by the Cloud Dataflow service.
2487type Job struct {
2488	// ClientRequestId: The client's unique identifier of the job, re-used
2489	// across retried attempts.
2490	// If this field is set, the service will ensure its uniqueness.
2491	// The request to create a job will fail if the service has knowledge of
2492	// a
2493	// previously submitted job with the same client's ID and job name.
2494	// The caller may use this field to ensure idempotence of job
2495	// creation across retried attempts to create a job.
2496	// By default, the field is empty and, in that case, the service ignores
2497	// it.
2498	ClientRequestId string `json:"clientRequestId,omitempty"`
2499
2500	// CreateTime: The timestamp when the job was initially created.
2501	// Immutable and set by the
2502	// Cloud Dataflow service.
2503	CreateTime string `json:"createTime,omitempty"`
2504
2505	// CreatedFromSnapshotId: If this is specified, the job's initial state
2506	// is populated from the given
2507	// snapshot.
2508	CreatedFromSnapshotId string `json:"createdFromSnapshotId,omitempty"`
2509
2510	// CurrentState: The current state of the job.
2511	//
2512	// Jobs are created in the `JOB_STATE_STOPPED` state unless
2513	// otherwise
2514	// specified.
2515	//
2516	// A job in the `JOB_STATE_RUNNING` state may asynchronously enter
2517	// a
2518	// terminal state. After a job has reached a terminal state, no
2519	// further state updates may be made.
2520	//
2521	// This field may be mutated by the Cloud Dataflow service;
2522	// callers cannot mutate it.
2523	//
2524	// Possible values:
2525	//   "JOB_STATE_UNKNOWN" - The job's run state isn't specified.
2526	//   "JOB_STATE_STOPPED" - `JOB_STATE_STOPPED` indicates that the job
2527	// has not
2528	// yet started to run.
2529	//   "JOB_STATE_RUNNING" - `JOB_STATE_RUNNING` indicates that the job is
2530	// currently running.
2531	//   "JOB_STATE_DONE" - `JOB_STATE_DONE` indicates that the job has
2532	// successfully completed.
2533	// This is a terminal job state.  This state may be set by the Cloud
2534	// Dataflow
2535	// service, as a transition from `JOB_STATE_RUNNING`. It may also be set
2536	// via a
2537	// Cloud Dataflow `UpdateJob` call, if the job has not yet reached a
2538	// terminal
2539	// state.
2540	//   "JOB_STATE_FAILED" - `JOB_STATE_FAILED` indicates that the job has
2541	// failed.  This is a
2542	// terminal job state.  This state may only be set by the Cloud
2543	// Dataflow
2544	// service, and only as a transition from `JOB_STATE_RUNNING`.
2545	//   "JOB_STATE_CANCELLED" - `JOB_STATE_CANCELLED` indicates that the
2546	// job has been explicitly
2547	// cancelled. This is a terminal job state. This state may only be
2548	// set via a Cloud Dataflow `UpdateJob` call, and only if the job has
2549	// not
2550	// yet reached another terminal state.
2551	//   "JOB_STATE_UPDATED" - `JOB_STATE_UPDATED` indicates that the job
2552	// was successfully updated,
2553	// meaning that this job was stopped and another job was started,
2554	// inheriting
2555	// state from this one. This is a terminal job state. This state may
2556	// only be
2557	// set by the Cloud Dataflow service, and only as a transition
2558	// from
2559	// `JOB_STATE_RUNNING`.
2560	//   "JOB_STATE_DRAINING" - `JOB_STATE_DRAINING` indicates that the job
2561	// is in the process of draining.
2562	// A draining job has stopped pulling from its input sources and is
2563	// processing
2564	// any data that remains in-flight. This state may be set via a Cloud
2565	// Dataflow
2566	// `UpdateJob` call, but only as a transition from `JOB_STATE_RUNNING`.
2567	// Jobs
2568	// that are draining may only transition to
2569	// `JOB_STATE_DRAINED`,
2570	// `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.
2571	//   "JOB_STATE_DRAINED" - `JOB_STATE_DRAINED` indicates that the job
2572	// has been drained.
2573	// A drained job terminated by stopping pulling from its input sources
2574	// and
2575	// processing any data that remained in-flight when draining was
2576	// requested.
2577	// This state is a terminal state, may only be set by the Cloud
2578	// Dataflow
2579	// service, and only as a transition from `JOB_STATE_DRAINING`.
2580	//   "JOB_STATE_PENDING" - `JOB_STATE_PENDING` indicates that the job
2581	// has been created but is not yet
2582	// running.  Jobs that are pending may only transition to
2583	// `JOB_STATE_RUNNING`,
2584	// or `JOB_STATE_FAILED`.
2585	//   "JOB_STATE_CANCELLING" - `JOB_STATE_CANCELLING` indicates that the
2586	// job has been explicitly cancelled
2587	// and is in the process of stopping.  Jobs that are cancelling may
2588	// only
2589	// transition to `JOB_STATE_CANCELLED` or `JOB_STATE_FAILED`.
2590	//   "JOB_STATE_QUEUED" - `JOB_STATE_QUEUED` indicates that the job has
2591	// been created but is being
2592	// delayed until launch. Jobs that are queued may only transition
2593	// to
2594	// `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.
2595	CurrentState string `json:"currentState,omitempty"`
2596
2597	// CurrentStateTime: The timestamp associated with the current state.
2598	CurrentStateTime string `json:"currentStateTime,omitempty"`
2599
2600	// Environment: The environment for the job.
2601	Environment *Environment `json:"environment,omitempty"`
2602
2603	// ExecutionInfo: Deprecated.
2604	ExecutionInfo *JobExecutionInfo `json:"executionInfo,omitempty"`
2605
2606	// Id: The unique ID of this job.
2607	//
2608	// This field is set by the Cloud Dataflow service when the Job
2609	// is
2610	// created, and is immutable for the life of the job.
2611	Id string `json:"id,omitempty"`
2612
2613	// JobMetadata: This field is populated by the Dataflow service to
2614	// support filtering jobs
2615	// by the metadata values provided here. Populated for ListJobs and all
2616	// GetJob
2617	// views SUMMARY and higher.
2618	JobMetadata *JobMetadata `json:"jobMetadata,omitempty"`
2619
2620	// Labels: User-defined labels for this job.
2621	//
2622	// The labels map can contain no more than 64 entries.  Entries of the
2623	// labels
2624	// map are UTF8 strings that comply with the following restrictions:
2625	//
2626	// * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
2627	// * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
2628	// * Both keys and values are additionally constrained to be <= 128
2629	// bytes in
2630	// size.
2631	Labels map[string]string `json:"labels,omitempty"`
2632
2633	// Location: The [regional
2634	// endpoint]
2635	// (https://cloud.google.com/dataflow/docs/concepts/regional-en
2636	// dpoints) that
2637	// contains this job.
2638	Location string `json:"location,omitempty"`
2639
2640	// Name: The user-specified Cloud Dataflow job name.
2641	//
2642	// Only one Job with a given name may exist in a project at any
2643	// given time. If a caller attempts to create a Job with the same
2644	// name as an already-existing Job, the attempt returns the
2645	// existing Job.
2646	//
2647	// The name must match the regular
2648	// expression
2649	// `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
2650	Name string `json:"name,omitempty"`
2651
2652	// PipelineDescription: Preliminary field: The format of this data may
2653	// change at any time.
2654	// A description of the user pipeline and stages through which it is
2655	// executed.
2656	// Created by Cloud Dataflow service.  Only retrieved
2657	// with
2658	// JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
2659	PipelineDescription *PipelineDescription `json:"pipelineDescription,omitempty"`
2660
2661	// ProjectId: The ID of the Cloud Platform project that the job belongs
2662	// to.
2663	ProjectId string `json:"projectId,omitempty"`
2664
2665	// ReplaceJobId: If this job is an update of an existing job, this field
2666	// is the job ID
2667	// of the job it replaced.
2668	//
2669	// When sending a `CreateJobRequest`, you can update a job by specifying
2670	// it
2671	// here. The job named here is stopped, and its intermediate state
2672	// is
2673	// transferred to this job.
2674	ReplaceJobId string `json:"replaceJobId,omitempty"`
2675
2676	// ReplacedByJobId: If another job is an update of this job (and thus,
2677	// this job is in
2678	// `JOB_STATE_UPDATED`), this field contains the ID of that job.
2679	ReplacedByJobId string `json:"replacedByJobId,omitempty"`
2680
2681	// RequestedState: The job's requested state.
2682	//
2683	// `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED`
2684	// and
2685	// `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob`
2686	// may
2687	// also be used to directly set a job's requested state
2688	// to
2689	// `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating
2690	// the
2691	// job if it has not already reached a terminal state.
2692	//
2693	// Possible values:
2694	//   "JOB_STATE_UNKNOWN" - The job's run state isn't specified.
2695	//   "JOB_STATE_STOPPED" - `JOB_STATE_STOPPED` indicates that the job
2696	// has not
2697	// yet started to run.
2698	//   "JOB_STATE_RUNNING" - `JOB_STATE_RUNNING` indicates that the job is
2699	// currently running.
2700	//   "JOB_STATE_DONE" - `JOB_STATE_DONE` indicates that the job has
2701	// successfully completed.
2702	// This is a terminal job state.  This state may be set by the Cloud
2703	// Dataflow
2704	// service, as a transition from `JOB_STATE_RUNNING`. It may also be set
2705	// via a
2706	// Cloud Dataflow `UpdateJob` call, if the job has not yet reached a
2707	// terminal
2708	// state.
2709	//   "JOB_STATE_FAILED" - `JOB_STATE_FAILED` indicates that the job has
2710	// failed.  This is a
2711	// terminal job state.  This state may only be set by the Cloud
2712	// Dataflow
2713	// service, and only as a transition from `JOB_STATE_RUNNING`.
2714	//   "JOB_STATE_CANCELLED" - `JOB_STATE_CANCELLED` indicates that the
2715	// job has been explicitly
2716	// cancelled. This is a terminal job state. This state may only be
2717	// set via a Cloud Dataflow `UpdateJob` call, and only if the job has
2718	// not
2719	// yet reached another terminal state.
2720	//   "JOB_STATE_UPDATED" - `JOB_STATE_UPDATED` indicates that the job
2721	// was successfully updated,
2722	// meaning that this job was stopped and another job was started,
2723	// inheriting
2724	// state from this one. This is a terminal job state. This state may
2725	// only be
2726	// set by the Cloud Dataflow service, and only as a transition
2727	// from
2728	// `JOB_STATE_RUNNING`.
2729	//   "JOB_STATE_DRAINING" - `JOB_STATE_DRAINING` indicates that the job
2730	// is in the process of draining.
2731	// A draining job has stopped pulling from its input sources and is
2732	// processing
2733	// any data that remains in-flight. This state may be set via a Cloud
2734	// Dataflow
2735	// `UpdateJob` call, but only as a transition from `JOB_STATE_RUNNING`.
2736	// Jobs
2737	// that are draining may only transition to
2738	// `JOB_STATE_DRAINED`,
2739	// `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.
2740	//   "JOB_STATE_DRAINED" - `JOB_STATE_DRAINED` indicates that the job
2741	// has been drained.
2742	// A drained job terminated by stopping pulling from its input sources
2743	// and
2744	// processing any data that remained in-flight when draining was
2745	// requested.
2746	// This state is a terminal state, may only be set by the Cloud
2747	// Dataflow
2748	// service, and only as a transition from `JOB_STATE_DRAINING`.
2749	//   "JOB_STATE_PENDING" - `JOB_STATE_PENDING` indicates that the job
2750	// has been created but is not yet
2751	// running.  Jobs that are pending may only transition to
2752	// `JOB_STATE_RUNNING`,
2753	// or `JOB_STATE_FAILED`.
2754	//   "JOB_STATE_CANCELLING" - `JOB_STATE_CANCELLING` indicates that the
2755	// job has been explicitly cancelled
2756	// and is in the process of stopping.  Jobs that are cancelling may
2757	// only
2758	// transition to `JOB_STATE_CANCELLED` or `JOB_STATE_FAILED`.
2759	//   "JOB_STATE_QUEUED" - `JOB_STATE_QUEUED` indicates that the job has
2760	// been created but is being
2761	// delayed until launch. Jobs that are queued may only transition
2762	// to
2763	// `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.
2764	RequestedState string `json:"requestedState,omitempty"`
2765
2766	// StageStates: This field may be mutated by the Cloud Dataflow
2767	// service;
2768	// callers cannot mutate it.
2769	StageStates []*ExecutionStageState `json:"stageStates,omitempty"`
2770
2771	// StartTime: The timestamp when the job was started (transitioned to
2772	// JOB_STATE_PENDING).
2773	// Flexible resource scheduling jobs are started with some delay after
2774	// job
2775	// creation, so start_time is unset before start and is updated when
2776	// the
2777	// job is started by the Cloud Dataflow service. For other jobs,
2778	// start_time
2779	// always equals to create_time and is immutable and set by the Cloud
2780	// Dataflow
2781	// service.
2782	StartTime string `json:"startTime,omitempty"`
2783
2784	// Steps: Exactly one of step or steps_location should be
2785	// specified.
2786	//
2787	// The top-level steps that constitute the entire job.
2788	Steps []*Step `json:"steps,omitempty"`
2789
2790	// StepsLocation: The GCS location where the steps are stored.
2791	StepsLocation string `json:"stepsLocation,omitempty"`
2792
2793	// TempFiles: A set of files the system should be aware of that are
2794	// used
2795	// for temporary storage. These temporary files will be
2796	// removed on job completion.
2797	// No duplicates are allowed.
2798	// No file patterns are supported.
2799	//
2800	// The supported files are:
2801	//
2802	// Google Cloud Storage:
2803	//
2804	//    storage.googleapis.com/{bucket}/{object}
2805	//    bucket.storage.googleapis.com/{object}
2806	TempFiles []string `json:"tempFiles,omitempty"`
2807
2808	// TransformNameMapping: The map of transform name prefixes of the job
2809	// to be replaced to the
2810	// corresponding name prefixes of the new job.
2811	TransformNameMapping map[string]string `json:"transformNameMapping,omitempty"`
2812
2813	// Type: The type of Cloud Dataflow job.
2814	//
2815	// Possible values:
2816	//   "JOB_TYPE_UNKNOWN" - The type of the job is unspecified, or
2817	// unknown.
2818	//   "JOB_TYPE_BATCH" - A batch job with a well-defined end point: data
2819	// is read, data is
2820	// processed, data is written, and the job is done.
2821	//   "JOB_TYPE_STREAMING" - A continuously streaming job with no end:
2822	// data is read,
2823	// processed, and written continuously.
2824	Type string `json:"type,omitempty"`
2825
2826	// ServerResponse contains the HTTP response code and headers from the
2827	// server.
2828	googleapi.ServerResponse `json:"-"`
2829
2830	// ForceSendFields is a list of field names (e.g. "ClientRequestId") to
2831	// unconditionally include in API requests. By default, fields with
2832	// empty values are omitted from API requests. However, any non-pointer,
2833	// non-interface field appearing in ForceSendFields will be sent to the
2834	// server regardless of whether the field is empty or not. This may be
2835	// used to include empty fields in Patch requests.
2836	ForceSendFields []string `json:"-"`
2837
2838	// NullFields is a list of field names (e.g. "ClientRequestId") to
2839	// include in API requests with the JSON null value. By default, fields
2840	// with empty values are omitted from API requests. However, any field
2841	// with an empty value appearing in NullFields will be sent to the
2842	// server as null. It is an error if a field in this list has a
2843	// non-empty value. This may be used to include null fields in Patch
2844	// requests.
2845	NullFields []string `json:"-"`
2846}
2847
2848func (s *Job) MarshalJSON() ([]byte, error) {
2849	type NoMethod Job
2850	raw := NoMethod(*s)
2851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2852}
2853
2854// JobExecutionInfo: Additional information about how a Cloud Dataflow
2855// job will be executed that
2856// isn't contained in the submitted job.
2857type JobExecutionInfo struct {
2858	// Stages: A mapping from each stage to the information about that
2859	// stage.
2860	Stages map[string]JobExecutionStageInfo `json:"stages,omitempty"`
2861
2862	// ForceSendFields is a list of field names (e.g. "Stages") to
2863	// unconditionally include in API requests. By default, fields with
2864	// empty values are omitted from API requests. However, any non-pointer,
2865	// non-interface field appearing in ForceSendFields will be sent to the
2866	// server regardless of whether the field is empty or not. This may be
2867	// used to include empty fields in Patch requests.
2868	ForceSendFields []string `json:"-"`
2869
2870	// NullFields is a list of field names (e.g. "Stages") to include in API
2871	// requests with the JSON null value. By default, fields with empty
2872	// values are omitted from API requests. However, any field with an
2873	// empty value appearing in NullFields will be sent to the server as
2874	// null. It is an error if a field in this list has a non-empty value.
2875	// This may be used to include null fields in Patch requests.
2876	NullFields []string `json:"-"`
2877}
2878
2879func (s *JobExecutionInfo) MarshalJSON() ([]byte, error) {
2880	type NoMethod JobExecutionInfo
2881	raw := NoMethod(*s)
2882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2883}
2884
2885// JobExecutionStageInfo: Contains information about how a
2886// particular
2887// google.dataflow.v1beta3.Step will be executed.
2888type JobExecutionStageInfo struct {
2889	// StepName: The steps associated with the execution stage.
2890	// Note that stages may have several steps, and that a given step
2891	// might be run by more than one stage.
2892	StepName []string `json:"stepName,omitempty"`
2893
2894	// ForceSendFields is a list of field names (e.g. "StepName") to
2895	// unconditionally include in API requests. By default, fields with
2896	// empty values are omitted from API requests. However, any non-pointer,
2897	// non-interface field appearing in ForceSendFields will be sent to the
2898	// server regardless of whether the field is empty or not. This may be
2899	// used to include empty fields in Patch requests.
2900	ForceSendFields []string `json:"-"`
2901
2902	// NullFields is a list of field names (e.g. "StepName") to include in
2903	// API requests with the JSON null value. By default, fields with empty
2904	// values are omitted from API requests. However, any field with an
2905	// empty value appearing in NullFields will be sent to the server as
2906	// null. It is an error if a field in this list has a non-empty value.
2907	// This may be used to include null fields in Patch requests.
2908	NullFields []string `json:"-"`
2909}
2910
2911func (s *JobExecutionStageInfo) MarshalJSON() ([]byte, error) {
2912	type NoMethod JobExecutionStageInfo
2913	raw := NoMethod(*s)
2914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2915}
2916
2917// JobMessage: A particular message pertaining to a Dataflow job.
2918type JobMessage struct {
2919	// Id: Deprecated.
2920	Id string `json:"id,omitempty"`
2921
2922	// MessageImportance: Importance level of the message.
2923	//
2924	// Possible values:
2925	//   "JOB_MESSAGE_IMPORTANCE_UNKNOWN" - The message importance isn't
2926	// specified, or is unknown.
2927	//   "JOB_MESSAGE_DEBUG" - The message is at the 'debug' level:
2928	// typically only useful for
2929	// software engineers working on the code the job is running.
2930	// Typically, Dataflow pipeline runners do not display log messages
2931	// at this level by default.
2932	//   "JOB_MESSAGE_DETAILED" - The message is at the 'detailed' level:
2933	// somewhat verbose, but
2934	// potentially useful to users.  Typically, Dataflow pipeline
2935	// runners do not display log messages at this level by default.
2936	// These messages are displayed by default in the Dataflow
2937	// monitoring UI.
2938	//   "JOB_MESSAGE_BASIC" - The message is at the 'basic' level: useful
2939	// for keeping
2940	// track of the execution of a Dataflow pipeline.  Typically,
2941	// Dataflow pipeline runners display log messages at this level
2942	// by
2943	// default, and these messages are displayed by default in the
2944	// Dataflow monitoring UI.
2945	//   "JOB_MESSAGE_WARNING" - The message is at the 'warning' level:
2946	// indicating a condition
2947	// pertaining to a job which may require human intervention.
2948	// Typically, Dataflow pipeline runners display log messages at
2949	// this
2950	// level by default, and these messages are displayed by default in
2951	// the Dataflow monitoring UI.
2952	//   "JOB_MESSAGE_ERROR" - The message is at the 'error' level:
2953	// indicating a condition
2954	// preventing a job from succeeding.  Typically, Dataflow
2955	// pipeline
2956	// runners display log messages at this level by default, and
2957	// these
2958	// messages are displayed by default in the Dataflow monitoring UI.
2959	MessageImportance string `json:"messageImportance,omitempty"`
2960
2961	// MessageText: The text of the message.
2962	MessageText string `json:"messageText,omitempty"`
2963
2964	// Time: The timestamp of the message.
2965	Time string `json:"time,omitempty"`
2966
2967	// ForceSendFields is a list of field names (e.g. "Id") to
2968	// unconditionally include in API requests. By default, fields with
2969	// empty values are omitted from API requests. However, any non-pointer,
2970	// non-interface field appearing in ForceSendFields will be sent to the
2971	// server regardless of whether the field is empty or not. This may be
2972	// used to include empty fields in Patch requests.
2973	ForceSendFields []string `json:"-"`
2974
2975	// NullFields is a list of field names (e.g. "Id") to include in API
2976	// requests with the JSON null value. By default, fields with empty
2977	// values are omitted from API requests. However, any field with an
2978	// empty value appearing in NullFields will be sent to the server as
2979	// null. It is an error if a field in this list has a non-empty value.
2980	// This may be used to include null fields in Patch requests.
2981	NullFields []string `json:"-"`
2982}
2983
2984func (s *JobMessage) MarshalJSON() ([]byte, error) {
2985	type NoMethod JobMessage
2986	raw := NoMethod(*s)
2987	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2988}
2989
2990// JobMetadata: Metadata available primarily for filtering jobs. Will be
2991// included in the
2992// ListJob response and Job SUMMARY view.
2993type JobMetadata struct {
2994	// BigTableDetails: Identification of a BigTable source used in the
2995	// Dataflow job.
2996	BigTableDetails []*BigTableIODetails `json:"bigTableDetails,omitempty"`
2997
2998	// BigqueryDetails: Identification of a BigQuery source used in the
2999	// Dataflow job.
3000	BigqueryDetails []*BigQueryIODetails `json:"bigqueryDetails,omitempty"`
3001
3002	// DatastoreDetails: Identification of a Datastore source used in the
3003	// Dataflow job.
3004	DatastoreDetails []*DatastoreIODetails `json:"datastoreDetails,omitempty"`
3005
3006	// FileDetails: Identification of a File source used in the Dataflow
3007	// job.
3008	FileDetails []*FileIODetails `json:"fileDetails,omitempty"`
3009
3010	// PubsubDetails: Identification of a PubSub source used in the Dataflow
3011	// job.
3012	PubsubDetails []*PubSubIODetails `json:"pubsubDetails,omitempty"`
3013
3014	// SdkVersion: The SDK version used to run the job.
3015	SdkVersion *SdkVersion `json:"sdkVersion,omitempty"`
3016
3017	// SpannerDetails: Identification of a Spanner source used in the
3018	// Dataflow job.
3019	SpannerDetails []*SpannerIODetails `json:"spannerDetails,omitempty"`
3020
3021	// ForceSendFields is a list of field names (e.g. "BigTableDetails") to
3022	// unconditionally include in API requests. By default, fields with
3023	// empty values are omitted from API requests. However, any non-pointer,
3024	// non-interface field appearing in ForceSendFields will be sent to the
3025	// server regardless of whether the field is empty or not. This may be
3026	// used to include empty fields in Patch requests.
3027	ForceSendFields []string `json:"-"`
3028
3029	// NullFields is a list of field names (e.g. "BigTableDetails") to
3030	// include in API requests with the JSON null value. By default, fields
3031	// with empty values are omitted from API requests. However, any field
3032	// with an empty value appearing in NullFields will be sent to the
3033	// server as null. It is an error if a field in this list has a
3034	// non-empty value. This may be used to include null fields in Patch
3035	// requests.
3036	NullFields []string `json:"-"`
3037}
3038
3039func (s *JobMetadata) MarshalJSON() ([]byte, error) {
3040	type NoMethod JobMetadata
3041	raw := NoMethod(*s)
3042	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3043}
3044
3045// JobMetrics: JobMetrics contains a collection of metrics describing
3046// the detailed progress
3047// of a Dataflow job. Metrics correspond to user-defined and
3048// system-defined
3049// metrics in the job.
3050//
3051// This resource captures only the most recent values of each
3052// metric;
3053// time-series data can be queried for them (under the same metric
3054// names)
3055// from Cloud Monitoring.
3056type JobMetrics struct {
3057	// MetricTime: Timestamp as of which metric values are current.
3058	MetricTime string `json:"metricTime,omitempty"`
3059
3060	// Metrics: All metrics for this job.
3061	Metrics []*MetricUpdate `json:"metrics,omitempty"`
3062
3063	// ServerResponse contains the HTTP response code and headers from the
3064	// server.
3065	googleapi.ServerResponse `json:"-"`
3066
3067	// ForceSendFields is a list of field names (e.g. "MetricTime") to
3068	// unconditionally include in API requests. By default, fields with
3069	// empty values are omitted from API requests. However, any non-pointer,
3070	// non-interface field appearing in ForceSendFields will be sent to the
3071	// server regardless of whether the field is empty or not. This may be
3072	// used to include empty fields in Patch requests.
3073	ForceSendFields []string `json:"-"`
3074
3075	// NullFields is a list of field names (e.g. "MetricTime") to include in
3076	// API requests with the JSON null value. By default, fields with empty
3077	// values are omitted from API requests. However, any field with an
3078	// empty value appearing in NullFields will be sent to the server as
3079	// null. It is an error if a field in this list has a non-empty value.
3080	// This may be used to include null fields in Patch requests.
3081	NullFields []string `json:"-"`
3082}
3083
3084func (s *JobMetrics) MarshalJSON() ([]byte, error) {
3085	type NoMethod JobMetrics
3086	raw := NoMethod(*s)
3087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3088}
3089
3090// KeyRangeDataDiskAssignment: Data disk assignment information for a
3091// specific key-range of a sharded
3092// computation.
3093// Currently we only support UTF-8 character splits to simplify encoding
3094// into
3095// JSON.
3096type KeyRangeDataDiskAssignment struct {
3097	// DataDisk: The name of the data disk where data for this range is
3098	// stored.
3099	// This name is local to the Google Cloud Platform project and
3100	// uniquely
3101	// identifies the disk within that project, for
3102	// example
3103	// "myproject-1014-104817-4c2-harness-0-disk-1".
3104	DataDisk string `json:"dataDisk,omitempty"`
3105
3106	// End: The end (exclusive) of the key range.
3107	End string `json:"end,omitempty"`
3108
3109	// Start: The start (inclusive) of the key range.
3110	Start string `json:"start,omitempty"`
3111
3112	// ForceSendFields is a list of field names (e.g. "DataDisk") to
3113	// unconditionally include in API requests. By default, fields with
3114	// empty values are omitted from API requests. However, any non-pointer,
3115	// non-interface field appearing in ForceSendFields will be sent to the
3116	// server regardless of whether the field is empty or not. This may be
3117	// used to include empty fields in Patch requests.
3118	ForceSendFields []string `json:"-"`
3119
3120	// NullFields is a list of field names (e.g. "DataDisk") to include in
3121	// API requests with the JSON null value. By default, fields with empty
3122	// values are omitted from API requests. However, any field with an
3123	// empty value appearing in NullFields will be sent to the server as
3124	// null. It is an error if a field in this list has a non-empty value.
3125	// This may be used to include null fields in Patch requests.
3126	NullFields []string `json:"-"`
3127}
3128
3129func (s *KeyRangeDataDiskAssignment) MarshalJSON() ([]byte, error) {
3130	type NoMethod KeyRangeDataDiskAssignment
3131	raw := NoMethod(*s)
3132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3133}
3134
3135// KeyRangeLocation: Location information for a specific key-range of a
3136// sharded computation.
3137// Currently we only support UTF-8 character splits to simplify encoding
3138// into
3139// JSON.
3140type KeyRangeLocation struct {
3141	// DataDisk: The name of the data disk where data for this range is
3142	// stored.
3143	// This name is local to the Google Cloud Platform project and
3144	// uniquely
3145	// identifies the disk within that project, for
3146	// example
3147	// "myproject-1014-104817-4c2-harness-0-disk-1".
3148	DataDisk string `json:"dataDisk,omitempty"`
3149
3150	// DeliveryEndpoint: The physical location of this range assignment to
3151	// be used for
3152	// streaming computation cross-worker message delivery.
3153	DeliveryEndpoint string `json:"deliveryEndpoint,omitempty"`
3154
3155	// DeprecatedPersistentDirectory: DEPRECATED. The location of the
3156	// persistent state for this range, as a
3157	// persistent directory in the worker local filesystem.
3158	DeprecatedPersistentDirectory string `json:"deprecatedPersistentDirectory,omitempty"`
3159
3160	// End: The end (exclusive) of the key range.
3161	End string `json:"end,omitempty"`
3162
3163	// Start: The start (inclusive) of the key range.
3164	Start string `json:"start,omitempty"`
3165
3166	// ForceSendFields is a list of field names (e.g. "DataDisk") to
3167	// unconditionally include in API requests. By default, fields with
3168	// empty values are omitted from API requests. However, any non-pointer,
3169	// non-interface field appearing in ForceSendFields will be sent to the
3170	// server regardless of whether the field is empty or not. This may be
3171	// used to include empty fields in Patch requests.
3172	ForceSendFields []string `json:"-"`
3173
3174	// NullFields is a list of field names (e.g. "DataDisk") to include in
3175	// API requests with the JSON null value. By default, fields with empty
3176	// values are omitted from API requests. However, any field with an
3177	// empty value appearing in NullFields will be sent to the server as
3178	// null. It is an error if a field in this list has a non-empty value.
3179	// This may be used to include null fields in Patch requests.
3180	NullFields []string `json:"-"`
3181}
3182
3183func (s *KeyRangeLocation) MarshalJSON() ([]byte, error) {
3184	type NoMethod KeyRangeLocation
3185	raw := NoMethod(*s)
3186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3187}
3188
3189// LaunchTemplateParameters: Parameters to provide to the template being
3190// launched.
3191type LaunchTemplateParameters struct {
3192	// Environment: The runtime environment for the job.
3193	Environment *RuntimeEnvironment `json:"environment,omitempty"`
3194
3195	// JobName: Required. The job name to use for the created job.
3196	JobName string `json:"jobName,omitempty"`
3197
3198	// Parameters: The runtime parameters to pass to the job.
3199	Parameters map[string]string `json:"parameters,omitempty"`
3200
3201	// TransformNameMapping: Only applicable when updating a pipeline. Map
3202	// of transform name prefixes of
3203	// the job to be replaced to the corresponding name prefixes of the new
3204	// job.
3205	TransformNameMapping map[string]string `json:"transformNameMapping,omitempty"`
3206
3207	// Update: If set, replace the existing pipeline with the name specified
3208	// by jobName
3209	// with this pipeline, preserving state.
3210	Update bool `json:"update,omitempty"`
3211
3212	// ForceSendFields is a list of field names (e.g. "Environment") to
3213	// unconditionally include in API requests. By default, fields with
3214	// empty values are omitted from API requests. However, any non-pointer,
3215	// non-interface field appearing in ForceSendFields will be sent to the
3216	// server regardless of whether the field is empty or not. This may be
3217	// used to include empty fields in Patch requests.
3218	ForceSendFields []string `json:"-"`
3219
3220	// NullFields is a list of field names (e.g. "Environment") to include
3221	// in API requests with the JSON null value. By default, fields with
3222	// empty values are omitted from API requests. However, any field with
3223	// an empty value appearing in NullFields will be sent to the server as
3224	// null. It is an error if a field in this list has a non-empty value.
3225	// This may be used to include null fields in Patch requests.
3226	NullFields []string `json:"-"`
3227}
3228
3229func (s *LaunchTemplateParameters) MarshalJSON() ([]byte, error) {
3230	type NoMethod LaunchTemplateParameters
3231	raw := NoMethod(*s)
3232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3233}
3234
3235// LaunchTemplateResponse: Response to the request to launch a template.
3236type LaunchTemplateResponse struct {
3237	// Job: The job that was launched, if the request was not a dry run
3238	// and
3239	// the job was successfully launched.
3240	Job *Job `json:"job,omitempty"`
3241
3242	// ServerResponse contains the HTTP response code and headers from the
3243	// server.
3244	googleapi.ServerResponse `json:"-"`
3245
3246	// ForceSendFields is a list of field names (e.g. "Job") to
3247	// unconditionally include in API requests. By default, fields with
3248	// empty values are omitted from API requests. However, any non-pointer,
3249	// non-interface field appearing in ForceSendFields will be sent to the
3250	// server regardless of whether the field is empty or not. This may be
3251	// used to include empty fields in Patch requests.
3252	ForceSendFields []string `json:"-"`
3253
3254	// NullFields is a list of field names (e.g. "Job") to include in API
3255	// requests with the JSON null value. By default, fields with empty
3256	// values are omitted from API requests. However, any field with an
3257	// empty value appearing in NullFields will be sent to the server as
3258	// null. It is an error if a field in this list has a non-empty value.
3259	// This may be used to include null fields in Patch requests.
3260	NullFields []string `json:"-"`
3261}
3262
3263func (s *LaunchTemplateResponse) MarshalJSON() ([]byte, error) {
3264	type NoMethod LaunchTemplateResponse
3265	raw := NoMethod(*s)
3266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3267}
3268
3269// LeaseWorkItemRequest: Request to lease WorkItems.
3270type LeaseWorkItemRequest struct {
3271	// CurrentWorkerTime: The current timestamp at the worker.
3272	CurrentWorkerTime string `json:"currentWorkerTime,omitempty"`
3273
3274	// Location: The [regional
3275	// endpoint]
3276	// (https://cloud.google.com/dataflow/docs/concepts/regional-en
3277	// dpoints) that
3278	// contains the WorkItem's job.
3279	Location string `json:"location,omitempty"`
3280
3281	// RequestedLeaseDuration: The initial lease period.
3282	RequestedLeaseDuration string `json:"requestedLeaseDuration,omitempty"`
3283
3284	// UnifiedWorkerRequest: Untranslated bag-of-bytes WorkRequest from
3285	// UnifiedWorker.
3286	UnifiedWorkerRequest googleapi.RawMessage `json:"unifiedWorkerRequest,omitempty"`
3287
3288	// WorkItemTypes: Filter for WorkItem type.
3289	WorkItemTypes []string `json:"workItemTypes,omitempty"`
3290
3291	// WorkerCapabilities: Worker capabilities. WorkItems might be limited
3292	// to workers with specific
3293	// capabilities.
3294	WorkerCapabilities []string `json:"workerCapabilities,omitempty"`
3295
3296	// WorkerId: Identifies the worker leasing work -- typically the ID of
3297	// the
3298	// virtual machine running the worker.
3299	WorkerId string `json:"workerId,omitempty"`
3300
3301	// ForceSendFields is a list of field names (e.g. "CurrentWorkerTime")
3302	// to unconditionally include in API requests. By default, fields with
3303	// empty values are omitted from API requests. However, any non-pointer,
3304	// non-interface field appearing in ForceSendFields will be sent to the
3305	// server regardless of whether the field is empty or not. This may be
3306	// used to include empty fields in Patch requests.
3307	ForceSendFields []string `json:"-"`
3308
3309	// NullFields is a list of field names (e.g. "CurrentWorkerTime") to
3310	// include in API requests with the JSON null value. By default, fields
3311	// with empty values are omitted from API requests. However, any field
3312	// with an empty value appearing in NullFields will be sent to the
3313	// server as null. It is an error if a field in this list has a
3314	// non-empty value. This may be used to include null fields in Patch
3315	// requests.
3316	NullFields []string `json:"-"`
3317}
3318
3319func (s *LeaseWorkItemRequest) MarshalJSON() ([]byte, error) {
3320	type NoMethod LeaseWorkItemRequest
3321	raw := NoMethod(*s)
3322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3323}
3324
3325// LeaseWorkItemResponse: Response to a request to lease WorkItems.
3326type LeaseWorkItemResponse struct {
3327	// UnifiedWorkerResponse: Untranslated bag-of-bytes WorkResponse for
3328	// UnifiedWorker.
3329	UnifiedWorkerResponse googleapi.RawMessage `json:"unifiedWorkerResponse,omitempty"`
3330
3331	// WorkItems: A list of the leased WorkItems.
3332	WorkItems []*WorkItem `json:"workItems,omitempty"`
3333
3334	// ServerResponse contains the HTTP response code and headers from the
3335	// server.
3336	googleapi.ServerResponse `json:"-"`
3337
3338	// ForceSendFields is a list of field names (e.g.
3339	// "UnifiedWorkerResponse") to unconditionally include in API requests.
3340	// By default, fields with empty values are omitted from API requests.
3341	// However, any non-pointer, non-interface field appearing in
3342	// ForceSendFields will be sent to the server regardless of whether the
3343	// field is empty or not. This may be used to include empty fields in
3344	// Patch requests.
3345	ForceSendFields []string `json:"-"`
3346
3347	// NullFields is a list of field names (e.g. "UnifiedWorkerResponse") to
3348	// include in API requests with the JSON null value. By default, fields
3349	// with empty values are omitted from API requests. However, any field
3350	// with an empty value appearing in NullFields will be sent to the
3351	// server as null. It is an error if a field in this list has a
3352	// non-empty value. This may be used to include null fields in Patch
3353	// requests.
3354	NullFields []string `json:"-"`
3355}
3356
3357func (s *LeaseWorkItemResponse) MarshalJSON() ([]byte, error) {
3358	type NoMethod LeaseWorkItemResponse
3359	raw := NoMethod(*s)
3360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3361}
3362
3363// ListJobMessagesResponse: Response to a request to list job messages.
3364type ListJobMessagesResponse struct {
3365	// AutoscalingEvents: Autoscaling events in ascending timestamp order.
3366	AutoscalingEvents []*AutoscalingEvent `json:"autoscalingEvents,omitempty"`
3367
3368	// JobMessages: Messages in ascending timestamp order.
3369	JobMessages []*JobMessage `json:"jobMessages,omitempty"`
3370
3371	// NextPageToken: The token to obtain the next page of results if there
3372	// are more.
3373	NextPageToken string `json:"nextPageToken,omitempty"`
3374
3375	// ServerResponse contains the HTTP response code and headers from the
3376	// server.
3377	googleapi.ServerResponse `json:"-"`
3378
3379	// ForceSendFields is a list of field names (e.g. "AutoscalingEvents")
3380	// to unconditionally include in API requests. By default, fields with
3381	// empty values are omitted from API requests. However, any non-pointer,
3382	// non-interface field appearing in ForceSendFields will be sent to the
3383	// server regardless of whether the field is empty or not. This may be
3384	// used to include empty fields in Patch requests.
3385	ForceSendFields []string `json:"-"`
3386
3387	// NullFields is a list of field names (e.g. "AutoscalingEvents") to
3388	// include in API requests with the JSON null value. By default, fields
3389	// with empty values are omitted from API requests. However, any field
3390	// with an empty value appearing in NullFields will be sent to the
3391	// server as null. It is an error if a field in this list has a
3392	// non-empty value. This may be used to include null fields in Patch
3393	// requests.
3394	NullFields []string `json:"-"`
3395}
3396
3397func (s *ListJobMessagesResponse) MarshalJSON() ([]byte, error) {
3398	type NoMethod ListJobMessagesResponse
3399	raw := NoMethod(*s)
3400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3401}
3402
3403// ListJobsResponse: Response to a request to list Cloud Dataflow jobs.
3404// This may be a partial
3405// response, depending on the page size in the ListJobsRequest.
3406type ListJobsResponse struct {
3407	// FailedLocation: Zero or more messages describing the [regional
3408	// endpoints]
3409	// (https://cloud.google.com/dataflow/docs/concepts/regional-e
3410	// ndpoints) that
3411	// failed to respond.
3412	FailedLocation []*FailedLocation `json:"failedLocation,omitempty"`
3413
3414	// Jobs: A subset of the requested job information.
3415	Jobs []*Job `json:"jobs,omitempty"`
3416
3417	// NextPageToken: Set if there may be more results than fit in this
3418	// response.
3419	NextPageToken string `json:"nextPageToken,omitempty"`
3420
3421	// ServerResponse contains the HTTP response code and headers from the
3422	// server.
3423	googleapi.ServerResponse `json:"-"`
3424
3425	// ForceSendFields is a list of field names (e.g. "FailedLocation") to
3426	// unconditionally include in API requests. By default, fields with
3427	// empty values are omitted from API requests. However, any non-pointer,
3428	// non-interface field appearing in ForceSendFields will be sent to the
3429	// server regardless of whether the field is empty or not. This may be
3430	// used to include empty fields in Patch requests.
3431	ForceSendFields []string `json:"-"`
3432
3433	// NullFields is a list of field names (e.g. "FailedLocation") to
3434	// include in API requests with the JSON null value. By default, fields
3435	// with empty values are omitted from API requests. However, any field
3436	// with an empty value appearing in NullFields will be sent to the
3437	// server as null. It is an error if a field in this list has a
3438	// non-empty value. This may be used to include null fields in Patch
3439	// requests.
3440	NullFields []string `json:"-"`
3441}
3442
3443func (s *ListJobsResponse) MarshalJSON() ([]byte, error) {
3444	type NoMethod ListJobsResponse
3445	raw := NoMethod(*s)
3446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3447}
3448
3449// MapTask: MapTask consists of an ordered set of instructions, each of
3450// which
3451// describes one particular low-level operation for the worker
3452// to
3453// perform in order to accomplish the MapTask's WorkItem.
3454//
3455// Each instruction must appear in the list before any instructions
3456// which
3457// depends on its output.
3458type MapTask struct {
3459	// CounterPrefix: Counter prefix that can be used to prefix counters.
3460	// Not currently used in
3461	// Dataflow.
3462	CounterPrefix string `json:"counterPrefix,omitempty"`
3463
3464	// Instructions: The instructions in the MapTask.
3465	Instructions []*ParallelInstruction `json:"instructions,omitempty"`
3466
3467	// StageName: System-defined name of the stage containing this
3468	// MapTask.
3469	// Unique across the workflow.
3470	StageName string `json:"stageName,omitempty"`
3471
3472	// SystemName: System-defined name of this MapTask.
3473	// Unique across the workflow.
3474	SystemName string `json:"systemName,omitempty"`
3475
3476	// ForceSendFields is a list of field names (e.g. "CounterPrefix") to
3477	// unconditionally include in API requests. By default, fields with
3478	// empty values are omitted from API requests. However, any non-pointer,
3479	// non-interface field appearing in ForceSendFields will be sent to the
3480	// server regardless of whether the field is empty or not. This may be
3481	// used to include empty fields in Patch requests.
3482	ForceSendFields []string `json:"-"`
3483
3484	// NullFields is a list of field names (e.g. "CounterPrefix") to include
3485	// in API requests with the JSON null value. By default, fields with
3486	// empty values are omitted from API requests. However, any field with
3487	// an empty value appearing in NullFields will be sent to the server as
3488	// null. It is an error if a field in this list has a non-empty value.
3489	// This may be used to include null fields in Patch requests.
3490	NullFields []string `json:"-"`
3491}
3492
3493func (s *MapTask) MarshalJSON() ([]byte, error) {
3494	type NoMethod MapTask
3495	raw := NoMethod(*s)
3496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3497}
3498
3499// MetricShortId: The metric short id is returned to the user alongside
3500// an offset into
3501// ReportWorkItemStatusRequest
3502type MetricShortId struct {
3503	// MetricIndex: The index of the corresponding metric in
3504	// the ReportWorkItemStatusRequest. Required.
3505	MetricIndex int64 `json:"metricIndex,omitempty"`
3506
3507	// ShortId: The service-generated short identifier for the metric.
3508	ShortId int64 `json:"shortId,omitempty,string"`
3509
3510	// ForceSendFields is a list of field names (e.g. "MetricIndex") to
3511	// unconditionally include in API requests. By default, fields with
3512	// empty values are omitted from API requests. However, any non-pointer,
3513	// non-interface field appearing in ForceSendFields will be sent to the
3514	// server regardless of whether the field is empty or not. This may be
3515	// used to include empty fields in Patch requests.
3516	ForceSendFields []string `json:"-"`
3517
3518	// NullFields is a list of field names (e.g. "MetricIndex") to include
3519	// in API requests with the JSON null value. By default, fields with
3520	// empty values are omitted from API requests. However, any field with
3521	// an empty value appearing in NullFields will be sent to the server as
3522	// null. It is an error if a field in this list has a non-empty value.
3523	// This may be used to include null fields in Patch requests.
3524	NullFields []string `json:"-"`
3525}
3526
3527func (s *MetricShortId) MarshalJSON() ([]byte, error) {
3528	type NoMethod MetricShortId
3529	raw := NoMethod(*s)
3530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3531}
3532
3533// MetricStructuredName: Identifies a metric, by describing the source
3534// which generated the
3535// metric.
3536type MetricStructuredName struct {
3537	// Context: Zero or more labeled fields which identify the part of the
3538	// job this
3539	// metric is associated with, such as the name of a step or
3540	// collection.
3541	//
3542	// For example, built-in counters associated with steps will
3543	// have
3544	// context['step'] = <step-name>. Counters associated with
3545	// PCollections
3546	// in the SDK will have context['pcollection'] = <pcollection-name>.
3547	Context map[string]string `json:"context,omitempty"`
3548
3549	// Name: Worker-defined metric name.
3550	Name string `json:"name,omitempty"`
3551
3552	// Origin: Origin (namespace) of metric name. May be blank for
3553	// user-define metrics;
3554	// will be "dataflow" for metrics defined by the Dataflow service or
3555	// SDK.
3556	Origin string `json:"origin,omitempty"`
3557
3558	// ForceSendFields is a list of field names (e.g. "Context") to
3559	// unconditionally include in API requests. By default, fields with
3560	// empty values are omitted from API requests. However, any non-pointer,
3561	// non-interface field appearing in ForceSendFields will be sent to the
3562	// server regardless of whether the field is empty or not. This may be
3563	// used to include empty fields in Patch requests.
3564	ForceSendFields []string `json:"-"`
3565
3566	// NullFields is a list of field names (e.g. "Context") to include in
3567	// API requests with the JSON null value. By default, fields with empty
3568	// values are omitted from API requests. However, any field with an
3569	// empty value appearing in NullFields will be sent to the server as
3570	// null. It is an error if a field in this list has a non-empty value.
3571	// This may be used to include null fields in Patch requests.
3572	NullFields []string `json:"-"`
3573}
3574
3575func (s *MetricStructuredName) MarshalJSON() ([]byte, error) {
3576	type NoMethod MetricStructuredName
3577	raw := NoMethod(*s)
3578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3579}
3580
3581// MetricUpdate: Describes the state of a metric.
3582type MetricUpdate struct {
3583	// Cumulative: True if this metric is reported as the total cumulative
3584	// aggregate
3585	// value accumulated since the worker started working on this
3586	// WorkItem.
3587	// By default this is false, indicating that this metric is reported
3588	// as a delta that is not associated with any WorkItem.
3589	Cumulative bool `json:"cumulative,omitempty"`
3590
3591	// Distribution: A struct value describing properties of a distribution
3592	// of numeric values.
3593	Distribution interface{} `json:"distribution,omitempty"`
3594
3595	// Gauge: A struct value describing properties of a Gauge.
3596	// Metrics of gauge type show the value of a metric across time, and
3597	// is
3598	// aggregated based on the newest value.
3599	Gauge interface{} `json:"gauge,omitempty"`
3600
3601	// Internal: Worker-computed aggregate value for internal use by the
3602	// Dataflow
3603	// service.
3604	Internal interface{} `json:"internal,omitempty"`
3605
3606	// Kind: Metric aggregation kind.  The possible metric aggregation kinds
3607	// are
3608	// "Sum", "Max", "Min", "Mean", "Set", "And", "Or", and
3609	// "Distribution".
3610	// The specified aggregation kind is case-insensitive.
3611	//
3612	// If omitted, this is not an aggregated value but instead
3613	// a single metric sample value.
3614	Kind string `json:"kind,omitempty"`
3615
3616	// MeanCount: Worker-computed aggregate value for the "Mean" aggregation
3617	// kind.
3618	// This holds the count of the aggregated values and is used in
3619	// combination
3620	// with mean_sum above to obtain the actual mean aggregate value.
3621	// The only possible value type is Long.
3622	MeanCount interface{} `json:"meanCount,omitempty"`
3623
3624	// MeanSum: Worker-computed aggregate value for the "Mean" aggregation
3625	// kind.
3626	// This holds the sum of the aggregated values and is used in
3627	// combination
3628	// with mean_count below to obtain the actual mean aggregate value.
3629	// The only possible value types are Long and Double.
3630	MeanSum interface{} `json:"meanSum,omitempty"`
3631
3632	// Name: Name of the metric.
3633	Name *MetricStructuredName `json:"name,omitempty"`
3634
3635	// Scalar: Worker-computed aggregate value for aggregation kinds "Sum",
3636	// "Max", "Min",
3637	// "And", and "Or".  The possible value types are Long, Double, and
3638	// Boolean.
3639	Scalar interface{} `json:"scalar,omitempty"`
3640
3641	// Set: Worker-computed aggregate value for the "Set" aggregation kind.
3642	// The only
3643	// possible value type is a list of Values whose type can be Long,
3644	// Double,
3645	// or String, according to the metric's type.  All Values in the list
3646	// must
3647	// be of the same type.
3648	Set interface{} `json:"set,omitempty"`
3649
3650	// UpdateTime: Timestamp associated with the metric value. Optional when
3651	// workers are
3652	// reporting work progress; it will be filled in responses from
3653	// the
3654	// metrics API.
3655	UpdateTime string `json:"updateTime,omitempty"`
3656
3657	// ForceSendFields is a list of field names (e.g. "Cumulative") to
3658	// unconditionally include in API requests. By default, fields with
3659	// empty values are omitted from API requests. However, any non-pointer,
3660	// non-interface field appearing in ForceSendFields will be sent to the
3661	// server regardless of whether the field is empty or not. This may be
3662	// used to include empty fields in Patch requests.
3663	ForceSendFields []string `json:"-"`
3664
3665	// NullFields is a list of field names (e.g. "Cumulative") to include in
3666	// API requests with the JSON null value. By default, fields with empty
3667	// values are omitted from API requests. However, any field with an
3668	// empty value appearing in NullFields will be sent to the server as
3669	// null. It is an error if a field in this list has a non-empty value.
3670	// This may be used to include null fields in Patch requests.
3671	NullFields []string `json:"-"`
3672}
3673
3674func (s *MetricUpdate) MarshalJSON() ([]byte, error) {
3675	type NoMethod MetricUpdate
3676	raw := NoMethod(*s)
3677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3678}
3679
3680// MountedDataDisk: Describes mounted data disk.
3681type MountedDataDisk struct {
3682	// DataDisk: The name of the data disk.
3683	// This name is local to the Google Cloud Platform project and
3684	// uniquely
3685	// identifies the disk within that project, for
3686	// example
3687	// "myproject-1014-104817-4c2-harness-0-disk-1".
3688	DataDisk string `json:"dataDisk,omitempty"`
3689
3690	// ForceSendFields is a list of field names (e.g. "DataDisk") to
3691	// unconditionally include in API requests. By default, fields with
3692	// empty values are omitted from API requests. However, any non-pointer,
3693	// non-interface field appearing in ForceSendFields will be sent to the
3694	// server regardless of whether the field is empty or not. This may be
3695	// used to include empty fields in Patch requests.
3696	ForceSendFields []string `json:"-"`
3697
3698	// NullFields is a list of field names (e.g. "DataDisk") to include in
3699	// API requests with the JSON null value. By default, fields with empty
3700	// values are omitted from API requests. However, any field with an
3701	// empty value appearing in NullFields will be sent to the server as
3702	// null. It is an error if a field in this list has a non-empty value.
3703	// This may be used to include null fields in Patch requests.
3704	NullFields []string `json:"-"`
3705}
3706
3707func (s *MountedDataDisk) MarshalJSON() ([]byte, error) {
3708	type NoMethod MountedDataDisk
3709	raw := NoMethod(*s)
3710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3711}
3712
3713// MultiOutputInfo: Information about an output of a multi-output DoFn.
3714type MultiOutputInfo struct {
3715	// Tag: The id of the tag the user code will emit to this output by;
3716	// this
3717	// should correspond to the tag of some SideInputInfo.
3718	Tag string `json:"tag,omitempty"`
3719
3720	// ForceSendFields is a list of field names (e.g. "Tag") to
3721	// unconditionally include in API requests. By default, fields with
3722	// empty values are omitted from API requests. However, any non-pointer,
3723	// non-interface field appearing in ForceSendFields will be sent to the
3724	// server regardless of whether the field is empty or not. This may be
3725	// used to include empty fields in Patch requests.
3726	ForceSendFields []string `json:"-"`
3727
3728	// NullFields is a list of field names (e.g. "Tag") to include in API
3729	// requests with the JSON null value. By default, fields with empty
3730	// values are omitted from API requests. However, any field with an
3731	// empty value appearing in NullFields will be sent to the server as
3732	// null. It is an error if a field in this list has a non-empty value.
3733	// This may be used to include null fields in Patch requests.
3734	NullFields []string `json:"-"`
3735}
3736
3737func (s *MultiOutputInfo) MarshalJSON() ([]byte, error) {
3738	type NoMethod MultiOutputInfo
3739	raw := NoMethod(*s)
3740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3741}
3742
3743// NameAndKind: Basic metadata about a counter.
3744type NameAndKind struct {
3745	// Kind: Counter aggregation kind.
3746	//
3747	// Possible values:
3748	//   "INVALID" - Counter aggregation kind was not set.
3749	//   "SUM" - Aggregated value is the sum of all contributed values.
3750	//   "MAX" - Aggregated value is the max of all contributed values.
3751	//   "MIN" - Aggregated value is the min of all contributed values.
3752	//   "MEAN" - Aggregated value is the mean of all contributed values.
3753	//   "OR" - Aggregated value represents the logical 'or' of all
3754	// contributed values.
3755	//   "AND" - Aggregated value represents the logical 'and' of all
3756	// contributed values.
3757	//   "SET" - Aggregated value is a set of unique contributed values.
3758	//   "DISTRIBUTION" - Aggregated value captures statistics about a
3759	// distribution.
3760	//   "LATEST_VALUE" - Aggregated value tracks the latest value of a
3761	// variable.
3762	Kind string `json:"kind,omitempty"`
3763
3764	// Name: Name of the counter.
3765	Name string `json:"name,omitempty"`
3766
3767	// ForceSendFields is a list of field names (e.g. "Kind") to
3768	// unconditionally include in API requests. By default, fields with
3769	// empty values are omitted from API requests. However, any non-pointer,
3770	// non-interface field appearing in ForceSendFields will be sent to the
3771	// server regardless of whether the field is empty or not. This may be
3772	// used to include empty fields in Patch requests.
3773	ForceSendFields []string `json:"-"`
3774
3775	// NullFields is a list of field names (e.g. "Kind") to include in API
3776	// requests with the JSON null value. By default, fields with empty
3777	// values are omitted from API requests. However, any field with an
3778	// empty value appearing in NullFields will be sent to the server as
3779	// null. It is an error if a field in this list has a non-empty value.
3780	// This may be used to include null fields in Patch requests.
3781	NullFields []string `json:"-"`
3782}
3783
3784func (s *NameAndKind) MarshalJSON() ([]byte, error) {
3785	type NoMethod NameAndKind
3786	raw := NoMethod(*s)
3787	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3788}
3789
3790// Package: The packages that must be installed in order for a worker to
3791// run the
3792// steps of the Cloud Dataflow job that will be assigned to its
3793// worker
3794// pool.
3795//
3796// This is the mechanism by which the Cloud Dataflow SDK causes code
3797// to
3798// be loaded onto the workers. For example, the Cloud Dataflow Java
3799// SDK
3800// might use this to install jars containing the user's code and all of
3801// the
3802// various dependencies (libraries, data files, etc.) required in
3803// order
3804// for that code to run.
3805type Package struct {
3806	// Location: The resource to read the package from. The supported
3807	// resource type is:
3808	//
3809	// Google Cloud Storage:
3810	//
3811	//   storage.googleapis.com/{bucket}
3812	//   bucket.storage.googleapis.com/
3813	Location string `json:"location,omitempty"`
3814
3815	// Name: The name of the package.
3816	Name string `json:"name,omitempty"`
3817
3818	// ForceSendFields is a list of field names (e.g. "Location") to
3819	// unconditionally include in API requests. By default, fields with
3820	// empty values are omitted from API requests. However, any non-pointer,
3821	// non-interface field appearing in ForceSendFields will be sent to the
3822	// server regardless of whether the field is empty or not. This may be
3823	// used to include empty fields in Patch requests.
3824	ForceSendFields []string `json:"-"`
3825
3826	// NullFields is a list of field names (e.g. "Location") to include in
3827	// API requests with the JSON null value. By default, fields with empty
3828	// values are omitted from API requests. However, any field with an
3829	// empty value appearing in NullFields will be sent to the server as
3830	// null. It is an error if a field in this list has a non-empty value.
3831	// This may be used to include null fields in Patch requests.
3832	NullFields []string `json:"-"`
3833}
3834
3835func (s *Package) MarshalJSON() ([]byte, error) {
3836	type NoMethod Package
3837	raw := NoMethod(*s)
3838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3839}
3840
3841// ParDoInstruction: An instruction that does a ParDo operation.
3842// Takes one main input and zero or more side inputs, and produces
3843// zero or more outputs.
3844// Runs user code.
3845type ParDoInstruction struct {
3846	// Input: The input.
3847	Input *InstructionInput `json:"input,omitempty"`
3848
3849	// MultiOutputInfos: Information about each of the outputs, if user_fn
3850	// is a  MultiDoFn.
3851	MultiOutputInfos []*MultiOutputInfo `json:"multiOutputInfos,omitempty"`
3852
3853	// NumOutputs: The number of outputs.
3854	NumOutputs int64 `json:"numOutputs,omitempty"`
3855
3856	// SideInputs: Zero or more side inputs.
3857	SideInputs []*SideInputInfo `json:"sideInputs,omitempty"`
3858
3859	// UserFn: The user function to invoke.
3860	UserFn googleapi.RawMessage `json:"userFn,omitempty"`
3861
3862	// ForceSendFields is a list of field names (e.g. "Input") to
3863	// unconditionally include in API requests. By default, fields with
3864	// empty values are omitted from API requests. However, any non-pointer,
3865	// non-interface field appearing in ForceSendFields will be sent to the
3866	// server regardless of whether the field is empty or not. This may be
3867	// used to include empty fields in Patch requests.
3868	ForceSendFields []string `json:"-"`
3869
3870	// NullFields is a list of field names (e.g. "Input") to include in API
3871	// requests with the JSON null value. By default, fields with empty
3872	// values are omitted from API requests. However, any field with an
3873	// empty value appearing in NullFields will be sent to the server as
3874	// null. It is an error if a field in this list has a non-empty value.
3875	// This may be used to include null fields in Patch requests.
3876	NullFields []string `json:"-"`
3877}
3878
3879func (s *ParDoInstruction) MarshalJSON() ([]byte, error) {
3880	type NoMethod ParDoInstruction
3881	raw := NoMethod(*s)
3882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3883}
3884
3885// ParallelInstruction: Describes a particular operation comprising a
3886// MapTask.
3887type ParallelInstruction struct {
3888	// Flatten: Additional information for Flatten instructions.
3889	Flatten *FlattenInstruction `json:"flatten,omitempty"`
3890
3891	// Name: User-provided name of this operation.
3892	Name string `json:"name,omitempty"`
3893
3894	// OriginalName: System-defined name for the operation in the original
3895	// workflow graph.
3896	OriginalName string `json:"originalName,omitempty"`
3897
3898	// Outputs: Describes the outputs of the instruction.
3899	Outputs []*InstructionOutput `json:"outputs,omitempty"`
3900
3901	// ParDo: Additional information for ParDo instructions.
3902	ParDo *ParDoInstruction `json:"parDo,omitempty"`
3903
3904	// PartialGroupByKey: Additional information for PartialGroupByKey
3905	// instructions.
3906	PartialGroupByKey *PartialGroupByKeyInstruction `json:"partialGroupByKey,omitempty"`
3907
3908	// Read: Additional information for Read instructions.
3909	Read *ReadInstruction `json:"read,omitempty"`
3910
3911	// SystemName: System-defined name of this operation.
3912	// Unique across the workflow.
3913	SystemName string `json:"systemName,omitempty"`
3914
3915	// Write: Additional information for Write instructions.
3916	Write *WriteInstruction `json:"write,omitempty"`
3917
3918	// ForceSendFields is a list of field names (e.g. "Flatten") to
3919	// unconditionally include in API requests. By default, fields with
3920	// empty values are omitted from API requests. However, any non-pointer,
3921	// non-interface field appearing in ForceSendFields will be sent to the
3922	// server regardless of whether the field is empty or not. This may be
3923	// used to include empty fields in Patch requests.
3924	ForceSendFields []string `json:"-"`
3925
3926	// NullFields is a list of field names (e.g. "Flatten") to include in
3927	// API requests with the JSON null value. By default, fields with empty
3928	// values are omitted from API requests. However, any field with an
3929	// empty value appearing in NullFields will be sent to the server as
3930	// null. It is an error if a field in this list has a non-empty value.
3931	// This may be used to include null fields in Patch requests.
3932	NullFields []string `json:"-"`
3933}
3934
3935func (s *ParallelInstruction) MarshalJSON() ([]byte, error) {
3936	type NoMethod ParallelInstruction
3937	raw := NoMethod(*s)
3938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3939}
3940
3941// Parameter: Structured data associated with this message.
3942type Parameter struct {
3943	// Key: Key or name for this parameter.
3944	Key string `json:"key,omitempty"`
3945
3946	// Value: Value for this parameter.
3947	Value interface{} `json:"value,omitempty"`
3948
3949	// ForceSendFields is a list of field names (e.g. "Key") to
3950	// unconditionally include in API requests. By default, fields with
3951	// empty values are omitted from API requests. However, any non-pointer,
3952	// non-interface field appearing in ForceSendFields will be sent to the
3953	// server regardless of whether the field is empty or not. This may be
3954	// used to include empty fields in Patch requests.
3955	ForceSendFields []string `json:"-"`
3956
3957	// NullFields is a list of field names (e.g. "Key") to include in API
3958	// requests with the JSON null value. By default, fields with empty
3959	// values are omitted from API requests. However, any field with an
3960	// empty value appearing in NullFields will be sent to the server as
3961	// null. It is an error if a field in this list has a non-empty value.
3962	// This may be used to include null fields in Patch requests.
3963	NullFields []string `json:"-"`
3964}
3965
3966func (s *Parameter) MarshalJSON() ([]byte, error) {
3967	type NoMethod Parameter
3968	raw := NoMethod(*s)
3969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3970}
3971
3972// ParameterMetadata: Metadata for a specific parameter.
3973type ParameterMetadata struct {
3974	// HelpText: Required. The help text to display for the parameter.
3975	HelpText string `json:"helpText,omitempty"`
3976
3977	// IsOptional: Optional. Whether the parameter is optional. Defaults to
3978	// false.
3979	IsOptional bool `json:"isOptional,omitempty"`
3980
3981	// Label: Required. The label to display for the parameter.
3982	Label string `json:"label,omitempty"`
3983
3984	// Name: Required. The name of the parameter.
3985	Name string `json:"name,omitempty"`
3986
3987	// Regexes: Optional. Regexes that the parameter must match.
3988	Regexes []string `json:"regexes,omitempty"`
3989
3990	// ForceSendFields is a list of field names (e.g. "HelpText") to
3991	// unconditionally include in API requests. By default, fields with
3992	// empty values are omitted from API requests. However, any non-pointer,
3993	// non-interface field appearing in ForceSendFields will be sent to the
3994	// server regardless of whether the field is empty or not. This may be
3995	// used to include empty fields in Patch requests.
3996	ForceSendFields []string `json:"-"`
3997
3998	// NullFields is a list of field names (e.g. "HelpText") to include in
3999	// API 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 *ParameterMetadata) MarshalJSON() ([]byte, error) {
4008	type NoMethod ParameterMetadata
4009	raw := NoMethod(*s)
4010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4011}
4012
4013// PartialGroupByKeyInstruction: An instruction that does a partial
4014// group-by-key.
4015// One input and one output.
4016type PartialGroupByKeyInstruction struct {
4017	// Input: Describes the input to the partial group-by-key instruction.
4018	Input *InstructionInput `json:"input,omitempty"`
4019
4020	// InputElementCodec: The codec to use for interpreting an element in
4021	// the input PTable.
4022	InputElementCodec googleapi.RawMessage `json:"inputElementCodec,omitempty"`
4023
4024	// OriginalCombineValuesInputStoreName: If this instruction includes a
4025	// combining function this is the name of the
4026	// intermediate store between the GBK and the CombineValues.
4027	OriginalCombineValuesInputStoreName string `json:"originalCombineValuesInputStoreName,omitempty"`
4028
4029	// OriginalCombineValuesStepName: If this instruction includes a
4030	// combining function, this is the name of the
4031	// CombineValues instruction lifted into this instruction.
4032	OriginalCombineValuesStepName string `json:"originalCombineValuesStepName,omitempty"`
4033
4034	// SideInputs: Zero or more side inputs.
4035	SideInputs []*SideInputInfo `json:"sideInputs,omitempty"`
4036
4037	// ValueCombiningFn: The value combining function to invoke.
4038	ValueCombiningFn googleapi.RawMessage `json:"valueCombiningFn,omitempty"`
4039
4040	// ForceSendFields is a list of field names (e.g. "Input") to
4041	// unconditionally include in API requests. By default, fields with
4042	// empty values are omitted from API requests. However, any non-pointer,
4043	// non-interface field appearing in ForceSendFields will be sent to the
4044	// server regardless of whether the field is empty or not. This may be
4045	// used to include empty fields in Patch requests.
4046	ForceSendFields []string `json:"-"`
4047
4048	// NullFields is a list of field names (e.g. "Input") to include in API
4049	// requests with the JSON null value. By default, fields with empty
4050	// values are omitted from API requests. However, any field with an
4051	// empty value appearing in NullFields will be sent to the server as
4052	// null. It is an error if a field in this list has a non-empty value.
4053	// This may be used to include null fields in Patch requests.
4054	NullFields []string `json:"-"`
4055}
4056
4057func (s *PartialGroupByKeyInstruction) MarshalJSON() ([]byte, error) {
4058	type NoMethod PartialGroupByKeyInstruction
4059	raw := NoMethod(*s)
4060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4061}
4062
4063// PipelineDescription: A descriptive representation of submitted
4064// pipeline as well as the executed
4065// form.  This data is provided by the Dataflow service for ease of
4066// visualizing
4067// the pipeline and interpreting Dataflow provided metrics.
4068type PipelineDescription struct {
4069	// DisplayData: Pipeline level display data.
4070	DisplayData []*DisplayData `json:"displayData,omitempty"`
4071
4072	// ExecutionPipelineStage: Description of each stage of execution of the
4073	// pipeline.
4074	ExecutionPipelineStage []*ExecutionStageSummary `json:"executionPipelineStage,omitempty"`
4075
4076	// OriginalPipelineTransform: Description of each transform in the
4077	// pipeline and collections between them.
4078	OriginalPipelineTransform []*TransformSummary `json:"originalPipelineTransform,omitempty"`
4079
4080	// ForceSendFields is a list of field names (e.g. "DisplayData") to
4081	// unconditionally include in API requests. By default, fields with
4082	// empty values are omitted from API requests. However, any non-pointer,
4083	// non-interface field appearing in ForceSendFields will be sent to the
4084	// server regardless of whether the field is empty or not. This may be
4085	// used to include empty fields in Patch requests.
4086	ForceSendFields []string `json:"-"`
4087
4088	// NullFields is a list of field names (e.g. "DisplayData") to include
4089	// in API requests with the JSON null value. By default, fields with
4090	// empty values are omitted from API requests. However, any field with
4091	// an empty value appearing in NullFields will be sent to the server as
4092	// null. It is an error if a field in this list has a non-empty value.
4093	// This may be used to include null fields in Patch requests.
4094	NullFields []string `json:"-"`
4095}
4096
4097func (s *PipelineDescription) MarshalJSON() ([]byte, error) {
4098	type NoMethod PipelineDescription
4099	raw := NoMethod(*s)
4100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4101}
4102
4103// Position: Position defines a position within a collection of data.
4104// The value
4105// can be either the end position, a key (used with
4106// ordered
4107// collections), a byte offset, or a record index.
4108type Position struct {
4109	// ByteOffset: Position is a byte offset.
4110	ByteOffset int64 `json:"byteOffset,omitempty,string"`
4111
4112	// ConcatPosition: CloudPosition is a concat position.
4113	ConcatPosition *ConcatPosition `json:"concatPosition,omitempty"`
4114
4115	// End: Position is past all other positions. Also useful for the
4116	// end
4117	// position of an unbounded range.
4118	End bool `json:"end,omitempty"`
4119
4120	// Key: Position is a string key, ordered lexicographically.
4121	Key string `json:"key,omitempty"`
4122
4123	// RecordIndex: Position is a record index.
4124	RecordIndex int64 `json:"recordIndex,omitempty,string"`
4125
4126	// ShufflePosition: CloudPosition is a base64 encoded
4127	// BatchShufflePosition (with FIXED
4128	// sharding).
4129	ShufflePosition string `json:"shufflePosition,omitempty"`
4130
4131	// ForceSendFields is a list of field names (e.g. "ByteOffset") to
4132	// unconditionally include in API requests. By default, fields with
4133	// empty values are omitted from API requests. However, any non-pointer,
4134	// non-interface field appearing in ForceSendFields will be sent to the
4135	// server regardless of whether the field is empty or not. This may be
4136	// used to include empty fields in Patch requests.
4137	ForceSendFields []string `json:"-"`
4138
4139	// NullFields is a list of field names (e.g. "ByteOffset") to include in
4140	// API requests with the JSON null value. By default, fields with empty
4141	// values are omitted from API requests. However, any field with an
4142	// empty value appearing in NullFields will be sent to the server as
4143	// null. It is an error if a field in this list has a non-empty value.
4144	// This may be used to include null fields in Patch requests.
4145	NullFields []string `json:"-"`
4146}
4147
4148func (s *Position) MarshalJSON() ([]byte, error) {
4149	type NoMethod Position
4150	raw := NoMethod(*s)
4151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4152}
4153
4154// PubSubIODetails: Metadata for a PubSub connector used by the job.
4155type PubSubIODetails struct {
4156	// Subscription: Subscription used in the connection.
4157	Subscription string `json:"subscription,omitempty"`
4158
4159	// Topic: Topic accessed in the connection.
4160	Topic string `json:"topic,omitempty"`
4161
4162	// ForceSendFields is a list of field names (e.g. "Subscription") to
4163	// unconditionally include in API requests. By default, fields with
4164	// empty values are omitted from API requests. However, any non-pointer,
4165	// non-interface field appearing in ForceSendFields will be sent to the
4166	// server regardless of whether the field is empty or not. This may be
4167	// used to include empty fields in Patch requests.
4168	ForceSendFields []string `json:"-"`
4169
4170	// NullFields is a list of field names (e.g. "Subscription") to include
4171	// in API requests with the JSON null value. By default, fields with
4172	// empty values are omitted from API requests. However, any field with
4173	// an empty value appearing in NullFields will be sent to the server as
4174	// null. It is an error if a field in this list has a non-empty value.
4175	// This may be used to include null fields in Patch requests.
4176	NullFields []string `json:"-"`
4177}
4178
4179func (s *PubSubIODetails) MarshalJSON() ([]byte, error) {
4180	type NoMethod PubSubIODetails
4181	raw := NoMethod(*s)
4182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4183}
4184
4185// PubsubLocation: Identifies a pubsub location to use for transferring
4186// data into or
4187// out of a streaming Dataflow job.
4188type PubsubLocation struct {
4189	// DropLateData: Indicates whether the pipeline allows late-arriving
4190	// data.
4191	DropLateData bool `json:"dropLateData,omitempty"`
4192
4193	// IdLabel: If set, contains a pubsub label from which to extract record
4194	// ids.
4195	// If left empty, record deduplication will be strictly best effort.
4196	IdLabel string `json:"idLabel,omitempty"`
4197
4198	// Subscription: A pubsub subscription, in the form
4199	// of
4200	// "pubsub.googleapis.com/subscriptions/<project-id>/<subscription-nam
4201	// e>"
4202	Subscription string `json:"subscription,omitempty"`
4203
4204	// TimestampLabel: If set, contains a pubsub label from which to extract
4205	// record timestamps.
4206	// If left empty, record timestamps will be generated upon arrival.
4207	TimestampLabel string `json:"timestampLabel,omitempty"`
4208
4209	// Topic: A pubsub topic, in the form
4210	// of
4211	// "pubsub.googleapis.com/topics/<project-id>/<topic-name>"
4212	Topic string `json:"topic,omitempty"`
4213
4214	// TrackingSubscription: If set, specifies the pubsub subscription that
4215	// will be used for tracking
4216	// custom time timestamps for watermark estimation.
4217	TrackingSubscription string `json:"trackingSubscription,omitempty"`
4218
4219	// WithAttributes: If true, then the client has requested to get pubsub
4220	// attributes.
4221	WithAttributes bool `json:"withAttributes,omitempty"`
4222
4223	// ForceSendFields is a list of field names (e.g. "DropLateData") to
4224	// unconditionally include in API requests. By default, fields with
4225	// empty values are omitted from API requests. However, any non-pointer,
4226	// non-interface field appearing in ForceSendFields will be sent to the
4227	// server regardless of whether the field is empty or not. This may be
4228	// used to include empty fields in Patch requests.
4229	ForceSendFields []string `json:"-"`
4230
4231	// NullFields is a list of field names (e.g. "DropLateData") to include
4232	// in API requests with the JSON null value. By default, fields with
4233	// empty values are omitted from API requests. However, any field with
4234	// an empty value appearing in NullFields will be sent to the server as
4235	// null. It is an error if a field in this list has a non-empty value.
4236	// This may be used to include null fields in Patch requests.
4237	NullFields []string `json:"-"`
4238}
4239
4240func (s *PubsubLocation) MarshalJSON() ([]byte, error) {
4241	type NoMethod PubsubLocation
4242	raw := NoMethod(*s)
4243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4244}
4245
4246// ReadInstruction: An instruction that reads records.
4247// Takes no inputs, produces one output.
4248type ReadInstruction struct {
4249	// Source: The source to read from.
4250	Source *Source `json:"source,omitempty"`
4251
4252	// ForceSendFields is a list of field names (e.g. "Source") to
4253	// unconditionally include in API requests. By default, fields with
4254	// empty values are omitted from API requests. However, any non-pointer,
4255	// non-interface field appearing in ForceSendFields will be sent to the
4256	// server regardless of whether the field is empty or not. This may be
4257	// used to include empty fields in Patch requests.
4258	ForceSendFields []string `json:"-"`
4259
4260	// NullFields is a list of field names (e.g. "Source") to include in API
4261	// requests with the JSON null value. By default, fields with empty
4262	// values are omitted from API requests. However, any field with an
4263	// empty value appearing in NullFields will be sent to the server as
4264	// null. It is an error if a field in this list has a non-empty value.
4265	// This may be used to include null fields in Patch requests.
4266	NullFields []string `json:"-"`
4267}
4268
4269func (s *ReadInstruction) MarshalJSON() ([]byte, error) {
4270	type NoMethod ReadInstruction
4271	raw := NoMethod(*s)
4272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4273}
4274
4275// ReportWorkItemStatusRequest: Request to report the status of
4276// WorkItems.
4277type ReportWorkItemStatusRequest struct {
4278	// CurrentWorkerTime: The current timestamp at the worker.
4279	CurrentWorkerTime string `json:"currentWorkerTime,omitempty"`
4280
4281	// Location: The [regional
4282	// endpoint]
4283	// (https://cloud.google.com/dataflow/docs/concepts/regional-en
4284	// dpoints) that
4285	// contains the WorkItem's job.
4286	Location string `json:"location,omitempty"`
4287
4288	// UnifiedWorkerRequest: Untranslated bag-of-bytes
4289	// WorkProgressUpdateRequest from UnifiedWorker.
4290	UnifiedWorkerRequest googleapi.RawMessage `json:"unifiedWorkerRequest,omitempty"`
4291
4292	// WorkItemStatuses: The order is unimportant, except that the order of
4293	// the
4294	// WorkItemServiceState messages in the
4295	// ReportWorkItemStatusResponse
4296	// corresponds to the order of WorkItemStatus messages here.
4297	WorkItemStatuses []*WorkItemStatus `json:"workItemStatuses,omitempty"`
4298
4299	// WorkerId: The ID of the worker reporting the WorkItem status.  If
4300	// this
4301	// does not match the ID of the worker which the Dataflow
4302	// service
4303	// believes currently has the lease on the WorkItem, the report
4304	// will be dropped (with an error response).
4305	WorkerId string `json:"workerId,omitempty"`
4306
4307	// ForceSendFields is a list of field names (e.g. "CurrentWorkerTime")
4308	// to unconditionally include in API requests. By default, fields with
4309	// empty values are omitted from API requests. However, any non-pointer,
4310	// non-interface field appearing in ForceSendFields will be sent to the
4311	// server regardless of whether the field is empty or not. This may be
4312	// used to include empty fields in Patch requests.
4313	ForceSendFields []string `json:"-"`
4314
4315	// NullFields is a list of field names (e.g. "CurrentWorkerTime") to
4316	// include in API requests with the JSON null value. By default, fields
4317	// with empty values are omitted from API requests. However, any field
4318	// with an empty value appearing in NullFields will be sent to the
4319	// server as null. It is an error if a field in this list has a
4320	// non-empty value. This may be used to include null fields in Patch
4321	// requests.
4322	NullFields []string `json:"-"`
4323}
4324
4325func (s *ReportWorkItemStatusRequest) MarshalJSON() ([]byte, error) {
4326	type NoMethod ReportWorkItemStatusRequest
4327	raw := NoMethod(*s)
4328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4329}
4330
4331// ReportWorkItemStatusResponse: Response from a request to report the
4332// status of WorkItems.
4333type ReportWorkItemStatusResponse struct {
4334	// UnifiedWorkerResponse: Untranslated bag-of-bytes
4335	// WorkProgressUpdateResponse for UnifiedWorker.
4336	UnifiedWorkerResponse googleapi.RawMessage `json:"unifiedWorkerResponse,omitempty"`
4337
4338	// WorkItemServiceStates: A set of messages indicating the service-side
4339	// state for each
4340	// WorkItem whose status was reported, in the same order as
4341	// the
4342	// WorkItemStatus messages in the ReportWorkItemStatusRequest
4343	// which
4344	// resulting in this response.
4345	WorkItemServiceStates []*WorkItemServiceState `json:"workItemServiceStates,omitempty"`
4346
4347	// ServerResponse contains the HTTP response code and headers from the
4348	// server.
4349	googleapi.ServerResponse `json:"-"`
4350
4351	// ForceSendFields is a list of field names (e.g.
4352	// "UnifiedWorkerResponse") to unconditionally include in API requests.
4353	// By default, fields with empty values are omitted from API requests.
4354	// However, any non-pointer, non-interface field appearing in
4355	// ForceSendFields will be sent to the server regardless of whether the
4356	// field is empty or not. This may be used to include empty fields in
4357	// Patch requests.
4358	ForceSendFields []string `json:"-"`
4359
4360	// NullFields is a list of field names (e.g. "UnifiedWorkerResponse") to
4361	// include in API requests with the JSON null value. By default, fields
4362	// with empty values are omitted from API requests. However, any field
4363	// with an empty value appearing in NullFields will be sent to the
4364	// server as null. It is an error if a field in this list has a
4365	// non-empty value. This may be used to include null fields in Patch
4366	// requests.
4367	NullFields []string `json:"-"`
4368}
4369
4370func (s *ReportWorkItemStatusResponse) MarshalJSON() ([]byte, error) {
4371	type NoMethod ReportWorkItemStatusResponse
4372	raw := NoMethod(*s)
4373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4374}
4375
4376// ReportedParallelism: Represents the level of parallelism in a
4377// WorkItem's input,
4378// reported by the worker.
4379type ReportedParallelism struct {
4380	// IsInfinite: Specifies whether the parallelism is infinite. If true,
4381	// "value" is
4382	// ignored.
4383	// Infinite parallelism means the service will assume that the work
4384	// item
4385	// can always be split into more non-empty work items by dynamic
4386	// splitting.
4387	// This is a work-around for lack of support for infinity by the
4388	// current
4389	// JSON-based Java RPC stack.
4390	IsInfinite bool `json:"isInfinite,omitempty"`
4391
4392	// Value: Specifies the level of parallelism in case it is finite.
4393	Value float64 `json:"value,omitempty"`
4394
4395	// ForceSendFields is a list of field names (e.g. "IsInfinite") to
4396	// unconditionally include in API requests. By default, fields with
4397	// empty values are omitted from API requests. However, any non-pointer,
4398	// non-interface field appearing in ForceSendFields will be sent to the
4399	// server regardless of whether the field is empty or not. This may be
4400	// used to include empty fields in Patch requests.
4401	ForceSendFields []string `json:"-"`
4402
4403	// NullFields is a list of field names (e.g. "IsInfinite") to include in
4404	// API requests with the JSON null value. By default, fields with empty
4405	// values are omitted from API requests. However, any field with an
4406	// empty value appearing in NullFields will be sent to the server as
4407	// null. It is an error if a field in this list has a non-empty value.
4408	// This may be used to include null fields in Patch requests.
4409	NullFields []string `json:"-"`
4410}
4411
4412func (s *ReportedParallelism) MarshalJSON() ([]byte, error) {
4413	type NoMethod ReportedParallelism
4414	raw := NoMethod(*s)
4415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4416}
4417
4418func (s *ReportedParallelism) UnmarshalJSON(data []byte) error {
4419	type NoMethod ReportedParallelism
4420	var s1 struct {
4421		Value gensupport.JSONFloat64 `json:"value"`
4422		*NoMethod
4423	}
4424	s1.NoMethod = (*NoMethod)(s)
4425	if err := json.Unmarshal(data, &s1); err != nil {
4426		return err
4427	}
4428	s.Value = float64(s1.Value)
4429	return nil
4430}
4431
4432// ResourceUtilizationReport: Worker metrics exported from workers. This
4433// contains resource utilization
4434// metrics accumulated from a variety of sources. For more information,
4435// see
4436// go/df-resource-signals.
4437type ResourceUtilizationReport struct {
4438	// CpuTime: CPU utilization samples.
4439	CpuTime []*CPUTime `json:"cpuTime,omitempty"`
4440
4441	// ForceSendFields is a list of field names (e.g. "CpuTime") to
4442	// unconditionally include in API requests. By default, fields with
4443	// empty values are omitted from API requests. However, any non-pointer,
4444	// non-interface field appearing in ForceSendFields will be sent to the
4445	// server regardless of whether the field is empty or not. This may be
4446	// used to include empty fields in Patch requests.
4447	ForceSendFields []string `json:"-"`
4448
4449	// NullFields is a list of field names (e.g. "CpuTime") to include in
4450	// API requests with the JSON null value. By default, fields with empty
4451	// values are omitted from API requests. However, any field with an
4452	// empty value appearing in NullFields will be sent to the server as
4453	// null. It is an error if a field in this list has a non-empty value.
4454	// This may be used to include null fields in Patch requests.
4455	NullFields []string `json:"-"`
4456}
4457
4458func (s *ResourceUtilizationReport) MarshalJSON() ([]byte, error) {
4459	type NoMethod ResourceUtilizationReport
4460	raw := NoMethod(*s)
4461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4462}
4463
4464// ResourceUtilizationReportResponse: Service-side response to
4465// WorkerMessage reporting resource utilization.
4466type ResourceUtilizationReportResponse struct {
4467}
4468
4469// RuntimeEnvironment: The environment values to set at runtime.
4470type RuntimeEnvironment struct {
4471	// AdditionalExperiments: Additional experiment flags for the job.
4472	AdditionalExperiments []string `json:"additionalExperiments,omitempty"`
4473
4474	// AdditionalUserLabels: Additional user labels to be specified for the
4475	// job.
4476	// Keys and values should follow the restrictions specified in the
4477	// [labeling
4478	// restrictions](https://cloud.google.com/compute/docs/labeling
4479	// -resources#restrictions)
4480	// page.
4481	AdditionalUserLabels map[string]string `json:"additionalUserLabels,omitempty"`
4482
4483	// BypassTempDirValidation: Whether to bypass the safety checks for the
4484	// job's temporary directory.
4485	// Use with caution.
4486	BypassTempDirValidation bool `json:"bypassTempDirValidation,omitempty"`
4487
4488	// IpConfiguration: Configuration for VM IPs.
4489	//
4490	// Possible values:
4491	//   "WORKER_IP_UNSPECIFIED" - The configuration is unknown, or
4492	// unspecified.
4493	//   "WORKER_IP_PUBLIC" - Workers should have public IP addresses.
4494	//   "WORKER_IP_PRIVATE" - Workers should have private IP addresses.
4495	IpConfiguration string `json:"ipConfiguration,omitempty"`
4496
4497	// KmsKeyName: Optional. Name for the Cloud KMS key for the job.
4498	// Key format
4499	// is:
4500	// projects/<project>/locations/<location>/keyRings/<keyring>/cryptoK
4501	// eys/<key>
4502	KmsKeyName string `json:"kmsKeyName,omitempty"`
4503
4504	// MachineType: The machine type to use for the job. Defaults to the
4505	// value from the
4506	// template if not specified.
4507	MachineType string `json:"machineType,omitempty"`
4508
4509	// MaxWorkers: The maximum number of Google Compute Engine instances to
4510	// be made
4511	// available to your pipeline during execution, from 1 to 1000.
4512	MaxWorkers int64 `json:"maxWorkers,omitempty"`
4513
4514	// Network: Network to which VMs will be assigned.  If empty or
4515	// unspecified,
4516	// the service will use the network "default".
4517	Network string `json:"network,omitempty"`
4518
4519	// NumWorkers: The initial number of Google Compute Engine instnaces for
4520	// the job.
4521	NumWorkers int64 `json:"numWorkers,omitempty"`
4522
4523	// ServiceAccountEmail: The email address of the service account to run
4524	// the job as.
4525	ServiceAccountEmail string `json:"serviceAccountEmail,omitempty"`
4526
4527	// Subnetwork: Subnetwork to which VMs will be assigned, if desired.
4528	// Expected to be of
4529	// the form "regions/REGION/subnetworks/SUBNETWORK".
4530	Subnetwork string `json:"subnetwork,omitempty"`
4531
4532	// TempLocation: The Cloud Storage path to use for temporary files.
4533	// Must be a valid Cloud Storage URL, beginning with `gs://`.
4534	TempLocation string `json:"tempLocation,omitempty"`
4535
4536	// WorkerRegion: The Compute Engine
4537	// region
4538	// (https://cloud.google.com/compute/docs/regions-zones/regions-zo
4539	// nes) in
4540	// which worker processing should occur, e.g. "us-west1". Mutually
4541	// exclusive
4542	// with worker_zone. If neither worker_region nor worker_zone is
4543	// specified,
4544	// default to the control plane's region.
4545	WorkerRegion string `json:"workerRegion,omitempty"`
4546
4547	// WorkerZone: The Compute Engine
4548	// zone
4549	// (https://cloud.google.com/compute/docs/regions-zones/regions-zone
4550	// s) in
4551	// which worker processing should occur, e.g. "us-west1-a". Mutually
4552	// exclusive
4553	// with worker_region. If neither worker_region nor worker_zone is
4554	// specified,
4555	// a zone in the control plane's region is chosen based on available
4556	// capacity.
4557	// If both `worker_zone` and `zone` are set, `worker_zone` takes
4558	// precedence.
4559	WorkerZone string `json:"workerZone,omitempty"`
4560
4561	// Zone: The Compute Engine
4562	// [availability
4563	// zone](https://cloud.google.com/compute/docs/regions-zone
4564	// s/regions-zones)
4565	// for launching worker instances to run your pipeline.
4566	// In the future, worker_zone will take precedence.
4567	Zone string `json:"zone,omitempty"`
4568
4569	// ForceSendFields is a list of field names (e.g.
4570	// "AdditionalExperiments") to unconditionally include in API requests.
4571	// By default, fields with empty values are omitted from API requests.
4572	// However, any non-pointer, non-interface field appearing in
4573	// ForceSendFields will be sent to the server regardless of whether the
4574	// field is empty or not. This may be used to include empty fields in
4575	// Patch requests.
4576	ForceSendFields []string `json:"-"`
4577
4578	// NullFields is a list of field names (e.g. "AdditionalExperiments") to
4579	// include in API requests with the JSON null value. By default, fields
4580	// with empty values are omitted from API requests. However, any field
4581	// with an empty value appearing in NullFields will be sent to the
4582	// server as null. It is an error if a field in this list has a
4583	// non-empty value. This may be used to include null fields in Patch
4584	// requests.
4585	NullFields []string `json:"-"`
4586}
4587
4588func (s *RuntimeEnvironment) MarshalJSON() ([]byte, error) {
4589	type NoMethod RuntimeEnvironment
4590	raw := NoMethod(*s)
4591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4592}
4593
4594// SdkVersion: The version of the SDK used to run the job.
4595type SdkVersion struct {
4596	// SdkSupportStatus: The support status for this SDK version.
4597	//
4598	// Possible values:
4599	//   "UNKNOWN" - Cloud Dataflow is unaware of this version.
4600	//   "SUPPORTED" - This is a known version of an SDK, and is supported.
4601	//   "STALE" - A newer version of the SDK family exists, and an update
4602	// is recommended.
4603	//   "DEPRECATED" - This version of the SDK is deprecated and will
4604	// eventually be no
4605	// longer supported.
4606	//   "UNSUPPORTED" - Support for this SDK version has ended and it
4607	// should no longer be used.
4608	SdkSupportStatus string `json:"sdkSupportStatus,omitempty"`
4609
4610	// Version: The version of the SDK used to run the job.
4611	Version string `json:"version,omitempty"`
4612
4613	// VersionDisplayName: A readable string describing the version of the
4614	// SDK.
4615	VersionDisplayName string `json:"versionDisplayName,omitempty"`
4616
4617	// ForceSendFields is a list of field names (e.g. "SdkSupportStatus") to
4618	// unconditionally include in API requests. By default, fields with
4619	// empty values are omitted from API requests. However, any non-pointer,
4620	// non-interface field appearing in ForceSendFields will be sent to the
4621	// server regardless of whether the field is empty or not. This may be
4622	// used to include empty fields in Patch requests.
4623	ForceSendFields []string `json:"-"`
4624
4625	// NullFields is a list of field names (e.g. "SdkSupportStatus") to
4626	// include in API requests with the JSON null value. By default, fields
4627	// with empty values are omitted from API requests. However, any field
4628	// with an empty value appearing in NullFields will be sent to the
4629	// server as null. It is an error if a field in this list has a
4630	// non-empty value. This may be used to include null fields in Patch
4631	// requests.
4632	NullFields []string `json:"-"`
4633}
4634
4635func (s *SdkVersion) MarshalJSON() ([]byte, error) {
4636	type NoMethod SdkVersion
4637	raw := NoMethod(*s)
4638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4639}
4640
4641// SendDebugCaptureRequest: Request to send encoded debug information.
4642type SendDebugCaptureRequest struct {
4643	// ComponentId: The internal component id for which debug information is
4644	// sent.
4645	ComponentId string `json:"componentId,omitempty"`
4646
4647	// Data: The encoded debug information.
4648	Data string `json:"data,omitempty"`
4649
4650	// Location: The [regional
4651	// endpoint]
4652	// (https://cloud.google.com/dataflow/docs/concepts/regional-en
4653	// dpoints) that
4654	// contains the job specified by job_id.
4655	Location string `json:"location,omitempty"`
4656
4657	// WorkerId: The worker id, i.e., VM hostname.
4658	WorkerId string `json:"workerId,omitempty"`
4659
4660	// ForceSendFields is a list of field names (e.g. "ComponentId") to
4661	// unconditionally include in API requests. By default, fields with
4662	// empty values are omitted from API requests. However, any non-pointer,
4663	// non-interface field appearing in ForceSendFields will be sent to the
4664	// server regardless of whether the field is empty or not. This may be
4665	// used to include empty fields in Patch requests.
4666	ForceSendFields []string `json:"-"`
4667
4668	// NullFields is a list of field names (e.g. "ComponentId") 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 *SendDebugCaptureRequest) MarshalJSON() ([]byte, error) {
4678	type NoMethod SendDebugCaptureRequest
4679	raw := NoMethod(*s)
4680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4681}
4682
4683// SendDebugCaptureResponse: Response to a send capture request.
4684// nothing
4685type SendDebugCaptureResponse struct {
4686	// ServerResponse contains the HTTP response code and headers from the
4687	// server.
4688	googleapi.ServerResponse `json:"-"`
4689}
4690
4691// SendWorkerMessagesRequest: A request for sending worker messages to
4692// the service.
4693type SendWorkerMessagesRequest struct {
4694	// Location: The [regional
4695	// endpoint]
4696	// (https://cloud.google.com/dataflow/docs/concepts/regional-en
4697	// dpoints) that
4698	// contains the job.
4699	Location string `json:"location,omitempty"`
4700
4701	// WorkerMessages: The WorkerMessages to send.
4702	WorkerMessages []*WorkerMessage `json:"workerMessages,omitempty"`
4703
4704	// ForceSendFields is a list of field names (e.g. "Location") to
4705	// unconditionally include in API requests. By default, fields with
4706	// empty values are omitted from API requests. However, any non-pointer,
4707	// non-interface field appearing in ForceSendFields will be sent to the
4708	// server regardless of whether the field is empty or not. This may be
4709	// used to include empty fields in Patch requests.
4710	ForceSendFields []string `json:"-"`
4711
4712	// NullFields is a list of field names (e.g. "Location") to include in
4713	// API requests with the JSON null value. By default, fields with empty
4714	// values are omitted from API requests. However, any field with an
4715	// empty value appearing in NullFields will be sent to the server as
4716	// null. It is an error if a field in this list has a non-empty value.
4717	// This may be used to include null fields in Patch requests.
4718	NullFields []string `json:"-"`
4719}
4720
4721func (s *SendWorkerMessagesRequest) MarshalJSON() ([]byte, error) {
4722	type NoMethod SendWorkerMessagesRequest
4723	raw := NoMethod(*s)
4724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4725}
4726
4727// SendWorkerMessagesResponse: The response to the worker messages.
4728type SendWorkerMessagesResponse struct {
4729	// WorkerMessageResponses: The servers response to the worker messages.
4730	WorkerMessageResponses []*WorkerMessageResponse `json:"workerMessageResponses,omitempty"`
4731
4732	// ServerResponse contains the HTTP response code and headers from the
4733	// server.
4734	googleapi.ServerResponse `json:"-"`
4735
4736	// ForceSendFields is a list of field names (e.g.
4737	// "WorkerMessageResponses") to unconditionally include in API requests.
4738	// By default, fields with empty values are omitted from API requests.
4739	// However, any non-pointer, non-interface field appearing in
4740	// ForceSendFields will be sent to the server regardless of whether the
4741	// field is empty or not. This may be used to include empty fields in
4742	// Patch requests.
4743	ForceSendFields []string `json:"-"`
4744
4745	// NullFields is a list of field names (e.g. "WorkerMessageResponses")
4746	// to include in API requests with the JSON null value. By default,
4747	// fields with empty values are omitted from API requests. However, any
4748	// field with an empty value appearing in NullFields will be sent to the
4749	// server as null. It is an error if a field in this list has a
4750	// non-empty value. This may be used to include null fields in Patch
4751	// requests.
4752	NullFields []string `json:"-"`
4753}
4754
4755func (s *SendWorkerMessagesResponse) MarshalJSON() ([]byte, error) {
4756	type NoMethod SendWorkerMessagesResponse
4757	raw := NoMethod(*s)
4758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4759}
4760
4761// SeqMapTask: Describes a particular function to invoke.
4762type SeqMapTask struct {
4763	// Inputs: Information about each of the inputs.
4764	Inputs []*SideInputInfo `json:"inputs,omitempty"`
4765
4766	// Name: The user-provided name of the SeqDo operation.
4767	Name string `json:"name,omitempty"`
4768
4769	// OutputInfos: Information about each of the outputs.
4770	OutputInfos []*SeqMapTaskOutputInfo `json:"outputInfos,omitempty"`
4771
4772	// StageName: System-defined name of the stage containing the SeqDo
4773	// operation.
4774	// Unique across the workflow.
4775	StageName string `json:"stageName,omitempty"`
4776
4777	// SystemName: System-defined name of the SeqDo operation.
4778	// Unique across the workflow.
4779	SystemName string `json:"systemName,omitempty"`
4780
4781	// UserFn: The user function to invoke.
4782	UserFn googleapi.RawMessage `json:"userFn,omitempty"`
4783
4784	// ForceSendFields is a list of field names (e.g. "Inputs") to
4785	// unconditionally include in API requests. By default, fields with
4786	// empty values are omitted from API requests. However, any non-pointer,
4787	// non-interface field appearing in ForceSendFields will be sent to the
4788	// server regardless of whether the field is empty or not. This may be
4789	// used to include empty fields in Patch requests.
4790	ForceSendFields []string `json:"-"`
4791
4792	// NullFields is a list of field names (e.g. "Inputs") to include in API
4793	// requests with the JSON null value. By default, fields with empty
4794	// values are omitted from API requests. However, any field with an
4795	// empty value appearing in NullFields will be sent to the server as
4796	// null. It is an error if a field in this list has a non-empty value.
4797	// This may be used to include null fields in Patch requests.
4798	NullFields []string `json:"-"`
4799}
4800
4801func (s *SeqMapTask) MarshalJSON() ([]byte, error) {
4802	type NoMethod SeqMapTask
4803	raw := NoMethod(*s)
4804	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4805}
4806
4807// SeqMapTaskOutputInfo: Information about an output of a SeqMapTask.
4808type SeqMapTaskOutputInfo struct {
4809	// Sink: The sink to write the output value to.
4810	Sink *Sink `json:"sink,omitempty"`
4811
4812	// Tag: The id of the TupleTag the user code will tag the output value
4813	// by.
4814	Tag string `json:"tag,omitempty"`
4815
4816	// ForceSendFields is a list of field names (e.g. "Sink") to
4817	// unconditionally include in API requests. By default, fields with
4818	// empty values are omitted from API requests. However, any non-pointer,
4819	// non-interface field appearing in ForceSendFields will be sent to the
4820	// server regardless of whether the field is empty or not. This may be
4821	// used to include empty fields in Patch requests.
4822	ForceSendFields []string `json:"-"`
4823
4824	// NullFields is a list of field names (e.g. "Sink") to include in API
4825	// requests with the JSON null value. By default, fields with empty
4826	// values are omitted from API requests. However, any field with an
4827	// empty value appearing in NullFields will be sent to the server as
4828	// null. It is an error if a field in this list has a non-empty value.
4829	// This may be used to include null fields in Patch requests.
4830	NullFields []string `json:"-"`
4831}
4832
4833func (s *SeqMapTaskOutputInfo) MarshalJSON() ([]byte, error) {
4834	type NoMethod SeqMapTaskOutputInfo
4835	raw := NoMethod(*s)
4836	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4837}
4838
4839// ShellTask: A task which consists of a shell command for the worker to
4840// execute.
4841type ShellTask struct {
4842	// Command: The shell command to run.
4843	Command string `json:"command,omitempty"`
4844
4845	// ExitCode: Exit code for the task.
4846	ExitCode int64 `json:"exitCode,omitempty"`
4847
4848	// ForceSendFields is a list of field names (e.g. "Command") to
4849	// unconditionally include in API requests. By default, fields with
4850	// empty values are omitted from API requests. However, any non-pointer,
4851	// non-interface field appearing in ForceSendFields will be sent to the
4852	// server regardless of whether the field is empty or not. This may be
4853	// used to include empty fields in Patch requests.
4854	ForceSendFields []string `json:"-"`
4855
4856	// NullFields is a list of field names (e.g. "Command") to include in
4857	// API requests with the JSON null value. By default, fields with empty
4858	// values are omitted from API requests. However, any field with an
4859	// empty value appearing in NullFields will be sent to the server as
4860	// null. It is an error if a field in this list has a non-empty value.
4861	// This may be used to include null fields in Patch requests.
4862	NullFields []string `json:"-"`
4863}
4864
4865func (s *ShellTask) MarshalJSON() ([]byte, error) {
4866	type NoMethod ShellTask
4867	raw := NoMethod(*s)
4868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4869}
4870
4871// SideInputInfo: Information about a side input of a DoFn or an input
4872// of a SeqDoFn.
4873type SideInputInfo struct {
4874	// Kind: How to interpret the source element(s) as a side input value.
4875	Kind googleapi.RawMessage `json:"kind,omitempty"`
4876
4877	// Sources: The source(s) to read element(s) from to get the value of
4878	// this side input.
4879	// If more than one source, then the elements are taken from
4880	// the
4881	// sources, in the specified order if order matters.
4882	// At least one source is required.
4883	Sources []*Source `json:"sources,omitempty"`
4884
4885	// Tag: The id of the tag the user code will access this side input
4886	// by;
4887	// this should correspond to the tag of some MultiOutputInfo.
4888	Tag string `json:"tag,omitempty"`
4889
4890	// ForceSendFields is a list of field names (e.g. "Kind") to
4891	// unconditionally include in API requests. By default, fields with
4892	// empty values are omitted from API requests. However, any non-pointer,
4893	// non-interface field appearing in ForceSendFields will be sent to the
4894	// server regardless of whether the field is empty or not. This may be
4895	// used to include empty fields in Patch requests.
4896	ForceSendFields []string `json:"-"`
4897
4898	// NullFields is a list of field names (e.g. "Kind") to include in API
4899	// requests with the JSON null value. By default, fields with empty
4900	// values are omitted from API requests. However, any field with an
4901	// empty value appearing in NullFields will be sent to the server as
4902	// null. It is an error if a field in this list has a non-empty value.
4903	// This may be used to include null fields in Patch requests.
4904	NullFields []string `json:"-"`
4905}
4906
4907func (s *SideInputInfo) MarshalJSON() ([]byte, error) {
4908	type NoMethod SideInputInfo
4909	raw := NoMethod(*s)
4910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4911}
4912
4913// Sink: A sink that records can be encoded and written to.
4914type Sink struct {
4915	// Codec: The codec to use to encode data written to the sink.
4916	Codec googleapi.RawMessage `json:"codec,omitempty"`
4917
4918	// Spec: The sink to write to, plus its parameters.
4919	Spec googleapi.RawMessage `json:"spec,omitempty"`
4920
4921	// ForceSendFields is a list of field names (e.g. "Codec") to
4922	// unconditionally include in API requests. By default, fields with
4923	// empty values are omitted from API requests. However, any non-pointer,
4924	// non-interface field appearing in ForceSendFields will be sent to the
4925	// server regardless of whether the field is empty or not. This may be
4926	// used to include empty fields in Patch requests.
4927	ForceSendFields []string `json:"-"`
4928
4929	// NullFields is a list of field names (e.g. "Codec") to include in API
4930	// requests with the JSON null value. By default, fields with empty
4931	// values are omitted from API requests. However, any field with an
4932	// empty value appearing in NullFields will be sent to the server as
4933	// null. It is an error if a field in this list has a non-empty value.
4934	// This may be used to include null fields in Patch requests.
4935	NullFields []string `json:"-"`
4936}
4937
4938func (s *Sink) MarshalJSON() ([]byte, error) {
4939	type NoMethod Sink
4940	raw := NoMethod(*s)
4941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4942}
4943
4944// Source: A source that records can be read and decoded from.
4945type Source struct {
4946	// BaseSpecs: While splitting, sources may specify the produced
4947	// bundles
4948	// as differences against another source, in order to save
4949	// backend-side
4950	// memory and allow bigger jobs. For details, see SourceSplitRequest.
4951	// To support this use case, the full set of parameters of the source
4952	// is logically obtained by taking the latest explicitly specified
4953	// value
4954	// of each parameter in the order:
4955	// base_specs (later items win), spec (overrides anything in
4956	// base_specs).
4957	BaseSpecs []googleapi.RawMessage `json:"baseSpecs,omitempty"`
4958
4959	// Codec: The codec to use to decode data read from the source.
4960	Codec googleapi.RawMessage `json:"codec,omitempty"`
4961
4962	// DoesNotNeedSplitting: Setting this value to true hints to the
4963	// framework that the source
4964	// doesn't need splitting, and using SourceSplitRequest on it
4965	// would
4966	// yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
4967	//
4968	// E.g. a file splitter may set this to true when splitting a single
4969	// file
4970	// into a set of byte ranges of appropriate size, and set this
4971	// to false when splitting a filepattern into individual files.
4972	// However, for efficiency, a file splitter may decide to produce
4973	// file subranges directly from the filepattern to avoid a
4974	// splitting
4975	// round-trip.
4976	//
4977	// See SourceSplitRequest for an overview of the splitting
4978	// process.
4979	//
4980	// This field is meaningful only in the Source objects populated
4981	// by the user (e.g. when filling in a DerivedSource).
4982	// Source objects supplied by the framework to the user don't have
4983	// this field populated.
4984	DoesNotNeedSplitting bool `json:"doesNotNeedSplitting,omitempty"`
4985
4986	// Metadata: Optionally, metadata for this source can be supplied right
4987	// away,
4988	// avoiding a SourceGetMetadataOperation roundtrip
4989	// (see SourceOperationRequest).
4990	//
4991	// This field is meaningful only in the Source objects populated
4992	// by the user (e.g. when filling in a DerivedSource).
4993	// Source objects supplied by the framework to the user don't have
4994	// this field populated.
4995	Metadata *SourceMetadata `json:"metadata,omitempty"`
4996
4997	// Spec: The source to read from, plus its parameters.
4998	Spec googleapi.RawMessage `json:"spec,omitempty"`
4999
5000	// ForceSendFields is a list of field names (e.g. "BaseSpecs") to
5001	// unconditionally include in API requests. By default, fields with
5002	// empty values are omitted from API requests. However, any non-pointer,
5003	// non-interface field appearing in ForceSendFields will be sent to the
5004	// server regardless of whether the field is empty or not. This may be
5005	// used to include empty fields in Patch requests.
5006	ForceSendFields []string `json:"-"`
5007
5008	// NullFields is a list of field names (e.g. "BaseSpecs") to include in
5009	// API requests with the JSON null value. By default, fields with empty
5010	// values are omitted from API requests. However, any field with an
5011	// empty value appearing in NullFields will be sent to the server as
5012	// null. It is an error if a field in this list has a non-empty value.
5013	// This may be used to include null fields in Patch requests.
5014	NullFields []string `json:"-"`
5015}
5016
5017func (s *Source) MarshalJSON() ([]byte, error) {
5018	type NoMethod Source
5019	raw := NoMethod(*s)
5020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5021}
5022
5023// SourceFork: DEPRECATED in favor of DynamicSourceSplit.
5024type SourceFork struct {
5025	// Primary: DEPRECATED
5026	Primary *SourceSplitShard `json:"primary,omitempty"`
5027
5028	// PrimarySource: DEPRECATED
5029	PrimarySource *DerivedSource `json:"primarySource,omitempty"`
5030
5031	// Residual: DEPRECATED
5032	Residual *SourceSplitShard `json:"residual,omitempty"`
5033
5034	// ResidualSource: DEPRECATED
5035	ResidualSource *DerivedSource `json:"residualSource,omitempty"`
5036
5037	// ForceSendFields is a list of field names (e.g. "Primary") to
5038	// unconditionally include in API requests. By default, fields with
5039	// empty values are omitted from API requests. However, any non-pointer,
5040	// non-interface field appearing in ForceSendFields will be sent to the
5041	// server regardless of whether the field is empty or not. This may be
5042	// used to include empty fields in Patch requests.
5043	ForceSendFields []string `json:"-"`
5044
5045	// NullFields is a list of field names (e.g. "Primary") to include in
5046	// API requests with the JSON null value. By default, fields with empty
5047	// values are omitted from API requests. However, any field with an
5048	// empty value appearing in NullFields will be sent to the server as
5049	// null. It is an error if a field in this list has a non-empty value.
5050	// This may be used to include null fields in Patch requests.
5051	NullFields []string `json:"-"`
5052}
5053
5054func (s *SourceFork) MarshalJSON() ([]byte, error) {
5055	type NoMethod SourceFork
5056	raw := NoMethod(*s)
5057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5058}
5059
5060// SourceGetMetadataRequest: A request to compute the SourceMetadata of
5061// a Source.
5062type SourceGetMetadataRequest struct {
5063	// Source: Specification of the source whose metadata should be
5064	// computed.
5065	Source *Source `json:"source,omitempty"`
5066
5067	// ForceSendFields is a list of field names (e.g. "Source") to
5068	// unconditionally include in API requests. By default, fields with
5069	// empty values are omitted from API requests. However, any non-pointer,
5070	// non-interface field appearing in ForceSendFields will be sent to the
5071	// server regardless of whether the field is empty or not. This may be
5072	// used to include empty fields in Patch requests.
5073	ForceSendFields []string `json:"-"`
5074
5075	// NullFields is a list of field names (e.g. "Source") to include in API
5076	// requests with the JSON null value. By default, fields with empty
5077	// values are omitted from API requests. However, any field with an
5078	// empty value appearing in NullFields will be sent to the server as
5079	// null. It is an error if a field in this list has a non-empty value.
5080	// This may be used to include null fields in Patch requests.
5081	NullFields []string `json:"-"`
5082}
5083
5084func (s *SourceGetMetadataRequest) MarshalJSON() ([]byte, error) {
5085	type NoMethod SourceGetMetadataRequest
5086	raw := NoMethod(*s)
5087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5088}
5089
5090// SourceGetMetadataResponse: The result of a
5091// SourceGetMetadataOperation.
5092type SourceGetMetadataResponse struct {
5093	// Metadata: The computed metadata.
5094	Metadata *SourceMetadata `json:"metadata,omitempty"`
5095
5096	// ForceSendFields is a list of field names (e.g. "Metadata") to
5097	// unconditionally include in API requests. By default, fields with
5098	// empty values are omitted from API requests. However, any non-pointer,
5099	// non-interface field appearing in ForceSendFields will be sent to the
5100	// server regardless of whether the field is empty or not. This may be
5101	// used to include empty fields in Patch requests.
5102	ForceSendFields []string `json:"-"`
5103
5104	// NullFields is a list of field names (e.g. "Metadata") to include in
5105	// API requests with the JSON null value. By default, fields with empty
5106	// values are omitted from API requests. However, any field with an
5107	// empty value appearing in NullFields will be sent to the server as
5108	// null. It is an error if a field in this list has a non-empty value.
5109	// This may be used to include null fields in Patch requests.
5110	NullFields []string `json:"-"`
5111}
5112
5113func (s *SourceGetMetadataResponse) MarshalJSON() ([]byte, error) {
5114	type NoMethod SourceGetMetadataResponse
5115	raw := NoMethod(*s)
5116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5117}
5118
5119// SourceMetadata: Metadata about a Source useful for automatically
5120// optimizing
5121// and tuning the pipeline, etc.
5122type SourceMetadata struct {
5123	// EstimatedSizeBytes: An estimate of the total size (in bytes) of the
5124	// data that would be
5125	// read from this source.  This estimate is in terms of external
5126	// storage
5127	// size, before any decompression or other processing done by the
5128	// reader.
5129	EstimatedSizeBytes int64 `json:"estimatedSizeBytes,omitempty,string"`
5130
5131	// Infinite: Specifies that the size of this source is known to be
5132	// infinite
5133	// (this is a streaming source).
5134	Infinite bool `json:"infinite,omitempty"`
5135
5136	// ProducesSortedKeys: Whether this source is known to produce key/value
5137	// pairs with
5138	// the (encoded) keys in lexicographically sorted order.
5139	ProducesSortedKeys bool `json:"producesSortedKeys,omitempty"`
5140
5141	// ForceSendFields is a list of field names (e.g. "EstimatedSizeBytes")
5142	// to unconditionally include in API requests. By default, fields with
5143	// empty values are omitted from API requests. However, any non-pointer,
5144	// non-interface field appearing in ForceSendFields will be sent to the
5145	// server regardless of whether the field is empty or not. This may be
5146	// used to include empty fields in Patch requests.
5147	ForceSendFields []string `json:"-"`
5148
5149	// NullFields is a list of field names (e.g. "EstimatedSizeBytes") 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 *SourceMetadata) MarshalJSON() ([]byte, error) {
5160	type NoMethod SourceMetadata
5161	raw := NoMethod(*s)
5162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5163}
5164
5165// SourceOperationRequest: A work item that represents the different
5166// operations that can be
5167// performed on a user-defined Source specification.
5168type SourceOperationRequest struct {
5169	// GetMetadata: Information about a request to get metadata about a
5170	// source.
5171	GetMetadata *SourceGetMetadataRequest `json:"getMetadata,omitempty"`
5172
5173	// Name: User-provided name of the Read instruction for this source.
5174	Name string `json:"name,omitempty"`
5175
5176	// OriginalName: System-defined name for the Read instruction for this
5177	// source
5178	// in the original workflow graph.
5179	OriginalName string `json:"originalName,omitempty"`
5180
5181	// Split: Information about a request to split a source.
5182	Split *SourceSplitRequest `json:"split,omitempty"`
5183
5184	// StageName: System-defined name of the stage containing the source
5185	// operation.
5186	// Unique across the workflow.
5187	StageName string `json:"stageName,omitempty"`
5188
5189	// SystemName: System-defined name of the Read instruction for this
5190	// source.
5191	// Unique across the workflow.
5192	SystemName string `json:"systemName,omitempty"`
5193
5194	// ForceSendFields is a list of field names (e.g. "GetMetadata") to
5195	// unconditionally include in API requests. By default, fields with
5196	// empty values are omitted from API requests. However, any non-pointer,
5197	// non-interface field appearing in ForceSendFields will be sent to the
5198	// server regardless of whether the field is empty or not. This may be
5199	// used to include empty fields in Patch requests.
5200	ForceSendFields []string `json:"-"`
5201
5202	// NullFields is a list of field names (e.g. "GetMetadata") to include
5203	// in API requests with the JSON null value. By default, fields with
5204	// empty values are omitted from API requests. However, any field with
5205	// an empty value appearing in NullFields will be sent to the server as
5206	// null. It is an error if a field in this list has a non-empty value.
5207	// This may be used to include null fields in Patch requests.
5208	NullFields []string `json:"-"`
5209}
5210
5211func (s *SourceOperationRequest) MarshalJSON() ([]byte, error) {
5212	type NoMethod SourceOperationRequest
5213	raw := NoMethod(*s)
5214	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5215}
5216
5217// SourceOperationResponse: The result of a SourceOperationRequest,
5218// specified in
5219// ReportWorkItemStatusRequest.source_operation when the work item
5220// is completed.
5221type SourceOperationResponse struct {
5222	// GetMetadata: A response to a request to get metadata about a source.
5223	GetMetadata *SourceGetMetadataResponse `json:"getMetadata,omitempty"`
5224
5225	// Split: A response to a request to split a source.
5226	Split *SourceSplitResponse `json:"split,omitempty"`
5227
5228	// ForceSendFields is a list of field names (e.g. "GetMetadata") to
5229	// unconditionally include in API requests. By default, fields with
5230	// empty values are omitted from API requests. However, any non-pointer,
5231	// non-interface field appearing in ForceSendFields will be sent to the
5232	// server regardless of whether the field is empty or not. This may be
5233	// used to include empty fields in Patch requests.
5234	ForceSendFields []string `json:"-"`
5235
5236	// NullFields is a list of field names (e.g. "GetMetadata") to include
5237	// in API requests with the JSON null value. By default, fields with
5238	// empty values are omitted from API requests. However, any field with
5239	// an empty value appearing in NullFields will be sent to the server as
5240	// null. It is an error if a field in this list has a non-empty value.
5241	// This may be used to include null fields in Patch requests.
5242	NullFields []string `json:"-"`
5243}
5244
5245func (s *SourceOperationResponse) MarshalJSON() ([]byte, error) {
5246	type NoMethod SourceOperationResponse
5247	raw := NoMethod(*s)
5248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5249}
5250
5251// SourceSplitOptions: Hints for splitting a Source into bundles (parts
5252// for parallel
5253// processing) using SourceSplitRequest.
5254type SourceSplitOptions struct {
5255	// DesiredBundleSizeBytes: The source should be split into a set of
5256	// bundles where the estimated size
5257	// of each is approximately this many bytes.
5258	DesiredBundleSizeBytes int64 `json:"desiredBundleSizeBytes,omitempty,string"`
5259
5260	// DesiredShardSizeBytes: DEPRECATED in favor of
5261	// desired_bundle_size_bytes.
5262	DesiredShardSizeBytes int64 `json:"desiredShardSizeBytes,omitempty,string"`
5263
5264	// ForceSendFields is a list of field names (e.g.
5265	// "DesiredBundleSizeBytes") to unconditionally include in API requests.
5266	// By default, fields with empty values are omitted from API requests.
5267	// However, any non-pointer, non-interface field appearing in
5268	// ForceSendFields will be sent to the server regardless of whether the
5269	// field is empty or not. This may be used to include empty fields in
5270	// Patch requests.
5271	ForceSendFields []string `json:"-"`
5272
5273	// NullFields is a list of field names (e.g. "DesiredBundleSizeBytes")
5274	// to include in API requests with the JSON null value. By default,
5275	// fields with empty values are omitted from API requests. However, any
5276	// field with an empty value appearing in NullFields will be sent to the
5277	// server as null. It is an error if a field in this list has a
5278	// non-empty value. This may be used to include null fields in Patch
5279	// requests.
5280	NullFields []string `json:"-"`
5281}
5282
5283func (s *SourceSplitOptions) MarshalJSON() ([]byte, error) {
5284	type NoMethod SourceSplitOptions
5285	raw := NoMethod(*s)
5286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5287}
5288
5289// SourceSplitRequest: Represents the operation to split a high-level
5290// Source specification
5291// into bundles (parts for parallel processing).
5292//
5293// At a high level, splitting of a source into bundles happens as
5294// follows:
5295// SourceSplitRequest is applied to the source. If it
5296// returns
5297// SOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting happens and
5298// the source
5299// is used "as is". Otherwise, splitting is applied recursively to
5300// each
5301// produced DerivedSource.
5302//
5303// As an optimization, for any Source, if its does_not_need_splitting
5304// is
5305// true, the framework assumes that splitting this source would
5306// return
5307// SOURCE_SPLIT_OUTCOME_USE_CURRENT, and doesn't initiate a
5308// SourceSplitRequest.
5309// This applies both to the initial source being split and to
5310// bundles
5311// produced from it.
5312type SourceSplitRequest struct {
5313	// Options: Hints for tuning the splitting process.
5314	Options *SourceSplitOptions `json:"options,omitempty"`
5315
5316	// Source: Specification of the source to be split.
5317	Source *Source `json:"source,omitempty"`
5318
5319	// ForceSendFields is a list of field names (e.g. "Options") to
5320	// unconditionally include in API requests. By default, fields with
5321	// empty values are omitted from API requests. However, any non-pointer,
5322	// non-interface field appearing in ForceSendFields will be sent to the
5323	// server regardless of whether the field is empty or not. This may be
5324	// used to include empty fields in Patch requests.
5325	ForceSendFields []string `json:"-"`
5326
5327	// NullFields is a list of field names (e.g. "Options") to include in
5328	// API requests with the JSON null value. By default, fields with empty
5329	// values are omitted from API requests. However, any field with an
5330	// empty value appearing in NullFields will be sent to the server as
5331	// null. It is an error if a field in this list has a non-empty value.
5332	// This may be used to include null fields in Patch requests.
5333	NullFields []string `json:"-"`
5334}
5335
5336func (s *SourceSplitRequest) MarshalJSON() ([]byte, error) {
5337	type NoMethod SourceSplitRequest
5338	raw := NoMethod(*s)
5339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5340}
5341
5342// SourceSplitResponse: The response to a SourceSplitRequest.
5343type SourceSplitResponse struct {
5344	// Bundles: If outcome is SPLITTING_HAPPENED, then this is a list of
5345	// bundles
5346	// into which the source was split. Otherwise this field is
5347	// ignored.
5348	// This list can be empty, which means the source represents an empty
5349	// input.
5350	Bundles []*DerivedSource `json:"bundles,omitempty"`
5351
5352	// Outcome: Indicates whether splitting happened and produced a list of
5353	// bundles.
5354	// If this is USE_CURRENT_SOURCE_AS_IS, the current source should
5355	// be processed "as is" without splitting. "bundles" is ignored in this
5356	// case.
5357	// If this is SPLITTING_HAPPENED, then "bundles" contains a list
5358	// of
5359	// bundles into which the source was split.
5360	//
5361	// Possible values:
5362	//   "SOURCE_SPLIT_OUTCOME_UNKNOWN" - The source split outcome is
5363	// unknown, or unspecified.
5364	//   "SOURCE_SPLIT_OUTCOME_USE_CURRENT" - The current source should be
5365	// processed "as is" without splitting.
5366	//   "SOURCE_SPLIT_OUTCOME_SPLITTING_HAPPENED" - Splitting produced a
5367	// list of bundles.
5368	Outcome string `json:"outcome,omitempty"`
5369
5370	// Shards: DEPRECATED in favor of bundles.
5371	Shards []*SourceSplitShard `json:"shards,omitempty"`
5372
5373	// ForceSendFields is a list of field names (e.g. "Bundles") to
5374	// unconditionally include in API requests. By default, fields with
5375	// empty values are omitted from API requests. However, any non-pointer,
5376	// non-interface field appearing in ForceSendFields will be sent to the
5377	// server regardless of whether the field is empty or not. This may be
5378	// used to include empty fields in Patch requests.
5379	ForceSendFields []string `json:"-"`
5380
5381	// NullFields is a list of field names (e.g. "Bundles") to include in
5382	// API requests with the JSON null value. By default, fields with empty
5383	// values are omitted from API requests. However, any field with an
5384	// empty value appearing in NullFields will be sent to the server as
5385	// null. It is an error if a field in this list has a non-empty value.
5386	// This may be used to include null fields in Patch requests.
5387	NullFields []string `json:"-"`
5388}
5389
5390func (s *SourceSplitResponse) MarshalJSON() ([]byte, error) {
5391	type NoMethod SourceSplitResponse
5392	raw := NoMethod(*s)
5393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5394}
5395
5396// SourceSplitShard: DEPRECATED in favor of DerivedSource.
5397type SourceSplitShard struct {
5398	// DerivationMode: DEPRECATED
5399	//
5400	// Possible values:
5401	//   "SOURCE_DERIVATION_MODE_UNKNOWN" - The source derivation is
5402	// unknown, or unspecified.
5403	//   "SOURCE_DERIVATION_MODE_INDEPENDENT" - Produce a completely
5404	// independent Source with no base.
5405	//   "SOURCE_DERIVATION_MODE_CHILD_OF_CURRENT" - Produce a Source based
5406	// on the Source being split.
5407	//   "SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" - Produce a Source
5408	// based on the base of the Source being split.
5409	DerivationMode string `json:"derivationMode,omitempty"`
5410
5411	// Source: DEPRECATED
5412	Source *Source `json:"source,omitempty"`
5413
5414	// ForceSendFields is a list of field names (e.g. "DerivationMode") to
5415	// unconditionally include in API requests. By default, fields with
5416	// empty values are omitted from API requests. However, any non-pointer,
5417	// non-interface field appearing in ForceSendFields will be sent to the
5418	// server regardless of whether the field is empty or not. This may be
5419	// used to include empty fields in Patch requests.
5420	ForceSendFields []string `json:"-"`
5421
5422	// NullFields is a list of field names (e.g. "DerivationMode") to
5423	// include in API requests with the JSON null value. By default, fields
5424	// with empty values are omitted from API requests. However, any field
5425	// with an empty value appearing in NullFields will be sent to the
5426	// server as null. It is an error if a field in this list has a
5427	// non-empty value. This may be used to include null fields in Patch
5428	// requests.
5429	NullFields []string `json:"-"`
5430}
5431
5432func (s *SourceSplitShard) MarshalJSON() ([]byte, error) {
5433	type NoMethod SourceSplitShard
5434	raw := NoMethod(*s)
5435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5436}
5437
5438// SpannerIODetails: Metadata for a Spanner connector used by the job.
5439type SpannerIODetails struct {
5440	// DatabaseId: DatabaseId accessed in the connection.
5441	DatabaseId string `json:"databaseId,omitempty"`
5442
5443	// InstanceId: InstanceId accessed in the connection.
5444	InstanceId string `json:"instanceId,omitempty"`
5445
5446	// ProjectId: ProjectId accessed in the connection.
5447	ProjectId string `json:"projectId,omitempty"`
5448
5449	// ForceSendFields is a list of field names (e.g. "DatabaseId") to
5450	// unconditionally include in API requests. By default, fields with
5451	// empty values are omitted from API requests. However, any non-pointer,
5452	// non-interface field appearing in ForceSendFields will be sent to the
5453	// server regardless of whether the field is empty or not. This may be
5454	// used to include empty fields in Patch requests.
5455	ForceSendFields []string `json:"-"`
5456
5457	// NullFields is a list of field names (e.g. "DatabaseId") to include in
5458	// API requests with the JSON null value. By default, fields with empty
5459	// values are omitted from API requests. However, any field with an
5460	// empty value appearing in NullFields will be sent to the server as
5461	// null. It is an error if a field in this list has a non-empty value.
5462	// This may be used to include null fields in Patch requests.
5463	NullFields []string `json:"-"`
5464}
5465
5466func (s *SpannerIODetails) MarshalJSON() ([]byte, error) {
5467	type NoMethod SpannerIODetails
5468	raw := NoMethod(*s)
5469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5470}
5471
5472// SplitInt64: A representation of an int64, n, that is immune to
5473// precision loss when
5474// encoded in JSON.
5475type SplitInt64 struct {
5476	// HighBits: The high order bits, including the sign: n >> 32.
5477	HighBits int64 `json:"highBits,omitempty"`
5478
5479	// LowBits: The low order bits: n & 0xffffffff.
5480	LowBits int64 `json:"lowBits,omitempty"`
5481
5482	// ForceSendFields is a list of field names (e.g. "HighBits") to
5483	// unconditionally include in API requests. By default, fields with
5484	// empty values are omitted from API requests. However, any non-pointer,
5485	// non-interface field appearing in ForceSendFields will be sent to the
5486	// server regardless of whether the field is empty or not. This may be
5487	// used to include empty fields in Patch requests.
5488	ForceSendFields []string `json:"-"`
5489
5490	// NullFields is a list of field names (e.g. "HighBits") to include in
5491	// API requests with the JSON null value. By default, fields with empty
5492	// values are omitted from API requests. However, any field with an
5493	// empty value appearing in NullFields will be sent to the server as
5494	// null. It is an error if a field in this list has a non-empty value.
5495	// This may be used to include null fields in Patch requests.
5496	NullFields []string `json:"-"`
5497}
5498
5499func (s *SplitInt64) MarshalJSON() ([]byte, error) {
5500	type NoMethod SplitInt64
5501	raw := NoMethod(*s)
5502	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5503}
5504
5505// StageSource: Description of an input or output of an execution stage.
5506type StageSource struct {
5507	// Name: Dataflow service generated name for this source.
5508	Name string `json:"name,omitempty"`
5509
5510	// OriginalTransformOrCollection: User name for the original user
5511	// transform or collection with which this
5512	// source is most closely associated.
5513	OriginalTransformOrCollection string `json:"originalTransformOrCollection,omitempty"`
5514
5515	// SizeBytes: Size of the source, if measurable.
5516	SizeBytes int64 `json:"sizeBytes,omitempty,string"`
5517
5518	// UserName: Human-readable name for this source; may be user or system
5519	// generated.
5520	UserName string `json:"userName,omitempty"`
5521
5522	// ForceSendFields is a list of field names (e.g. "Name") to
5523	// unconditionally include in API requests. By default, fields with
5524	// empty values are omitted from API requests. However, any non-pointer,
5525	// non-interface field appearing in ForceSendFields will be sent to the
5526	// server regardless of whether the field is empty or not. This may be
5527	// used to include empty fields in Patch requests.
5528	ForceSendFields []string `json:"-"`
5529
5530	// NullFields is a list of field names (e.g. "Name") to include in API
5531	// requests with the JSON null value. By default, fields with empty
5532	// values are omitted from API requests. However, any field with an
5533	// empty value appearing in NullFields will be sent to the server as
5534	// null. It is an error if a field in this list has a non-empty value.
5535	// This may be used to include null fields in Patch requests.
5536	NullFields []string `json:"-"`
5537}
5538
5539func (s *StageSource) MarshalJSON() ([]byte, error) {
5540	type NoMethod StageSource
5541	raw := NoMethod(*s)
5542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5543}
5544
5545// StateFamilyConfig: State family configuration.
5546type StateFamilyConfig struct {
5547	// IsRead: If true, this family corresponds to a read operation.
5548	IsRead bool `json:"isRead,omitempty"`
5549
5550	// StateFamily: The state family value.
5551	StateFamily string `json:"stateFamily,omitempty"`
5552
5553	// ForceSendFields is a list of field names (e.g. "IsRead") to
5554	// unconditionally include in API requests. By default, fields with
5555	// empty values are omitted from API requests. However, any non-pointer,
5556	// non-interface field appearing in ForceSendFields will be sent to the
5557	// server regardless of whether the field is empty or not. This may be
5558	// used to include empty fields in Patch requests.
5559	ForceSendFields []string `json:"-"`
5560
5561	// NullFields is a list of field names (e.g. "IsRead") to include in API
5562	// requests with the JSON null value. By default, fields with empty
5563	// values are omitted from API requests. However, any field with an
5564	// empty value appearing in NullFields will be sent to the server as
5565	// null. It is an error if a field in this list has a non-empty value.
5566	// This may be used to include null fields in Patch requests.
5567	NullFields []string `json:"-"`
5568}
5569
5570func (s *StateFamilyConfig) MarshalJSON() ([]byte, error) {
5571	type NoMethod StateFamilyConfig
5572	raw := NoMethod(*s)
5573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5574}
5575
5576// Status: The `Status` type defines a logical error model that is
5577// suitable for
5578// different programming environments, including REST APIs and RPC APIs.
5579// It is
5580// used by [gRPC](https://github.com/grpc). Each `Status` message
5581// contains
5582// three pieces of data: error code, error message, and error
5583// details.
5584//
5585// You can find out more about this error model and how to work with it
5586// in the
5587// [API Design Guide](https://cloud.google.com/apis/design/errors).
5588type Status struct {
5589	// Code: The status code, which should be an enum value of
5590	// google.rpc.Code.
5591	Code int64 `json:"code,omitempty"`
5592
5593	// Details: A list of messages that carry the error details.  There is a
5594	// common set of
5595	// message types for APIs to use.
5596	Details []googleapi.RawMessage `json:"details,omitempty"`
5597
5598	// Message: A developer-facing error message, which should be in
5599	// English. Any
5600	// user-facing error message should be localized and sent in
5601	// the
5602	// google.rpc.Status.details field, or localized by the client.
5603	Message string `json:"message,omitempty"`
5604
5605	// ForceSendFields is a list of field names (e.g. "Code") to
5606	// unconditionally include in API requests. By default, fields with
5607	// empty values are omitted from API requests. However, any non-pointer,
5608	// non-interface field appearing in ForceSendFields will be sent to the
5609	// server regardless of whether the field is empty or not. This may be
5610	// used to include empty fields in Patch requests.
5611	ForceSendFields []string `json:"-"`
5612
5613	// NullFields is a list of field names (e.g. "Code") to include in API
5614	// requests with the JSON null value. By default, fields with empty
5615	// values are omitted from API requests. However, any field with an
5616	// empty value appearing in NullFields will be sent to the server as
5617	// null. It is an error if a field in this list has a non-empty value.
5618	// This may be used to include null fields in Patch requests.
5619	NullFields []string `json:"-"`
5620}
5621
5622func (s *Status) MarshalJSON() ([]byte, error) {
5623	type NoMethod Status
5624	raw := NoMethod(*s)
5625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5626}
5627
5628// Step: Defines a particular step within a Cloud Dataflow job.
5629//
5630// A job consists of multiple steps, each of which performs
5631// some
5632// specific operation as part of the overall job.  Data is
5633// typically
5634// passed from one step to another as part of the job.
5635//
5636// Here's an example of a sequence of steps which together implement
5637// a
5638// Map-Reduce job:
5639//
5640//   * Read a collection of data from some source, parsing the
5641//     collection's elements.
5642//
5643//   * Validate the elements.
5644//
5645//   * Apply a user-defined function to map each element to some value
5646//     and extract an element-specific key value.
5647//
5648//   * Group elements with the same key into a single element with
5649//     that key, transforming a multiply-keyed collection into a
5650//     uniquely-keyed collection.
5651//
5652//   * Write the elements out to some data sink.
5653//
5654// Note that the Cloud Dataflow service may be used to run many
5655// different
5656// types of jobs, not just Map-Reduce.
5657type Step struct {
5658	// Kind: The kind of step in the Cloud Dataflow job.
5659	Kind string `json:"kind,omitempty"`
5660
5661	// Name: The name that identifies the step. This must be unique for
5662	// each
5663	// step with respect to all other steps in the Cloud Dataflow job.
5664	Name string `json:"name,omitempty"`
5665
5666	// Properties: Named properties associated with the step. Each kind
5667	// of
5668	// predefined step has its own required set of properties.
5669	// Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
5670	Properties googleapi.RawMessage `json:"properties,omitempty"`
5671
5672	// ForceSendFields is a list of field names (e.g. "Kind") to
5673	// unconditionally include in API requests. By default, fields with
5674	// empty values are omitted from API requests. However, any non-pointer,
5675	// non-interface field appearing in ForceSendFields will be sent to the
5676	// server regardless of whether the field is empty or not. This may be
5677	// used to include empty fields in Patch requests.
5678	ForceSendFields []string `json:"-"`
5679
5680	// NullFields is a list of field names (e.g. "Kind") to include in API
5681	// requests with the JSON null value. By default, fields with empty
5682	// values are omitted from API requests. However, any field with an
5683	// empty value appearing in NullFields will be sent to the server as
5684	// null. It is an error if a field in this list has a non-empty value.
5685	// This may be used to include null fields in Patch requests.
5686	NullFields []string `json:"-"`
5687}
5688
5689func (s *Step) MarshalJSON() ([]byte, error) {
5690	type NoMethod Step
5691	raw := NoMethod(*s)
5692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5693}
5694
5695// StreamLocation: Describes a stream of data, either as input to be
5696// processed or as
5697// output of a streaming Dataflow job.
5698type StreamLocation struct {
5699	// CustomSourceLocation: The stream is a custom source.
5700	CustomSourceLocation *CustomSourceLocation `json:"customSourceLocation,omitempty"`
5701
5702	// PubsubLocation: The stream is a pubsub stream.
5703	PubsubLocation *PubsubLocation `json:"pubsubLocation,omitempty"`
5704
5705	// SideInputLocation: The stream is a streaming side input.
5706	SideInputLocation *StreamingSideInputLocation `json:"sideInputLocation,omitempty"`
5707
5708	// StreamingStageLocation: The stream is part of another computation
5709	// within the current
5710	// streaming Dataflow job.
5711	StreamingStageLocation *StreamingStageLocation `json:"streamingStageLocation,omitempty"`
5712
5713	// ForceSendFields is a list of field names (e.g.
5714	// "CustomSourceLocation") to unconditionally include in API requests.
5715	// By default, fields with empty values are omitted from API requests.
5716	// However, any non-pointer, non-interface field appearing in
5717	// ForceSendFields will be sent to the server regardless of whether the
5718	// field is empty or not. This may be used to include empty fields in
5719	// Patch requests.
5720	ForceSendFields []string `json:"-"`
5721
5722	// NullFields is a list of field names (e.g. "CustomSourceLocation") to
5723	// include in API requests with the JSON null value. By default, fields
5724	// with empty values are omitted from API requests. However, any field
5725	// with an empty value appearing in NullFields will be sent to the
5726	// server as null. It is an error if a field in this list has a
5727	// non-empty value. This may be used to include null fields in Patch
5728	// requests.
5729	NullFields []string `json:"-"`
5730}
5731
5732func (s *StreamLocation) MarshalJSON() ([]byte, error) {
5733	type NoMethod StreamLocation
5734	raw := NoMethod(*s)
5735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5736}
5737
5738// StreamingApplianceSnapshotConfig: Streaming appliance snapshot
5739// configuration.
5740type StreamingApplianceSnapshotConfig struct {
5741	// ImportStateEndpoint: Indicates which endpoint is used to import
5742	// appliance state.
5743	ImportStateEndpoint string `json:"importStateEndpoint,omitempty"`
5744
5745	// SnapshotId: If set, indicates the snapshot id for the snapshot being
5746	// performed.
5747	SnapshotId string `json:"snapshotId,omitempty"`
5748
5749	// ForceSendFields is a list of field names (e.g. "ImportStateEndpoint")
5750	// to unconditionally include in API requests. By default, fields with
5751	// empty values are omitted from API requests. However, any non-pointer,
5752	// non-interface field appearing in ForceSendFields will be sent to the
5753	// server regardless of whether the field is empty or not. This may be
5754	// used to include empty fields in Patch requests.
5755	ForceSendFields []string `json:"-"`
5756
5757	// NullFields is a list of field names (e.g. "ImportStateEndpoint") to
5758	// include in API requests with the JSON null value. By default, fields
5759	// with empty values are omitted from API requests. However, any field
5760	// with an empty value appearing in NullFields will be sent to the
5761	// server as null. It is an error if a field in this list has a
5762	// non-empty value. This may be used to include null fields in Patch
5763	// requests.
5764	NullFields []string `json:"-"`
5765}
5766
5767func (s *StreamingApplianceSnapshotConfig) MarshalJSON() ([]byte, error) {
5768	type NoMethod StreamingApplianceSnapshotConfig
5769	raw := NoMethod(*s)
5770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5771}
5772
5773// StreamingComputationConfig: Configuration information for a single
5774// streaming computation.
5775type StreamingComputationConfig struct {
5776	// ComputationId: Unique identifier for this computation.
5777	ComputationId string `json:"computationId,omitempty"`
5778
5779	// Instructions: Instructions that comprise the computation.
5780	Instructions []*ParallelInstruction `json:"instructions,omitempty"`
5781
5782	// StageName: Stage name of this computation.
5783	StageName string `json:"stageName,omitempty"`
5784
5785	// SystemName: System defined name for this computation.
5786	SystemName string `json:"systemName,omitempty"`
5787
5788	// TransformUserNameToStateFamily: Map from user name of stateful
5789	// transforms in this stage to their state
5790	// family.
5791	TransformUserNameToStateFamily map[string]string `json:"transformUserNameToStateFamily,omitempty"`
5792
5793	// ForceSendFields is a list of field names (e.g. "ComputationId") to
5794	// unconditionally include in API requests. By default, fields with
5795	// empty values are omitted from API requests. However, any non-pointer,
5796	// non-interface field appearing in ForceSendFields will be sent to the
5797	// server regardless of whether the field is empty or not. This may be
5798	// used to include empty fields in Patch requests.
5799	ForceSendFields []string `json:"-"`
5800
5801	// NullFields is a list of field names (e.g. "ComputationId") to include
5802	// in API requests with the JSON null value. By default, fields with
5803	// empty values are omitted from API requests. However, any field with
5804	// an empty value appearing in NullFields will be sent to the server as
5805	// null. It is an error if a field in this list has a non-empty value.
5806	// This may be used to include null fields in Patch requests.
5807	NullFields []string `json:"-"`
5808}
5809
5810func (s *StreamingComputationConfig) MarshalJSON() ([]byte, error) {
5811	type NoMethod StreamingComputationConfig
5812	raw := NoMethod(*s)
5813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5814}
5815
5816// StreamingComputationRanges: Describes full or partial data disk
5817// assignment information of the computation
5818// ranges.
5819type StreamingComputationRanges struct {
5820	// ComputationId: The ID of the computation.
5821	ComputationId string `json:"computationId,omitempty"`
5822
5823	// RangeAssignments: Data disk assignments for ranges from this
5824	// computation.
5825	RangeAssignments []*KeyRangeDataDiskAssignment `json:"rangeAssignments,omitempty"`
5826
5827	// ForceSendFields is a list of field names (e.g. "ComputationId") to
5828	// unconditionally include in API requests. By default, fields with
5829	// empty values are omitted from API requests. However, any non-pointer,
5830	// non-interface field appearing in ForceSendFields will be sent to the
5831	// server regardless of whether the field is empty or not. This may be
5832	// used to include empty fields in Patch requests.
5833	ForceSendFields []string `json:"-"`
5834
5835	// NullFields is a list of field names (e.g. "ComputationId") 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 *StreamingComputationRanges) MarshalJSON() ([]byte, error) {
5845	type NoMethod StreamingComputationRanges
5846	raw := NoMethod(*s)
5847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5848}
5849
5850// StreamingComputationTask: A task which describes what action should
5851// be performed for the specified
5852// streaming computation ranges.
5853type StreamingComputationTask struct {
5854	// ComputationRanges: Contains ranges of a streaming computation this
5855	// task should apply to.
5856	ComputationRanges []*StreamingComputationRanges `json:"computationRanges,omitempty"`
5857
5858	// DataDisks: Describes the set of data disks this task should apply to.
5859	DataDisks []*MountedDataDisk `json:"dataDisks,omitempty"`
5860
5861	// TaskType: A type of streaming computation task.
5862	//
5863	// Possible values:
5864	//   "STREAMING_COMPUTATION_TASK_UNKNOWN" - The streaming computation
5865	// task is unknown, or unspecified.
5866	//   "STREAMING_COMPUTATION_TASK_STOP" - Stop processing specified
5867	// streaming computation range(s).
5868	//   "STREAMING_COMPUTATION_TASK_START" - Start processing specified
5869	// streaming computation range(s).
5870	TaskType string `json:"taskType,omitempty"`
5871
5872	// ForceSendFields is a list of field names (e.g. "ComputationRanges")
5873	// to unconditionally include in API requests. By default, fields with
5874	// empty values are omitted from API requests. However, any non-pointer,
5875	// non-interface field appearing in ForceSendFields will be sent to the
5876	// server regardless of whether the field is empty or not. This may be
5877	// used to include empty fields in Patch requests.
5878	ForceSendFields []string `json:"-"`
5879
5880	// NullFields is a list of field names (e.g. "ComputationRanges") to
5881	// include in API requests with the JSON null value. By default, fields
5882	// with empty values are omitted from API requests. However, any field
5883	// with an empty value appearing in NullFields will be sent to the
5884	// server as null. It is an error if a field in this list has a
5885	// non-empty value. This may be used to include null fields in Patch
5886	// requests.
5887	NullFields []string `json:"-"`
5888}
5889
5890func (s *StreamingComputationTask) MarshalJSON() ([]byte, error) {
5891	type NoMethod StreamingComputationTask
5892	raw := NoMethod(*s)
5893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5894}
5895
5896// StreamingConfigTask: A task that carries configuration information
5897// for streaming computations.
5898type StreamingConfigTask struct {
5899	// CommitStreamChunkSizeBytes: Chunk size for commit streams from the
5900	// harness to windmill.
5901	CommitStreamChunkSizeBytes int64 `json:"commitStreamChunkSizeBytes,omitempty,string"`
5902
5903	// GetDataStreamChunkSizeBytes: Chunk size for get data streams from the
5904	// harness to windmill.
5905	GetDataStreamChunkSizeBytes int64 `json:"getDataStreamChunkSizeBytes,omitempty,string"`
5906
5907	// MaxWorkItemCommitBytes: Maximum size for work item commit supported
5908	// windmill storage layer.
5909	MaxWorkItemCommitBytes int64 `json:"maxWorkItemCommitBytes,omitempty,string"`
5910
5911	// StreamingComputationConfigs: Set of computation configuration
5912	// information.
5913	StreamingComputationConfigs []*StreamingComputationConfig `json:"streamingComputationConfigs,omitempty"`
5914
5915	// UserStepToStateFamilyNameMap: Map from user step names to state
5916	// families.
5917	UserStepToStateFamilyNameMap map[string]string `json:"userStepToStateFamilyNameMap,omitempty"`
5918
5919	// WindmillServiceEndpoint: If present, the worker must use this
5920	// endpoint to communicate with Windmill
5921	// Service dispatchers, otherwise the worker must continue to use
5922	// whatever
5923	// endpoint it had been using.
5924	WindmillServiceEndpoint string `json:"windmillServiceEndpoint,omitempty"`
5925
5926	// WindmillServicePort: If present, the worker must use this port to
5927	// communicate with Windmill
5928	// Service dispatchers. Only applicable when windmill_service_endpoint
5929	// is
5930	// specified.
5931	WindmillServicePort int64 `json:"windmillServicePort,omitempty,string"`
5932
5933	// ForceSendFields is a list of field names (e.g.
5934	// "CommitStreamChunkSizeBytes") to unconditionally include in API
5935	// requests. By default, fields with empty values are omitted from API
5936	// requests. However, any non-pointer, non-interface field appearing in
5937	// ForceSendFields will be sent to the server regardless of whether the
5938	// field is empty or not. This may be used to include empty fields in
5939	// Patch requests.
5940	ForceSendFields []string `json:"-"`
5941
5942	// NullFields is a list of field names (e.g.
5943	// "CommitStreamChunkSizeBytes") to include in API requests with the
5944	// JSON null value. By default, fields with empty values are omitted
5945	// from API requests. However, any field with an empty value appearing
5946	// in NullFields will be sent to the server as null. It is an error if a
5947	// field in this list has a non-empty value. This may be used to include
5948	// null fields in Patch requests.
5949	NullFields []string `json:"-"`
5950}
5951
5952func (s *StreamingConfigTask) MarshalJSON() ([]byte, error) {
5953	type NoMethod StreamingConfigTask
5954	raw := NoMethod(*s)
5955	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5956}
5957
5958// StreamingSetupTask: A task which initializes part of a streaming
5959// Dataflow job.
5960type StreamingSetupTask struct {
5961	// Drain: The user has requested drain.
5962	Drain bool `json:"drain,omitempty"`
5963
5964	// ReceiveWorkPort: The TCP port on which the worker should listen for
5965	// messages from
5966	// other streaming computation workers.
5967	ReceiveWorkPort int64 `json:"receiveWorkPort,omitempty"`
5968
5969	// SnapshotConfig: Configures streaming appliance snapshot.
5970	SnapshotConfig *StreamingApplianceSnapshotConfig `json:"snapshotConfig,omitempty"`
5971
5972	// StreamingComputationTopology: The global topology of the streaming
5973	// Dataflow job.
5974	StreamingComputationTopology *TopologyConfig `json:"streamingComputationTopology,omitempty"`
5975
5976	// WorkerHarnessPort: The TCP port used by the worker to communicate
5977	// with the Dataflow
5978	// worker harness.
5979	WorkerHarnessPort int64 `json:"workerHarnessPort,omitempty"`
5980
5981	// ForceSendFields is a list of field names (e.g. "Drain") to
5982	// unconditionally include in API requests. By default, fields with
5983	// empty values are omitted from API requests. However, any non-pointer,
5984	// non-interface field appearing in ForceSendFields will be sent to the
5985	// server regardless of whether the field is empty or not. This may be
5986	// used to include empty fields in Patch requests.
5987	ForceSendFields []string `json:"-"`
5988
5989	// NullFields is a list of field names (e.g. "Drain") to include in API
5990	// requests with the JSON null value. By default, fields with empty
5991	// values are omitted from API requests. However, any field with an
5992	// empty value appearing in NullFields will be sent to the server as
5993	// null. It is an error if a field in this list has a non-empty value.
5994	// This may be used to include null fields in Patch requests.
5995	NullFields []string `json:"-"`
5996}
5997
5998func (s *StreamingSetupTask) MarshalJSON() ([]byte, error) {
5999	type NoMethod StreamingSetupTask
6000	raw := NoMethod(*s)
6001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6002}
6003
6004// StreamingSideInputLocation: Identifies the location of a streaming
6005// side input.
6006type StreamingSideInputLocation struct {
6007	// StateFamily: Identifies the state family where this side input is
6008	// stored.
6009	StateFamily string `json:"stateFamily,omitempty"`
6010
6011	// Tag: Identifies the particular side input within the streaming
6012	// Dataflow job.
6013	Tag string `json:"tag,omitempty"`
6014
6015	// ForceSendFields is a list of field names (e.g. "StateFamily") to
6016	// unconditionally include in API requests. By default, fields with
6017	// empty values are omitted from API requests. However, any non-pointer,
6018	// non-interface field appearing in ForceSendFields will be sent to the
6019	// server regardless of whether the field is empty or not. This may be
6020	// used to include empty fields in Patch requests.
6021	ForceSendFields []string `json:"-"`
6022
6023	// NullFields is a list of field names (e.g. "StateFamily") to include
6024	// in API requests with the JSON null value. By default, fields with
6025	// empty values are omitted from API requests. However, any field with
6026	// an empty value appearing in NullFields will be sent to the server as
6027	// null. It is an error if a field in this list has a non-empty value.
6028	// This may be used to include null fields in Patch requests.
6029	NullFields []string `json:"-"`
6030}
6031
6032func (s *StreamingSideInputLocation) MarshalJSON() ([]byte, error) {
6033	type NoMethod StreamingSideInputLocation
6034	raw := NoMethod(*s)
6035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6036}
6037
6038// StreamingStageLocation: Identifies the location of a streaming
6039// computation stage, for
6040// stage-to-stage communication.
6041type StreamingStageLocation struct {
6042	// StreamId: Identifies the particular stream within the streaming
6043	// Dataflow
6044	// job.
6045	StreamId string `json:"streamId,omitempty"`
6046
6047	// ForceSendFields is a list of field names (e.g. "StreamId") to
6048	// unconditionally include in API requests. By default, fields with
6049	// empty values are omitted from API requests. However, any non-pointer,
6050	// non-interface field appearing in ForceSendFields will be sent to the
6051	// server regardless of whether the field is empty or not. This may be
6052	// used to include empty fields in Patch requests.
6053	ForceSendFields []string `json:"-"`
6054
6055	// NullFields is a list of field names (e.g. "StreamId") to include in
6056	// API requests with the JSON null value. By default, fields with empty
6057	// values are omitted from API requests. However, any field with an
6058	// empty value appearing in NullFields will be sent to the server as
6059	// null. It is an error if a field in this list has a non-empty value.
6060	// This may be used to include null fields in Patch requests.
6061	NullFields []string `json:"-"`
6062}
6063
6064func (s *StreamingStageLocation) MarshalJSON() ([]byte, error) {
6065	type NoMethod StreamingStageLocation
6066	raw := NoMethod(*s)
6067	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6068}
6069
6070// StringList: A metric value representing a list of strings.
6071type StringList struct {
6072	// Elements: Elements of the list.
6073	Elements []string `json:"elements,omitempty"`
6074
6075	// ForceSendFields is a list of field names (e.g. "Elements") to
6076	// unconditionally include in API requests. By default, fields with
6077	// empty values are omitted from API requests. However, any non-pointer,
6078	// non-interface field appearing in ForceSendFields will be sent to the
6079	// server regardless of whether the field is empty or not. This may be
6080	// used to include empty fields in Patch requests.
6081	ForceSendFields []string `json:"-"`
6082
6083	// NullFields is a list of field names (e.g. "Elements") to include in
6084	// API requests with the JSON null value. By default, fields with empty
6085	// values are omitted from API requests. However, any field with an
6086	// empty value appearing in NullFields will be sent to the server as
6087	// null. It is an error if a field in this list has a non-empty value.
6088	// This may be used to include null fields in Patch requests.
6089	NullFields []string `json:"-"`
6090}
6091
6092func (s *StringList) MarshalJSON() ([]byte, error) {
6093	type NoMethod StringList
6094	raw := NoMethod(*s)
6095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6096}
6097
6098// StructuredMessage: A rich message format, including a human readable
6099// string, a key for
6100// identifying the message, and structured data associated with the
6101// message for
6102// programmatic consumption.
6103type StructuredMessage struct {
6104	// MessageKey: Identifier for this message type.  Used by external
6105	// systems to
6106	// internationalize or personalize message.
6107	MessageKey string `json:"messageKey,omitempty"`
6108
6109	// MessageText: Human-readable version of message.
6110	MessageText string `json:"messageText,omitempty"`
6111
6112	// Parameters: The structured data associated with this message.
6113	Parameters []*Parameter `json:"parameters,omitempty"`
6114
6115	// ForceSendFields is a list of field names (e.g. "MessageKey") to
6116	// unconditionally include in API requests. By default, fields with
6117	// empty values are omitted from API requests. However, any non-pointer,
6118	// non-interface field appearing in ForceSendFields will be sent to the
6119	// server regardless of whether the field is empty or not. This may be
6120	// used to include empty fields in Patch requests.
6121	ForceSendFields []string `json:"-"`
6122
6123	// NullFields is a list of field names (e.g. "MessageKey") to include in
6124	// API requests with the JSON null value. By default, fields with empty
6125	// values are omitted from API requests. However, any field with an
6126	// empty value appearing in NullFields will be sent to the server as
6127	// null. It is an error if a field in this list has a non-empty value.
6128	// This may be used to include null fields in Patch requests.
6129	NullFields []string `json:"-"`
6130}
6131
6132func (s *StructuredMessage) MarshalJSON() ([]byte, error) {
6133	type NoMethod StructuredMessage
6134	raw := NoMethod(*s)
6135	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6136}
6137
6138// TaskRunnerSettings: Taskrunner configuration settings.
6139type TaskRunnerSettings struct {
6140	// Alsologtostderr: Whether to also send taskrunner log info to stderr.
6141	Alsologtostderr bool `json:"alsologtostderr,omitempty"`
6142
6143	// BaseTaskDir: The location on the worker for task-specific
6144	// subdirectories.
6145	BaseTaskDir string `json:"baseTaskDir,omitempty"`
6146
6147	// BaseUrl: The base URL for the taskrunner to use when accessing Google
6148	// Cloud APIs.
6149	//
6150	// When workers access Google Cloud APIs, they logically do so
6151	// via
6152	// relative URLs.  If this field is specified, it supplies the base
6153	// URL to use for resolving these relative URLs.  The
6154	// normative
6155	// algorithm used is defined by RFC 1808, "Relative Uniform
6156	// Resource
6157	// Locators".
6158	//
6159	// If not specified, the default value is "http://www.googleapis.com/"
6160	BaseUrl string `json:"baseUrl,omitempty"`
6161
6162	// CommandlinesFileName: The file to store preprocessing commands in.
6163	CommandlinesFileName string `json:"commandlinesFileName,omitempty"`
6164
6165	// ContinueOnException: Whether to continue taskrunner if an exception
6166	// is hit.
6167	ContinueOnException bool `json:"continueOnException,omitempty"`
6168
6169	// DataflowApiVersion: The API version of endpoint, e.g. "v1b3"
6170	DataflowApiVersion string `json:"dataflowApiVersion,omitempty"`
6171
6172	// HarnessCommand: The command to launch the worker harness.
6173	HarnessCommand string `json:"harnessCommand,omitempty"`
6174
6175	// LanguageHint: The suggested backend language.
6176	LanguageHint string `json:"languageHint,omitempty"`
6177
6178	// LogDir: The directory on the VM to store logs.
6179	LogDir string `json:"logDir,omitempty"`
6180
6181	// LogToSerialconsole: Whether to send taskrunner log info to Google
6182	// Compute Engine VM serial
6183	// console.
6184	LogToSerialconsole bool `json:"logToSerialconsole,omitempty"`
6185
6186	// LogUploadLocation: Indicates where to put logs.  If this is not
6187	// specified, the logs
6188	// will not be uploaded.
6189	//
6190	// The supported resource type is:
6191	//
6192	// Google Cloud Storage:
6193	//   storage.googleapis.com/{bucket}/{object}
6194	//   bucket.storage.googleapis.com/{object}
6195	LogUploadLocation string `json:"logUploadLocation,omitempty"`
6196
6197	// OauthScopes: The OAuth2 scopes to be requested by the taskrunner in
6198	// order to
6199	// access the Cloud Dataflow API.
6200	OauthScopes []string `json:"oauthScopes,omitempty"`
6201
6202	// ParallelWorkerSettings: The settings to pass to the parallel worker
6203	// harness.
6204	ParallelWorkerSettings *WorkerSettings `json:"parallelWorkerSettings,omitempty"`
6205
6206	// StreamingWorkerMainClass: The streaming worker main class name.
6207	StreamingWorkerMainClass string `json:"streamingWorkerMainClass,omitempty"`
6208
6209	// TaskGroup: The UNIX group ID on the worker VM to use for tasks
6210	// launched by
6211	// taskrunner; e.g. "wheel".
6212	TaskGroup string `json:"taskGroup,omitempty"`
6213
6214	// TaskUser: The UNIX user ID on the worker VM to use for tasks launched
6215	// by
6216	// taskrunner; e.g. "root".
6217	TaskUser string `json:"taskUser,omitempty"`
6218
6219	// TempStoragePrefix: The prefix of the resources the taskrunner should
6220	// use for
6221	// temporary storage.
6222	//
6223	// The supported resource type is:
6224	//
6225	// Google Cloud Storage:
6226	//   storage.googleapis.com/{bucket}/{object}
6227	//   bucket.storage.googleapis.com/{object}
6228	TempStoragePrefix string `json:"tempStoragePrefix,omitempty"`
6229
6230	// VmId: The ID string of the VM.
6231	VmId string `json:"vmId,omitempty"`
6232
6233	// WorkflowFileName: The file to store the workflow in.
6234	WorkflowFileName string `json:"workflowFileName,omitempty"`
6235
6236	// ForceSendFields is a list of field names (e.g. "Alsologtostderr") to
6237	// unconditionally include in API requests. By default, fields with
6238	// empty values are omitted from API requests. However, any non-pointer,
6239	// non-interface field appearing in ForceSendFields will be sent to the
6240	// server regardless of whether the field is empty or not. This may be
6241	// used to include empty fields in Patch requests.
6242	ForceSendFields []string `json:"-"`
6243
6244	// NullFields is a list of field names (e.g. "Alsologtostderr") to
6245	// include in API requests with the JSON null value. By default, fields
6246	// with empty values are omitted from API requests. However, any field
6247	// with an empty value appearing in NullFields will be sent to the
6248	// server as null. It is an error if a field in this list has a
6249	// non-empty value. This may be used to include null fields in Patch
6250	// requests.
6251	NullFields []string `json:"-"`
6252}
6253
6254func (s *TaskRunnerSettings) MarshalJSON() ([]byte, error) {
6255	type NoMethod TaskRunnerSettings
6256	raw := NoMethod(*s)
6257	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6258}
6259
6260// TemplateMetadata: Metadata describing a template.
6261type TemplateMetadata struct {
6262	// Description: Optional. A description of the template.
6263	Description string `json:"description,omitempty"`
6264
6265	// Name: Required. The name of the template.
6266	Name string `json:"name,omitempty"`
6267
6268	// Parameters: The parameters for the template.
6269	Parameters []*ParameterMetadata `json:"parameters,omitempty"`
6270
6271	// ForceSendFields is a list of field names (e.g. "Description") to
6272	// unconditionally include in API requests. By default, fields with
6273	// empty values are omitted from API requests. However, any non-pointer,
6274	// non-interface field appearing in ForceSendFields will be sent to the
6275	// server regardless of whether the field is empty or not. This may be
6276	// used to include empty fields in Patch requests.
6277	ForceSendFields []string `json:"-"`
6278
6279	// NullFields is a list of field names (e.g. "Description") to include
6280	// in API requests with the JSON null value. By default, fields with
6281	// empty values are omitted from API requests. However, any field with
6282	// an empty value appearing in NullFields will be sent to the server as
6283	// null. It is an error if a field in this list has a non-empty value.
6284	// This may be used to include null fields in Patch requests.
6285	NullFields []string `json:"-"`
6286}
6287
6288func (s *TemplateMetadata) MarshalJSON() ([]byte, error) {
6289	type NoMethod TemplateMetadata
6290	raw := NoMethod(*s)
6291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6292}
6293
6294// TopologyConfig: Global topology of the streaming Dataflow job,
6295// including all
6296// computations and their sharded locations.
6297type TopologyConfig struct {
6298	// Computations: The computations associated with a streaming Dataflow
6299	// job.
6300	Computations []*ComputationTopology `json:"computations,omitempty"`
6301
6302	// DataDiskAssignments: The disks assigned to a streaming Dataflow job.
6303	DataDiskAssignments []*DataDiskAssignment `json:"dataDiskAssignments,omitempty"`
6304
6305	// ForwardingKeyBits: The size (in bits) of keys that will be assigned
6306	// to source messages.
6307	ForwardingKeyBits int64 `json:"forwardingKeyBits,omitempty"`
6308
6309	// PersistentStateVersion: Version number for persistent state.
6310	PersistentStateVersion int64 `json:"persistentStateVersion,omitempty"`
6311
6312	// UserStageToComputationNameMap: Maps user stage names to stable
6313	// computation names.
6314	UserStageToComputationNameMap map[string]string `json:"userStageToComputationNameMap,omitempty"`
6315
6316	// ForceSendFields is a list of field names (e.g. "Computations") to
6317	// unconditionally include in API requests. By default, fields with
6318	// empty values are omitted from API requests. However, any non-pointer,
6319	// non-interface field appearing in ForceSendFields will be sent to the
6320	// server regardless of whether the field is empty or not. This may be
6321	// used to include empty fields in Patch requests.
6322	ForceSendFields []string `json:"-"`
6323
6324	// NullFields is a list of field names (e.g. "Computations") to include
6325	// in API requests with the JSON null value. By default, fields with
6326	// empty values are omitted from API requests. However, any field with
6327	// an empty value appearing in NullFields will be sent to the server as
6328	// null. It is an error if a field in this list has a non-empty value.
6329	// This may be used to include null fields in Patch requests.
6330	NullFields []string `json:"-"`
6331}
6332
6333func (s *TopologyConfig) MarshalJSON() ([]byte, error) {
6334	type NoMethod TopologyConfig
6335	raw := NoMethod(*s)
6336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6337}
6338
6339// TransformSummary: Description of the type, names/ids, and
6340// input/outputs for a transform.
6341type TransformSummary struct {
6342	// DisplayData: Transform-specific display data.
6343	DisplayData []*DisplayData `json:"displayData,omitempty"`
6344
6345	// Id: SDK generated id of this transform instance.
6346	Id string `json:"id,omitempty"`
6347
6348	// InputCollectionName: User names for all collection inputs to this
6349	// transform.
6350	InputCollectionName []string `json:"inputCollectionName,omitempty"`
6351
6352	// Kind: Type of transform.
6353	//
6354	// Possible values:
6355	//   "UNKNOWN_KIND" - Unrecognized transform type.
6356	//   "PAR_DO_KIND" - ParDo transform.
6357	//   "GROUP_BY_KEY_KIND" - Group By Key transform.
6358	//   "FLATTEN_KIND" - Flatten transform.
6359	//   "READ_KIND" - Read transform.
6360	//   "WRITE_KIND" - Write transform.
6361	//   "CONSTANT_KIND" - Constructs from a constant value, such as with
6362	// Create.of.
6363	//   "SINGLETON_KIND" - Creates a Singleton view of a collection.
6364	//   "SHUFFLE_KIND" - Opening or closing a shuffle session, often as
6365	// part of a GroupByKey.
6366	Kind string `json:"kind,omitempty"`
6367
6368	// Name: User provided name for this transform instance.
6369	Name string `json:"name,omitempty"`
6370
6371	// OutputCollectionName: User  names for all collection outputs to this
6372	// transform.
6373	OutputCollectionName []string `json:"outputCollectionName,omitempty"`
6374
6375	// ForceSendFields is a list of field names (e.g. "DisplayData") to
6376	// unconditionally include in API requests. By default, fields with
6377	// empty values are omitted from API requests. However, any non-pointer,
6378	// non-interface field appearing in ForceSendFields will be sent to the
6379	// server regardless of whether the field is empty or not. This may be
6380	// used to include empty fields in Patch requests.
6381	ForceSendFields []string `json:"-"`
6382
6383	// NullFields is a list of field names (e.g. "DisplayData") to include
6384	// in API requests with the JSON null value. By default, fields with
6385	// empty values are omitted from API requests. However, any field with
6386	// an empty value appearing in NullFields will be sent to the server as
6387	// null. It is an error if a field in this list has a non-empty value.
6388	// This may be used to include null fields in Patch requests.
6389	NullFields []string `json:"-"`
6390}
6391
6392func (s *TransformSummary) MarshalJSON() ([]byte, error) {
6393	type NoMethod TransformSummary
6394	raw := NoMethod(*s)
6395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6396}
6397
6398// ValidateResponse: Response to the validation request.
6399type ValidateResponse struct {
6400	// ErrorMessage: Will be empty if validation succeeds.
6401	ErrorMessage string `json:"errorMessage,omitempty"`
6402
6403	// ServerResponse contains the HTTP response code and headers from the
6404	// server.
6405	googleapi.ServerResponse `json:"-"`
6406
6407	// ForceSendFields is a list of field names (e.g. "ErrorMessage") to
6408	// unconditionally include in API requests. By default, fields with
6409	// empty values are omitted from API requests. However, any non-pointer,
6410	// non-interface field appearing in ForceSendFields will be sent to the
6411	// server regardless of whether the field is empty or not. This may be
6412	// used to include empty fields in Patch requests.
6413	ForceSendFields []string `json:"-"`
6414
6415	// NullFields is a list of field names (e.g. "ErrorMessage") to include
6416	// in API requests with the JSON null value. By default, fields with
6417	// empty values are omitted from API requests. However, any field with
6418	// an empty value appearing in NullFields will be sent to the server as
6419	// null. It is an error if a field in this list has a non-empty value.
6420	// This may be used to include null fields in Patch requests.
6421	NullFields []string `json:"-"`
6422}
6423
6424func (s *ValidateResponse) MarshalJSON() ([]byte, error) {
6425	type NoMethod ValidateResponse
6426	raw := NoMethod(*s)
6427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6428}
6429
6430// WorkItem: WorkItem represents basic information about a WorkItem to
6431// be executed
6432// in the cloud.
6433type WorkItem struct {
6434	// Configuration: Work item-specific configuration as an opaque blob.
6435	Configuration string `json:"configuration,omitempty"`
6436
6437	// Id: Identifies this WorkItem.
6438	Id int64 `json:"id,omitempty,string"`
6439
6440	// InitialReportIndex: The initial index to use when reporting the
6441	// status of the WorkItem.
6442	InitialReportIndex int64 `json:"initialReportIndex,omitempty,string"`
6443
6444	// JobId: Identifies the workflow job this WorkItem belongs to.
6445	JobId string `json:"jobId,omitempty"`
6446
6447	// LeaseExpireTime: Time when the lease on this Work will expire.
6448	LeaseExpireTime string `json:"leaseExpireTime,omitempty"`
6449
6450	// MapTask: Additional information for MapTask WorkItems.
6451	MapTask *MapTask `json:"mapTask,omitempty"`
6452
6453	// Packages: Any required packages that need to be fetched in order to
6454	// execute
6455	// this WorkItem.
6456	Packages []*Package `json:"packages,omitempty"`
6457
6458	// ProjectId: Identifies the cloud project this WorkItem belongs to.
6459	ProjectId string `json:"projectId,omitempty"`
6460
6461	// ReportStatusInterval: Recommended reporting interval.
6462	ReportStatusInterval string `json:"reportStatusInterval,omitempty"`
6463
6464	// SeqMapTask: Additional information for SeqMapTask WorkItems.
6465	SeqMapTask *SeqMapTask `json:"seqMapTask,omitempty"`
6466
6467	// ShellTask: Additional information for ShellTask WorkItems.
6468	ShellTask *ShellTask `json:"shellTask,omitempty"`
6469
6470	// SourceOperationTask: Additional information for source operation
6471	// WorkItems.
6472	SourceOperationTask *SourceOperationRequest `json:"sourceOperationTask,omitempty"`
6473
6474	// StreamingComputationTask: Additional information for
6475	// StreamingComputationTask WorkItems.
6476	StreamingComputationTask *StreamingComputationTask `json:"streamingComputationTask,omitempty"`
6477
6478	// StreamingConfigTask: Additional information for StreamingConfigTask
6479	// WorkItems.
6480	StreamingConfigTask *StreamingConfigTask `json:"streamingConfigTask,omitempty"`
6481
6482	// StreamingSetupTask: Additional information for StreamingSetupTask
6483	// WorkItems.
6484	StreamingSetupTask *StreamingSetupTask `json:"streamingSetupTask,omitempty"`
6485
6486	// ForceSendFields is a list of field names (e.g. "Configuration") to
6487	// unconditionally include in API requests. By default, fields with
6488	// empty values are omitted from API requests. However, any non-pointer,
6489	// non-interface field appearing in ForceSendFields will be sent to the
6490	// server regardless of whether the field is empty or not. This may be
6491	// used to include empty fields in Patch requests.
6492	ForceSendFields []string `json:"-"`
6493
6494	// NullFields is a list of field names (e.g. "Configuration") to include
6495	// in API requests with the JSON null value. By default, fields with
6496	// empty values are omitted from API requests. However, any field with
6497	// an empty value appearing in NullFields will be sent to the server as
6498	// null. It is an error if a field in this list has a non-empty value.
6499	// This may be used to include null fields in Patch requests.
6500	NullFields []string `json:"-"`
6501}
6502
6503func (s *WorkItem) MarshalJSON() ([]byte, error) {
6504	type NoMethod WorkItem
6505	raw := NoMethod(*s)
6506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6507}
6508
6509// WorkItemServiceState: The Dataflow service's idea of the current
6510// state of a WorkItem
6511// being processed by a worker.
6512type WorkItemServiceState struct {
6513	// HarnessData: Other data returned by the service, specific to the
6514	// particular
6515	// worker harness.
6516	HarnessData googleapi.RawMessage `json:"harnessData,omitempty"`
6517
6518	// HotKeyDetection: A hot key is a symptom of poor data distribution in
6519	// which there are enough
6520	// elements mapped to a single key to impact pipeline performance.
6521	// When
6522	// present, this field includes metadata associated with any hot key.
6523	HotKeyDetection *HotKeyDetection `json:"hotKeyDetection,omitempty"`
6524
6525	// LeaseExpireTime: Time at which the current lease will expire.
6526	LeaseExpireTime string `json:"leaseExpireTime,omitempty"`
6527
6528	// MetricShortId: The short ids that workers should use in subsequent
6529	// metric updates.
6530	// Workers should strive to use short ids whenever possible, but it is
6531	// ok
6532	// to request the short_id again if a worker lost track of it
6533	// (e.g. if the worker is recovering from a crash).
6534	// NOTE: it is possible that the response may have short ids for a
6535	// subset
6536	// of the metrics.
6537	MetricShortId []*MetricShortId `json:"metricShortId,omitempty"`
6538
6539	// NextReportIndex: The index value to use for the next report sent by
6540	// the worker.
6541	// Note: If the report call fails for whatever reason, the worker
6542	// should
6543	// reuse this index for subsequent report attempts.
6544	NextReportIndex int64 `json:"nextReportIndex,omitempty,string"`
6545
6546	// ReportStatusInterval: New recommended reporting interval.
6547	ReportStatusInterval string `json:"reportStatusInterval,omitempty"`
6548
6549	// SplitRequest: The progress point in the WorkItem where the Dataflow
6550	// service
6551	// suggests that the worker truncate the task.
6552	SplitRequest *ApproximateSplitRequest `json:"splitRequest,omitempty"`
6553
6554	// SuggestedStopPoint: DEPRECATED in favor of split_request.
6555	SuggestedStopPoint *ApproximateProgress `json:"suggestedStopPoint,omitempty"`
6556
6557	// SuggestedStopPosition: Obsolete, always empty.
6558	SuggestedStopPosition *Position `json:"suggestedStopPosition,omitempty"`
6559
6560	// ForceSendFields is a list of field names (e.g. "HarnessData") to
6561	// unconditionally include in API requests. By default, fields with
6562	// empty values are omitted from API requests. However, any non-pointer,
6563	// non-interface field appearing in ForceSendFields will be sent to the
6564	// server regardless of whether the field is empty or not. This may be
6565	// used to include empty fields in Patch requests.
6566	ForceSendFields []string `json:"-"`
6567
6568	// NullFields is a list of field names (e.g. "HarnessData") to include
6569	// in API requests with the JSON null value. By default, fields with
6570	// empty values are omitted from API requests. However, any field with
6571	// an empty value appearing in NullFields will be sent to the server as
6572	// null. It is an error if a field in this list has a non-empty value.
6573	// This may be used to include null fields in Patch requests.
6574	NullFields []string `json:"-"`
6575}
6576
6577func (s *WorkItemServiceState) MarshalJSON() ([]byte, error) {
6578	type NoMethod WorkItemServiceState
6579	raw := NoMethod(*s)
6580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6581}
6582
6583// WorkItemStatus: Conveys a worker's progress through the work
6584// described by a WorkItem.
6585type WorkItemStatus struct {
6586	// Completed: True if the WorkItem was completed (successfully or
6587	// unsuccessfully).
6588	Completed bool `json:"completed,omitempty"`
6589
6590	// CounterUpdates: Worker output counters for this WorkItem.
6591	CounterUpdates []*CounterUpdate `json:"counterUpdates,omitempty"`
6592
6593	// DynamicSourceSplit: See documentation of stop_position.
6594	DynamicSourceSplit *DynamicSourceSplit `json:"dynamicSourceSplit,omitempty"`
6595
6596	// Errors: Specifies errors which occurred during processing.  If errors
6597	// are
6598	// provided, and completed = true, then the WorkItem is considered
6599	// to have failed.
6600	Errors []*Status `json:"errors,omitempty"`
6601
6602	// MetricUpdates: DEPRECATED in favor of counter_updates.
6603	MetricUpdates []*MetricUpdate `json:"metricUpdates,omitempty"`
6604
6605	// Progress: DEPRECATED in favor of reported_progress.
6606	Progress *ApproximateProgress `json:"progress,omitempty"`
6607
6608	// ReportIndex: The report index.  When a WorkItem is leased, the lease
6609	// will
6610	// contain an initial report index.  When a WorkItem's status
6611	// is
6612	// reported to the system, the report should be sent with
6613	// that report index, and the response will contain the index the
6614	// worker should use for the next report.  Reports received
6615	// with
6616	// unexpected index values will be rejected by the service.
6617	//
6618	// In order to preserve idempotency, the worker should not alter
6619	// the
6620	// contents of a report, even if the worker must submit the same
6621	// report multiple times before getting back a response.  The
6622	// worker
6623	// should not submit a subsequent report until the response for
6624	// the
6625	// previous report had been received from the service.
6626	ReportIndex int64 `json:"reportIndex,omitempty,string"`
6627
6628	// ReportedProgress: The worker's progress through this WorkItem.
6629	ReportedProgress *ApproximateReportedProgress `json:"reportedProgress,omitempty"`
6630
6631	// RequestedLeaseDuration: Amount of time the worker requests for its
6632	// lease.
6633	RequestedLeaseDuration string `json:"requestedLeaseDuration,omitempty"`
6634
6635	// SourceFork: DEPRECATED in favor of dynamic_source_split.
6636	SourceFork *SourceFork `json:"sourceFork,omitempty"`
6637
6638	// SourceOperationResponse: If the work item represented a
6639	// SourceOperationRequest, and the work
6640	// is completed, contains the result of the operation.
6641	SourceOperationResponse *SourceOperationResponse `json:"sourceOperationResponse,omitempty"`
6642
6643	// StopPosition: A worker may split an active map task in two parts,
6644	// "primary" and
6645	// "residual", continuing to process the primary part and returning
6646	// the
6647	// residual part into the pool of available work.
6648	// This event is called a "dynamic split" and is critical to the
6649	// dynamic
6650	// work rebalancing feature. The two obtained sub-tasks are
6651	// called
6652	// "parts" of the split.
6653	// The parts, if concatenated, must represent the same input as would
6654	// be read by the current task if the split did not happen.
6655	// The exact way in which the original task is decomposed into the
6656	// two
6657	// parts is specified either as a position demarcating
6658	// them
6659	// (stop_position), or explicitly as two DerivedSources, if this
6660	// task consumes a user-defined source type (dynamic_source_split).
6661	//
6662	// The "current" task is adjusted as a result of the split: after a
6663	// task
6664	// with range [A, B) sends a stop_position update at C, its range
6665	// is
6666	// considered to be [A, C), e.g.:
6667	// * Progress should be interpreted relative to the new range, e.g.
6668	//   "75% completed" means "75% of [A, C) completed"
6669	// * The worker should interpret proposed_stop_position relative to the
6670	//   new range, e.g. "split at 68%" should be interpreted as
6671	//   "split at 68% of [A, C)".
6672	// * If the worker chooses to split again using stop_position, only
6673	//   stop_positions in [A, C) will be accepted.
6674	// * Etc.
6675	// dynamic_source_split has similar semantics: e.g., if a task
6676	// with
6677	// source S splits using dynamic_source_split into {P, R}
6678	// (where P and R must be together equivalent to S), then
6679	// subsequent
6680	// progress and proposed_stop_position should be interpreted relative
6681	// to P, and in a potential subsequent dynamic_source_split into {P',
6682	// R'},
6683	// P' and R' must be together equivalent to P, etc.
6684	StopPosition *Position `json:"stopPosition,omitempty"`
6685
6686	// TotalThrottlerWaitTimeSeconds: Total time the worker spent being
6687	// throttled by external systems.
6688	TotalThrottlerWaitTimeSeconds float64 `json:"totalThrottlerWaitTimeSeconds,omitempty"`
6689
6690	// WorkItemId: Identifies the WorkItem.
6691	WorkItemId string `json:"workItemId,omitempty"`
6692
6693	// ForceSendFields is a list of field names (e.g. "Completed") to
6694	// unconditionally include in API requests. By default, fields with
6695	// empty values are omitted from API requests. However, any non-pointer,
6696	// non-interface field appearing in ForceSendFields will be sent to the
6697	// server regardless of whether the field is empty or not. This may be
6698	// used to include empty fields in Patch requests.
6699	ForceSendFields []string `json:"-"`
6700
6701	// NullFields is a list of field names (e.g. "Completed") to include in
6702	// API requests with the JSON null value. By default, fields with empty
6703	// values are omitted from API requests. However, any field with an
6704	// empty value appearing in NullFields will be sent to the server as
6705	// null. It is an error if a field in this list has a non-empty value.
6706	// This may be used to include null fields in Patch requests.
6707	NullFields []string `json:"-"`
6708}
6709
6710func (s *WorkItemStatus) MarshalJSON() ([]byte, error) {
6711	type NoMethod WorkItemStatus
6712	raw := NoMethod(*s)
6713	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6714}
6715
6716func (s *WorkItemStatus) UnmarshalJSON(data []byte) error {
6717	type NoMethod WorkItemStatus
6718	var s1 struct {
6719		TotalThrottlerWaitTimeSeconds gensupport.JSONFloat64 `json:"totalThrottlerWaitTimeSeconds"`
6720		*NoMethod
6721	}
6722	s1.NoMethod = (*NoMethod)(s)
6723	if err := json.Unmarshal(data, &s1); err != nil {
6724		return err
6725	}
6726	s.TotalThrottlerWaitTimeSeconds = float64(s1.TotalThrottlerWaitTimeSeconds)
6727	return nil
6728}
6729
6730// WorkerHealthReport: WorkerHealthReport contains information about the
6731// health of a worker.
6732//
6733// The VM should be identified by the labels attached to the
6734// WorkerMessage that
6735// this health ping belongs to.
6736type WorkerHealthReport struct {
6737	// Msg: A message describing any unusual health reports.
6738	Msg string `json:"msg,omitempty"`
6739
6740	// Pods: The pods running on the worker.
6741	// See:
6742	// http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#
6743	// _v1_pod
6744	//
6745	// This field is used by the worker to send the status of the
6746	// indvidual
6747	// containers running on each worker.
6748	Pods []googleapi.RawMessage `json:"pods,omitempty"`
6749
6750	// ReportInterval: The interval at which the worker is sending health
6751	// reports.
6752	// The default value of 0 should be interpreted as the field is not
6753	// being
6754	// explicitly set by the worker.
6755	ReportInterval string `json:"reportInterval,omitempty"`
6756
6757	// VmIsBroken: Whether the VM is in a permanently broken state.
6758	// Broken VMs should be abandoned or deleted ASAP to avoid assigning
6759	// or
6760	// completing any work.
6761	VmIsBroken bool `json:"vmIsBroken,omitempty"`
6762
6763	// VmIsHealthy: Whether the VM is currently healthy.
6764	VmIsHealthy bool `json:"vmIsHealthy,omitempty"`
6765
6766	// VmStartupTime: The time the VM was booted.
6767	VmStartupTime string `json:"vmStartupTime,omitempty"`
6768
6769	// ForceSendFields is a list of field names (e.g. "Msg") to
6770	// unconditionally include in API requests. By default, fields with
6771	// empty values are omitted from API requests. However, any non-pointer,
6772	// non-interface field appearing in ForceSendFields will be sent to the
6773	// server regardless of whether the field is empty or not. This may be
6774	// used to include empty fields in Patch requests.
6775	ForceSendFields []string `json:"-"`
6776
6777	// NullFields is a list of field names (e.g. "Msg") to include in API
6778	// requests with the JSON null value. By default, fields with empty
6779	// values are omitted from API requests. However, any field with an
6780	// empty value appearing in NullFields will be sent to the server as
6781	// null. It is an error if a field in this list has a non-empty value.
6782	// This may be used to include null fields in Patch requests.
6783	NullFields []string `json:"-"`
6784}
6785
6786func (s *WorkerHealthReport) MarshalJSON() ([]byte, error) {
6787	type NoMethod WorkerHealthReport
6788	raw := NoMethod(*s)
6789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6790}
6791
6792// WorkerHealthReportResponse: WorkerHealthReportResponse contains
6793// information returned to the worker
6794// in response to a health ping.
6795type WorkerHealthReportResponse struct {
6796	// ReportInterval: A positive value indicates the worker should change
6797	// its reporting interval
6798	// to the specified value.
6799	//
6800	// The default value of zero means no change in report rate is requested
6801	// by
6802	// the server.
6803	ReportInterval string `json:"reportInterval,omitempty"`
6804
6805	// ForceSendFields is a list of field names (e.g. "ReportInterval") to
6806	// unconditionally include in API requests. By default, fields with
6807	// empty values are omitted from API requests. However, any non-pointer,
6808	// non-interface field appearing in ForceSendFields will be sent to the
6809	// server regardless of whether the field is empty or not. This may be
6810	// used to include empty fields in Patch requests.
6811	ForceSendFields []string `json:"-"`
6812
6813	// NullFields is a list of field names (e.g. "ReportInterval") to
6814	// include in API requests with the JSON null value. By default, fields
6815	// with empty values are omitted from API requests. However, any field
6816	// with an empty value appearing in NullFields will be sent to the
6817	// server as null. It is an error if a field in this list has a
6818	// non-empty value. This may be used to include null fields in Patch
6819	// requests.
6820	NullFields []string `json:"-"`
6821}
6822
6823func (s *WorkerHealthReportResponse) MarshalJSON() ([]byte, error) {
6824	type NoMethod WorkerHealthReportResponse
6825	raw := NoMethod(*s)
6826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6827}
6828
6829// WorkerLifecycleEvent: A report of an event in a worker's
6830// lifecycle.
6831// The proto contains one event, because the worker is expected
6832// to
6833// asynchronously send each message immediately after the event.
6834// Due to this asynchrony, messages may arrive out of order (or
6835// missing), and it
6836// is up to the consumer to interpret.
6837// The timestamp of the event is in the enclosing WorkerMessage proto.
6838type WorkerLifecycleEvent struct {
6839	// ContainerStartTime: The start time of this container. All events will
6840	// report this so that
6841	// events can be grouped together across container/VM restarts.
6842	ContainerStartTime string `json:"containerStartTime,omitempty"`
6843
6844	// Event: The event being reported.
6845	//
6846	// Possible values:
6847	//   "UNKNOWN_EVENT" - Invalid event.
6848	//   "OS_START" - The time the VM started.
6849	//   "CONTAINER_START" - Our container code starts running. Multiple
6850	// containers could be
6851	// distinguished with WorkerMessage.labels if desired.
6852	//   "NETWORK_UP" - The worker has a functional external network
6853	// connection.
6854	//   "STAGING_FILES_DOWNLOAD_START" - Started downloading staging files.
6855	//   "STAGING_FILES_DOWNLOAD_FINISH" - Finished downloading all staging
6856	// files.
6857	//   "SDK_INSTALL_START" - For applicable SDKs, started installation of
6858	// SDK and worker packages.
6859	//   "SDK_INSTALL_FINISH" - Finished installing SDK.
6860	Event string `json:"event,omitempty"`
6861
6862	// Metadata: Other stats that can accompany an event. E.g.
6863	// { "downloaded_bytes" : "123456" }
6864	Metadata map[string]string `json:"metadata,omitempty"`
6865
6866	// ForceSendFields is a list of field names (e.g. "ContainerStartTime")
6867	// to unconditionally include in API requests. By default, fields with
6868	// empty values are omitted from API requests. However, any non-pointer,
6869	// non-interface field appearing in ForceSendFields will be sent to the
6870	// server regardless of whether the field is empty or not. This may be
6871	// used to include empty fields in Patch requests.
6872	ForceSendFields []string `json:"-"`
6873
6874	// NullFields is a list of field names (e.g. "ContainerStartTime") to
6875	// include in API requests with the JSON null value. By default, fields
6876	// with empty values are omitted from API requests. However, any field
6877	// with an empty value appearing in NullFields will be sent to the
6878	// server as null. It is an error if a field in this list has a
6879	// non-empty value. This may be used to include null fields in Patch
6880	// requests.
6881	NullFields []string `json:"-"`
6882}
6883
6884func (s *WorkerLifecycleEvent) MarshalJSON() ([]byte, error) {
6885	type NoMethod WorkerLifecycleEvent
6886	raw := NoMethod(*s)
6887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6888}
6889
6890// WorkerMessage: WorkerMessage provides information to the backend
6891// about a worker.
6892type WorkerMessage struct {
6893	// Labels: Labels are used to group WorkerMessages.
6894	// For example, a worker_message about a particular container
6895	// might have the labels:
6896	// { "JOB_ID": "2015-04-22",
6897	//   "WORKER_ID": "wordcount-vm-2015…"
6898	//   "CONTAINER_TYPE": "worker",
6899	//   "CONTAINER_ID": "ac1234def"}
6900	// Label tags typically correspond to Label enum values. However, for
6901	// ease
6902	// of development other strings can be used as tags. LABEL_UNSPECIFIED
6903	// should
6904	// not be used here.
6905	Labels map[string]string `json:"labels,omitempty"`
6906
6907	// Time: The timestamp of the worker_message.
6908	Time string `json:"time,omitempty"`
6909
6910	// WorkerHealthReport: The health of a worker.
6911	WorkerHealthReport *WorkerHealthReport `json:"workerHealthReport,omitempty"`
6912
6913	// WorkerLifecycleEvent: Record of worker lifecycle events.
6914	WorkerLifecycleEvent *WorkerLifecycleEvent `json:"workerLifecycleEvent,omitempty"`
6915
6916	// WorkerMessageCode: A worker message code.
6917	WorkerMessageCode *WorkerMessageCode `json:"workerMessageCode,omitempty"`
6918
6919	// WorkerMetrics: Resource metrics reported by workers.
6920	WorkerMetrics *ResourceUtilizationReport `json:"workerMetrics,omitempty"`
6921
6922	// WorkerShutdownNotice: Shutdown notice by workers.
6923	WorkerShutdownNotice *WorkerShutdownNotice `json:"workerShutdownNotice,omitempty"`
6924
6925	// ForceSendFields is a list of field names (e.g. "Labels") to
6926	// unconditionally include in API requests. By default, fields with
6927	// empty values are omitted from API requests. However, any non-pointer,
6928	// non-interface field appearing in ForceSendFields will be sent to the
6929	// server regardless of whether the field is empty or not. This may be
6930	// used to include empty fields in Patch requests.
6931	ForceSendFields []string `json:"-"`
6932
6933	// NullFields is a list of field names (e.g. "Labels") to include in API
6934	// requests with the JSON null value. By default, fields with empty
6935	// values are omitted from API requests. However, any field with an
6936	// empty value appearing in NullFields will be sent to the server as
6937	// null. It is an error if a field in this list has a non-empty value.
6938	// This may be used to include null fields in Patch requests.
6939	NullFields []string `json:"-"`
6940}
6941
6942func (s *WorkerMessage) MarshalJSON() ([]byte, error) {
6943	type NoMethod WorkerMessage
6944	raw := NoMethod(*s)
6945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6946}
6947
6948// WorkerMessageCode: A message code is used to report status and error
6949// messages to the service.
6950// The message codes are intended to be machine readable. The service
6951// will
6952// take care of translating these into user understandable messages
6953// if
6954// necessary.
6955//
6956// Example use cases:
6957//   1. Worker processes reporting successful startup.
6958//   2. Worker processes reporting specific errors (e.g. package
6959// staging
6960//      failure).
6961type WorkerMessageCode struct {
6962	// Code: The code is a string intended for consumption by a machine that
6963	// identifies
6964	// the type of message being sent.
6965	// Examples:
6966	//  1. "HARNESS_STARTED" might be used to indicate the worker harness
6967	// has
6968	//      started.
6969	//  2. "GCS_DOWNLOAD_ERROR" might be used to indicate an error
6970	// downloading
6971	//     a GCS file as part of the boot process of one of the worker
6972	// containers.
6973	//
6974	// This is a string and not an enum to make it easy to add new codes
6975	// without
6976	// waiting for an API change.
6977	Code string `json:"code,omitempty"`
6978
6979	// Parameters: Parameters contains specific information about the
6980	// code.
6981	//
6982	// This is a struct to allow parameters of different types.
6983	//
6984	// Examples:
6985	//  1. For a "HARNESS_STARTED" message parameters might provide the
6986	// name
6987	//     of the worker and additional data like timing information.
6988	//  2. For a "GCS_DOWNLOAD_ERROR" parameters might contain fields
6989	// listing
6990	//     the GCS objects being downloaded and fields containing
6991	// errors.
6992	//
6993	// In general complex data structures should be avoided. If a
6994	// worker
6995	// needs to send a specific and complicated data structure then
6996	// please
6997	// consider defining a new proto and adding it to the data oneof
6998	// in
6999	// WorkerMessageResponse.
7000	//
7001	// Conventions:
7002	//  Parameters should only be used for information that isn't typically
7003	// passed
7004	//  as a label.
7005	//  hostname and other worker identifiers should almost always be
7006	// passed
7007	//  as labels since they will be included on most messages.
7008	Parameters googleapi.RawMessage `json:"parameters,omitempty"`
7009
7010	// ForceSendFields is a list of field names (e.g. "Code") to
7011	// unconditionally include in API requests. By default, fields with
7012	// empty values are omitted from API requests. However, any non-pointer,
7013	// non-interface field appearing in ForceSendFields will be sent to the
7014	// server regardless of whether the field is empty or not. This may be
7015	// used to include empty fields in Patch requests.
7016	ForceSendFields []string `json:"-"`
7017
7018	// NullFields is a list of field names (e.g. "Code") to include in API
7019	// requests with the JSON null value. By default, fields with empty
7020	// values are omitted from API requests. However, any field with an
7021	// empty value appearing in NullFields will be sent to the server as
7022	// null. It is an error if a field in this list has a non-empty value.
7023	// This may be used to include null fields in Patch requests.
7024	NullFields []string `json:"-"`
7025}
7026
7027func (s *WorkerMessageCode) MarshalJSON() ([]byte, error) {
7028	type NoMethod WorkerMessageCode
7029	raw := NoMethod(*s)
7030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7031}
7032
7033// WorkerMessageResponse: A worker_message response allows the server to
7034// pass information to the
7035// sender.
7036type WorkerMessageResponse struct {
7037	// WorkerHealthReportResponse: The service's response to a worker's
7038	// health report.
7039	WorkerHealthReportResponse *WorkerHealthReportResponse `json:"workerHealthReportResponse,omitempty"`
7040
7041	// WorkerMetricsResponse: Service's response to reporting worker metrics
7042	// (currently empty).
7043	WorkerMetricsResponse *ResourceUtilizationReportResponse `json:"workerMetricsResponse,omitempty"`
7044
7045	// WorkerShutdownNoticeResponse: Service's response to shutdown notice
7046	// (currently empty).
7047	WorkerShutdownNoticeResponse *WorkerShutdownNoticeResponse `json:"workerShutdownNoticeResponse,omitempty"`
7048
7049	// ForceSendFields is a list of field names (e.g.
7050	// "WorkerHealthReportResponse") to unconditionally include in API
7051	// requests. By default, fields with empty values are omitted from API
7052	// requests. However, any non-pointer, non-interface field appearing in
7053	// ForceSendFields will be sent to the server regardless of whether the
7054	// field is empty or not. This may be used to include empty fields in
7055	// Patch requests.
7056	ForceSendFields []string `json:"-"`
7057
7058	// NullFields is a list of field names (e.g.
7059	// "WorkerHealthReportResponse") to include in API requests with the
7060	// JSON null value. By default, fields with empty values are omitted
7061	// from API requests. However, any field with an empty value appearing
7062	// in NullFields will be sent to the server as null. It is an error if a
7063	// field in this list has a non-empty value. This may be used to include
7064	// null fields in Patch requests.
7065	NullFields []string `json:"-"`
7066}
7067
7068func (s *WorkerMessageResponse) MarshalJSON() ([]byte, error) {
7069	type NoMethod WorkerMessageResponse
7070	raw := NoMethod(*s)
7071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7072}
7073
7074// WorkerPool: Describes one particular pool of Cloud Dataflow workers
7075// to be
7076// instantiated by the Cloud Dataflow service in order to perform
7077// the
7078// computations required by a job.  Note that a workflow job may
7079// use
7080// multiple pools, in order to match the various
7081// computational
7082// requirements of the various stages of the job.
7083type WorkerPool struct {
7084	// AutoscalingSettings: Settings for autoscaling of this WorkerPool.
7085	AutoscalingSettings *AutoscalingSettings `json:"autoscalingSettings,omitempty"`
7086
7087	// DataDisks: Data disks that are used by a VM in this workflow.
7088	DataDisks []*Disk `json:"dataDisks,omitempty"`
7089
7090	// DefaultPackageSet: The default package set to install.  This allows
7091	// the service to
7092	// select a default set of packages which are useful to worker
7093	// harnesses written in a particular language.
7094	//
7095	// Possible values:
7096	//   "DEFAULT_PACKAGE_SET_UNKNOWN" - The default set of packages to
7097	// stage is unknown, or unspecified.
7098	//   "DEFAULT_PACKAGE_SET_NONE" - Indicates that no packages should be
7099	// staged at the worker unless
7100	// explicitly specified by the job.
7101	//   "DEFAULT_PACKAGE_SET_JAVA" - Stage packages typically useful to
7102	// workers written in Java.
7103	//   "DEFAULT_PACKAGE_SET_PYTHON" - Stage pacakges typically useful to
7104	// workers written in Python.
7105	DefaultPackageSet string `json:"defaultPackageSet,omitempty"`
7106
7107	// DiskSizeGb: Size of root disk for VMs, in GB.  If zero or
7108	// unspecified, the service will
7109	// attempt to choose a reasonable default.
7110	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
7111
7112	// DiskSourceImage: Fully qualified source image for disks.
7113	DiskSourceImage string `json:"diskSourceImage,omitempty"`
7114
7115	// DiskType: Type of root disk for VMs.  If empty or unspecified, the
7116	// service will
7117	// attempt to choose a reasonable default.
7118	DiskType string `json:"diskType,omitempty"`
7119
7120	// IpConfiguration: Configuration for VM IPs.
7121	//
7122	// Possible values:
7123	//   "WORKER_IP_UNSPECIFIED" - The configuration is unknown, or
7124	// unspecified.
7125	//   "WORKER_IP_PUBLIC" - Workers should have public IP addresses.
7126	//   "WORKER_IP_PRIVATE" - Workers should have private IP addresses.
7127	IpConfiguration string `json:"ipConfiguration,omitempty"`
7128
7129	// Kind: The kind of the worker pool; currently only `harness` and
7130	// `shuffle`
7131	// are supported.
7132	Kind string `json:"kind,omitempty"`
7133
7134	// MachineType: Machine type (e.g. "n1-standard-1").  If empty or
7135	// unspecified, the
7136	// service will attempt to choose a reasonable default.
7137	MachineType string `json:"machineType,omitempty"`
7138
7139	// Metadata: Metadata to set on the Google Compute Engine VMs.
7140	Metadata map[string]string `json:"metadata,omitempty"`
7141
7142	// Network: Network to which VMs will be assigned.  If empty or
7143	// unspecified,
7144	// the service will use the network "default".
7145	Network string `json:"network,omitempty"`
7146
7147	// NumThreadsPerWorker: The number of threads per worker harness. If
7148	// empty or unspecified, the
7149	// service will choose a number of threads (according to the number of
7150	// cores
7151	// on the selected machine type for batch, or 1 by convention for
7152	// streaming).
7153	NumThreadsPerWorker int64 `json:"numThreadsPerWorker,omitempty"`
7154
7155	// NumWorkers: Number of Google Compute Engine workers in this pool
7156	// needed to
7157	// execute the job.  If zero or unspecified, the service will
7158	// attempt to choose a reasonable default.
7159	NumWorkers int64 `json:"numWorkers,omitempty"`
7160
7161	// OnHostMaintenance: The action to take on host maintenance, as defined
7162	// by the Google
7163	// Compute Engine API.
7164	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
7165
7166	// Packages: Packages to be installed on workers.
7167	Packages []*Package `json:"packages,omitempty"`
7168
7169	// PoolArgs: Extra arguments for this worker pool.
7170	PoolArgs googleapi.RawMessage `json:"poolArgs,omitempty"`
7171
7172	// Subnetwork: Subnetwork to which VMs will be assigned, if desired.
7173	// Expected to be of
7174	// the form "regions/REGION/subnetworks/SUBNETWORK".
7175	Subnetwork string `json:"subnetwork,omitempty"`
7176
7177	// TaskrunnerSettings: Settings passed through to Google Compute Engine
7178	// workers when
7179	// using the standard Dataflow task runner.  Users should ignore
7180	// this field.
7181	TaskrunnerSettings *TaskRunnerSettings `json:"taskrunnerSettings,omitempty"`
7182
7183	// TeardownPolicy: Sets the policy for determining when to turndown
7184	// worker pool.
7185	// Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`,
7186	// and
7187	// `TEARDOWN_NEVER`.
7188	// `TEARDOWN_ALWAYS` means workers are always torn down regardless of
7189	// whether
7190	// the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn
7191	// down
7192	// if the job succeeds. `TEARDOWN_NEVER` means the workers are never
7193	// torn
7194	// down.
7195	//
7196	// If the workers are not torn down by the service, they will
7197	// continue to run and use Google Compute Engine VM resources in
7198	// the
7199	// user's project until they are explicitly terminated by the
7200	// user.
7201	// Because of this, Google recommends using the `TEARDOWN_ALWAYS`
7202	// policy except for small, manually supervised test jobs.
7203	//
7204	// If unknown or unspecified, the service will attempt to choose a
7205	// reasonable
7206	// default.
7207	//
7208	// Possible values:
7209	//   "TEARDOWN_POLICY_UNKNOWN" - The teardown policy isn't specified, or
7210	// is unknown.
7211	//   "TEARDOWN_ALWAYS" - Always teardown the resource.
7212	//   "TEARDOWN_ON_SUCCESS" - Teardown the resource on success. This is
7213	// useful for debugging
7214	// failures.
7215	//   "TEARDOWN_NEVER" - Never teardown the resource. This is useful for
7216	// debugging and
7217	// development.
7218	TeardownPolicy string `json:"teardownPolicy,omitempty"`
7219
7220	// WorkerHarnessContainerImage: Required. Docker container image that
7221	// executes the Cloud Dataflow worker
7222	// harness, residing in Google Container Registry.
7223	WorkerHarnessContainerImage string `json:"workerHarnessContainerImage,omitempty"`
7224
7225	// Zone: Zone to run the worker pools in.  If empty or unspecified, the
7226	// service
7227	// will attempt to choose a reasonable default.
7228	Zone string `json:"zone,omitempty"`
7229
7230	// ForceSendFields is a list of field names (e.g. "AutoscalingSettings")
7231	// to unconditionally include in API requests. By default, fields with
7232	// empty values are omitted from API requests. However, any non-pointer,
7233	// non-interface field appearing in ForceSendFields will be sent to the
7234	// server regardless of whether the field is empty or not. This may be
7235	// used to include empty fields in Patch requests.
7236	ForceSendFields []string `json:"-"`
7237
7238	// NullFields is a list of field names (e.g. "AutoscalingSettings") to
7239	// include in API requests with the JSON null value. By default, fields
7240	// with empty values are omitted from API requests. However, any field
7241	// with an empty value appearing in NullFields will be sent to the
7242	// server as null. It is an error if a field in this list has a
7243	// non-empty value. This may be used to include null fields in Patch
7244	// requests.
7245	NullFields []string `json:"-"`
7246}
7247
7248func (s *WorkerPool) MarshalJSON() ([]byte, error) {
7249	type NoMethod WorkerPool
7250	raw := NoMethod(*s)
7251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7252}
7253
7254// WorkerSettings: Provides data to pass through to the worker harness.
7255type WorkerSettings struct {
7256	// BaseUrl: The base URL for accessing Google Cloud APIs.
7257	//
7258	// When workers access Google Cloud APIs, they logically do so
7259	// via
7260	// relative URLs.  If this field is specified, it supplies the base
7261	// URL to use for resolving these relative URLs.  The
7262	// normative
7263	// algorithm used is defined by RFC 1808, "Relative Uniform
7264	// Resource
7265	// Locators".
7266	//
7267	// If not specified, the default value is "http://www.googleapis.com/"
7268	BaseUrl string `json:"baseUrl,omitempty"`
7269
7270	// ReportingEnabled: Whether to send work progress updates to the
7271	// service.
7272	ReportingEnabled bool `json:"reportingEnabled,omitempty"`
7273
7274	// ServicePath: The Cloud Dataflow service path relative to the root
7275	// URL, for example,
7276	// "dataflow/v1b3/projects".
7277	ServicePath string `json:"servicePath,omitempty"`
7278
7279	// ShuffleServicePath: The Shuffle service path relative to the root
7280	// URL, for example,
7281	// "shuffle/v1beta1".
7282	ShuffleServicePath string `json:"shuffleServicePath,omitempty"`
7283
7284	// TempStoragePrefix: The prefix of the resources the system should use
7285	// for temporary
7286	// storage.
7287	//
7288	// The supported resource type is:
7289	//
7290	// Google Cloud Storage:
7291	//
7292	//   storage.googleapis.com/{bucket}/{object}
7293	//   bucket.storage.googleapis.com/{object}
7294	TempStoragePrefix string `json:"tempStoragePrefix,omitempty"`
7295
7296	// WorkerId: The ID of the worker running this pipeline.
7297	WorkerId string `json:"workerId,omitempty"`
7298
7299	// ForceSendFields is a list of field names (e.g. "BaseUrl") to
7300	// unconditionally include in API requests. By default, fields with
7301	// empty values are omitted from API requests. However, any non-pointer,
7302	// non-interface field appearing in ForceSendFields will be sent to the
7303	// server regardless of whether the field is empty or not. This may be
7304	// used to include empty fields in Patch requests.
7305	ForceSendFields []string `json:"-"`
7306
7307	// NullFields is a list of field names (e.g. "BaseUrl") to include in
7308	// API requests with the JSON null value. By default, fields with empty
7309	// values are omitted from API requests. However, any field with an
7310	// empty value appearing in NullFields will be sent to the server as
7311	// null. It is an error if a field in this list has a non-empty value.
7312	// This may be used to include null fields in Patch requests.
7313	NullFields []string `json:"-"`
7314}
7315
7316func (s *WorkerSettings) MarshalJSON() ([]byte, error) {
7317	type NoMethod WorkerSettings
7318	raw := NoMethod(*s)
7319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7320}
7321
7322// WorkerShutdownNotice: Shutdown notification from workers. This is to
7323// be sent by the shutdown
7324// script of the worker VM so that the backend knows that the VM is
7325// being
7326// shut down.
7327type WorkerShutdownNotice struct {
7328	// Reason: The reason for the worker shutdown.
7329	// Current possible values are:
7330	//   "UNKNOWN": shutdown reason is unknown.
7331	//   "PREEMPTION": shutdown reason is preemption.
7332	// Other possible reasons may be added in the future.
7333	Reason string `json:"reason,omitempty"`
7334
7335	// ForceSendFields is a list of field names (e.g. "Reason") to
7336	// unconditionally include in API requests. By default, fields with
7337	// empty values are omitted from API requests. However, any non-pointer,
7338	// non-interface field appearing in ForceSendFields will be sent to the
7339	// server regardless of whether the field is empty or not. This may be
7340	// used to include empty fields in Patch requests.
7341	ForceSendFields []string `json:"-"`
7342
7343	// NullFields is a list of field names (e.g. "Reason") to include in API
7344	// requests with the JSON null value. By default, fields with empty
7345	// values are omitted from API requests. However, any field with an
7346	// empty value appearing in NullFields will be sent to the server as
7347	// null. It is an error if a field in this list has a non-empty value.
7348	// This may be used to include null fields in Patch requests.
7349	NullFields []string `json:"-"`
7350}
7351
7352func (s *WorkerShutdownNotice) MarshalJSON() ([]byte, error) {
7353	type NoMethod WorkerShutdownNotice
7354	raw := NoMethod(*s)
7355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7356}
7357
7358// WorkerShutdownNoticeResponse: Service-side response to WorkerMessage
7359// issuing shutdown notice.
7360type WorkerShutdownNoticeResponse struct {
7361}
7362
7363// WriteInstruction: An instruction that writes records.
7364// Takes one input, produces no outputs.
7365type WriteInstruction struct {
7366	// Input: The input.
7367	Input *InstructionInput `json:"input,omitempty"`
7368
7369	// Sink: The sink to write to.
7370	Sink *Sink `json:"sink,omitempty"`
7371
7372	// ForceSendFields is a list of field names (e.g. "Input") to
7373	// unconditionally include in API requests. By default, fields with
7374	// empty values are omitted from API requests. However, any non-pointer,
7375	// non-interface field appearing in ForceSendFields will be sent to the
7376	// server regardless of whether the field is empty or not. This may be
7377	// used to include empty fields in Patch requests.
7378	ForceSendFields []string `json:"-"`
7379
7380	// NullFields is a list of field names (e.g. "Input") to include in API
7381	// requests with the JSON null value. By default, fields with empty
7382	// values are omitted from API requests. However, any field with an
7383	// empty value appearing in NullFields will be sent to the server as
7384	// null. It is an error if a field in this list has a non-empty value.
7385	// This may be used to include null fields in Patch requests.
7386	NullFields []string `json:"-"`
7387}
7388
7389func (s *WriteInstruction) MarshalJSON() ([]byte, error) {
7390	type NoMethod WriteInstruction
7391	raw := NoMethod(*s)
7392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7393}
7394
7395// method id "dataflow.projects.workerMessages":
7396
7397type ProjectsWorkerMessagesCall struct {
7398	s                         *Service
7399	projectId                 string
7400	sendworkermessagesrequest *SendWorkerMessagesRequest
7401	urlParams_                gensupport.URLParams
7402	ctx_                      context.Context
7403	header_                   http.Header
7404}
7405
7406// WorkerMessages: Send a worker_message to the service.
7407func (r *ProjectsService) WorkerMessages(projectId string, sendworkermessagesrequest *SendWorkerMessagesRequest) *ProjectsWorkerMessagesCall {
7408	c := &ProjectsWorkerMessagesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7409	c.projectId = projectId
7410	c.sendworkermessagesrequest = sendworkermessagesrequest
7411	return c
7412}
7413
7414// Fields allows partial responses to be retrieved. See
7415// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7416// for more information.
7417func (c *ProjectsWorkerMessagesCall) Fields(s ...googleapi.Field) *ProjectsWorkerMessagesCall {
7418	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7419	return c
7420}
7421
7422// Context sets the context to be used in this call's Do method. Any
7423// pending HTTP request will be aborted if the provided context is
7424// canceled.
7425func (c *ProjectsWorkerMessagesCall) Context(ctx context.Context) *ProjectsWorkerMessagesCall {
7426	c.ctx_ = ctx
7427	return c
7428}
7429
7430// Header returns an http.Header that can be modified by the caller to
7431// add HTTP headers to the request.
7432func (c *ProjectsWorkerMessagesCall) Header() http.Header {
7433	if c.header_ == nil {
7434		c.header_ = make(http.Header)
7435	}
7436	return c.header_
7437}
7438
7439func (c *ProjectsWorkerMessagesCall) doRequest(alt string) (*http.Response, error) {
7440	reqHeaders := make(http.Header)
7441	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
7442	for k, v := range c.header_ {
7443		reqHeaders[k] = v
7444	}
7445	reqHeaders.Set("User-Agent", c.s.userAgent())
7446	var body io.Reader = nil
7447	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sendworkermessagesrequest)
7448	if err != nil {
7449		return nil, err
7450	}
7451	reqHeaders.Set("Content-Type", "application/json")
7452	c.urlParams_.Set("alt", alt)
7453	c.urlParams_.Set("prettyPrint", "false")
7454	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/WorkerMessages")
7455	urls += "?" + c.urlParams_.Encode()
7456	req, err := http.NewRequest("POST", urls, body)
7457	if err != nil {
7458		return nil, err
7459	}
7460	req.Header = reqHeaders
7461	googleapi.Expand(req.URL, map[string]string{
7462		"projectId": c.projectId,
7463	})
7464	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7465}
7466
7467// Do executes the "dataflow.projects.workerMessages" call.
7468// Exactly one of *SendWorkerMessagesResponse or error will be non-nil.
7469// Any non-2xx status code is an error. Response headers are in either
7470// *SendWorkerMessagesResponse.ServerResponse.Header or (if a response
7471// was returned at all) in error.(*googleapi.Error).Header. Use
7472// googleapi.IsNotModified to check whether the returned error was
7473// because http.StatusNotModified was returned.
7474func (c *ProjectsWorkerMessagesCall) Do(opts ...googleapi.CallOption) (*SendWorkerMessagesResponse, error) {
7475	gensupport.SetOptions(c.urlParams_, opts...)
7476	res, err := c.doRequest("json")
7477	if res != nil && res.StatusCode == http.StatusNotModified {
7478		if res.Body != nil {
7479			res.Body.Close()
7480		}
7481		return nil, &googleapi.Error{
7482			Code:   res.StatusCode,
7483			Header: res.Header,
7484		}
7485	}
7486	if err != nil {
7487		return nil, err
7488	}
7489	defer googleapi.CloseBody(res)
7490	if err := googleapi.CheckResponse(res); err != nil {
7491		return nil, err
7492	}
7493	ret := &SendWorkerMessagesResponse{
7494		ServerResponse: googleapi.ServerResponse{
7495			Header:         res.Header,
7496			HTTPStatusCode: res.StatusCode,
7497		},
7498	}
7499	target := &ret
7500	if err := gensupport.DecodeResponse(target, res); err != nil {
7501		return nil, err
7502	}
7503	return ret, nil
7504	// {
7505	//   "description": "Send a worker_message to the service.",
7506	//   "flatPath": "v1b3/projects/{projectId}/WorkerMessages",
7507	//   "httpMethod": "POST",
7508	//   "id": "dataflow.projects.workerMessages",
7509	//   "parameterOrder": [
7510	//     "projectId"
7511	//   ],
7512	//   "parameters": {
7513	//     "projectId": {
7514	//       "description": "The project to send the WorkerMessages to.",
7515	//       "location": "path",
7516	//       "required": true,
7517	//       "type": "string"
7518	//     }
7519	//   },
7520	//   "path": "v1b3/projects/{projectId}/WorkerMessages",
7521	//   "request": {
7522	//     "$ref": "SendWorkerMessagesRequest"
7523	//   },
7524	//   "response": {
7525	//     "$ref": "SendWorkerMessagesResponse"
7526	//   },
7527	//   "scopes": [
7528	//     "https://www.googleapis.com/auth/cloud-platform",
7529	//     "https://www.googleapis.com/auth/compute",
7530	//     "https://www.googleapis.com/auth/compute.readonly",
7531	//     "https://www.googleapis.com/auth/userinfo.email"
7532	//   ]
7533	// }
7534
7535}
7536
7537// method id "dataflow.projects.jobs.aggregated":
7538
7539type ProjectsJobsAggregatedCall struct {
7540	s            *Service
7541	projectId    string
7542	urlParams_   gensupport.URLParams
7543	ifNoneMatch_ string
7544	ctx_         context.Context
7545	header_      http.Header
7546}
7547
7548// Aggregated: List the jobs of a project across all regions.
7549func (r *ProjectsJobsService) Aggregated(projectId string) *ProjectsJobsAggregatedCall {
7550	c := &ProjectsJobsAggregatedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7551	c.projectId = projectId
7552	return c
7553}
7554
7555// Filter sets the optional parameter "filter": The kind of filter to
7556// use.
7557//
7558// Possible values:
7559//   "UNKNOWN"
7560//   "ALL"
7561//   "TERMINATED"
7562//   "ACTIVE"
7563func (c *ProjectsJobsAggregatedCall) Filter(filter string) *ProjectsJobsAggregatedCall {
7564	c.urlParams_.Set("filter", filter)
7565	return c
7566}
7567
7568// Location sets the optional parameter "location": The [regional
7569// endpoint]
7570// (https://cloud.google.com/dataflow/docs/concepts/regional-en
7571// dpoints) that
7572// contains this job.
7573func (c *ProjectsJobsAggregatedCall) Location(location string) *ProjectsJobsAggregatedCall {
7574	c.urlParams_.Set("location", location)
7575	return c
7576}
7577
7578// PageSize sets the optional parameter "pageSize": If there are many
7579// jobs, limit response to at most this many.
7580// The actual number of jobs returned will be the lesser of
7581// max_responses
7582// and an unspecified server-defined limit.
7583func (c *ProjectsJobsAggregatedCall) PageSize(pageSize int64) *ProjectsJobsAggregatedCall {
7584	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
7585	return c
7586}
7587
7588// PageToken sets the optional parameter "pageToken": Set this to the
7589// 'next_page_token' field of a previous response
7590// to request additional results in a long list.
7591func (c *ProjectsJobsAggregatedCall) PageToken(pageToken string) *ProjectsJobsAggregatedCall {
7592	c.urlParams_.Set("pageToken", pageToken)
7593	return c
7594}
7595
7596// View sets the optional parameter "view": Level of information
7597// requested in response. Default is `JOB_VIEW_SUMMARY`.
7598//
7599// Possible values:
7600//   "JOB_VIEW_UNKNOWN"
7601//   "JOB_VIEW_SUMMARY"
7602//   "JOB_VIEW_ALL"
7603//   "JOB_VIEW_DESCRIPTION"
7604func (c *ProjectsJobsAggregatedCall) View(view string) *ProjectsJobsAggregatedCall {
7605	c.urlParams_.Set("view", view)
7606	return c
7607}
7608
7609// Fields allows partial responses to be retrieved. See
7610// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7611// for more information.
7612func (c *ProjectsJobsAggregatedCall) Fields(s ...googleapi.Field) *ProjectsJobsAggregatedCall {
7613	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7614	return c
7615}
7616
7617// IfNoneMatch sets the optional parameter which makes the operation
7618// fail if the object's ETag matches the given value. This is useful for
7619// getting updates only after the object has changed since the last
7620// request. Use googleapi.IsNotModified to check whether the response
7621// error from Do is the result of In-None-Match.
7622func (c *ProjectsJobsAggregatedCall) IfNoneMatch(entityTag string) *ProjectsJobsAggregatedCall {
7623	c.ifNoneMatch_ = entityTag
7624	return c
7625}
7626
7627// Context sets the context to be used in this call's Do method. Any
7628// pending HTTP request will be aborted if the provided context is
7629// canceled.
7630func (c *ProjectsJobsAggregatedCall) Context(ctx context.Context) *ProjectsJobsAggregatedCall {
7631	c.ctx_ = ctx
7632	return c
7633}
7634
7635// Header returns an http.Header that can be modified by the caller to
7636// add HTTP headers to the request.
7637func (c *ProjectsJobsAggregatedCall) Header() http.Header {
7638	if c.header_ == nil {
7639		c.header_ = make(http.Header)
7640	}
7641	return c.header_
7642}
7643
7644func (c *ProjectsJobsAggregatedCall) doRequest(alt string) (*http.Response, error) {
7645	reqHeaders := make(http.Header)
7646	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
7647	for k, v := range c.header_ {
7648		reqHeaders[k] = v
7649	}
7650	reqHeaders.Set("User-Agent", c.s.userAgent())
7651	if c.ifNoneMatch_ != "" {
7652		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7653	}
7654	var body io.Reader = nil
7655	c.urlParams_.Set("alt", alt)
7656	c.urlParams_.Set("prettyPrint", "false")
7657	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs:aggregated")
7658	urls += "?" + c.urlParams_.Encode()
7659	req, err := http.NewRequest("GET", urls, body)
7660	if err != nil {
7661		return nil, err
7662	}
7663	req.Header = reqHeaders
7664	googleapi.Expand(req.URL, map[string]string{
7665		"projectId": c.projectId,
7666	})
7667	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7668}
7669
7670// Do executes the "dataflow.projects.jobs.aggregated" call.
7671// Exactly one of *ListJobsResponse or error will be non-nil. Any
7672// non-2xx status code is an error. Response headers are in either
7673// *ListJobsResponse.ServerResponse.Header or (if a response was
7674// returned at all) in error.(*googleapi.Error).Header. Use
7675// googleapi.IsNotModified to check whether the returned error was
7676// because http.StatusNotModified was returned.
7677func (c *ProjectsJobsAggregatedCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
7678	gensupport.SetOptions(c.urlParams_, opts...)
7679	res, err := c.doRequest("json")
7680	if res != nil && res.StatusCode == http.StatusNotModified {
7681		if res.Body != nil {
7682			res.Body.Close()
7683		}
7684		return nil, &googleapi.Error{
7685			Code:   res.StatusCode,
7686			Header: res.Header,
7687		}
7688	}
7689	if err != nil {
7690		return nil, err
7691	}
7692	defer googleapi.CloseBody(res)
7693	if err := googleapi.CheckResponse(res); err != nil {
7694		return nil, err
7695	}
7696	ret := &ListJobsResponse{
7697		ServerResponse: googleapi.ServerResponse{
7698			Header:         res.Header,
7699			HTTPStatusCode: res.StatusCode,
7700		},
7701	}
7702	target := &ret
7703	if err := gensupport.DecodeResponse(target, res); err != nil {
7704		return nil, err
7705	}
7706	return ret, nil
7707	// {
7708	//   "description": "List the jobs of a project across all regions.",
7709	//   "flatPath": "v1b3/projects/{projectId}/jobs:aggregated",
7710	//   "httpMethod": "GET",
7711	//   "id": "dataflow.projects.jobs.aggregated",
7712	//   "parameterOrder": [
7713	//     "projectId"
7714	//   ],
7715	//   "parameters": {
7716	//     "filter": {
7717	//       "description": "The kind of filter to use.",
7718	//       "enum": [
7719	//         "UNKNOWN",
7720	//         "ALL",
7721	//         "TERMINATED",
7722	//         "ACTIVE"
7723	//       ],
7724	//       "location": "query",
7725	//       "type": "string"
7726	//     },
7727	//     "location": {
7728	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains this job.",
7729	//       "location": "query",
7730	//       "type": "string"
7731	//     },
7732	//     "pageSize": {
7733	//       "description": "If there are many jobs, limit response to at most this many.\nThe actual number of jobs returned will be the lesser of max_responses\nand an unspecified server-defined limit.",
7734	//       "format": "int32",
7735	//       "location": "query",
7736	//       "type": "integer"
7737	//     },
7738	//     "pageToken": {
7739	//       "description": "Set this to the 'next_page_token' field of a previous response\nto request additional results in a long list.",
7740	//       "location": "query",
7741	//       "type": "string"
7742	//     },
7743	//     "projectId": {
7744	//       "description": "The project which owns the jobs.",
7745	//       "location": "path",
7746	//       "required": true,
7747	//       "type": "string"
7748	//     },
7749	//     "view": {
7750	//       "description": "Level of information requested in response. Default is `JOB_VIEW_SUMMARY`.",
7751	//       "enum": [
7752	//         "JOB_VIEW_UNKNOWN",
7753	//         "JOB_VIEW_SUMMARY",
7754	//         "JOB_VIEW_ALL",
7755	//         "JOB_VIEW_DESCRIPTION"
7756	//       ],
7757	//       "location": "query",
7758	//       "type": "string"
7759	//     }
7760	//   },
7761	//   "path": "v1b3/projects/{projectId}/jobs:aggregated",
7762	//   "response": {
7763	//     "$ref": "ListJobsResponse"
7764	//   },
7765	//   "scopes": [
7766	//     "https://www.googleapis.com/auth/cloud-platform",
7767	//     "https://www.googleapis.com/auth/compute",
7768	//     "https://www.googleapis.com/auth/compute.readonly",
7769	//     "https://www.googleapis.com/auth/userinfo.email"
7770	//   ]
7771	// }
7772
7773}
7774
7775// Pages invokes f for each page of results.
7776// A non-nil error returned from f will halt the iteration.
7777// The provided context supersedes any context provided to the Context method.
7778func (c *ProjectsJobsAggregatedCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
7779	c.ctx_ = ctx
7780	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7781	for {
7782		x, err := c.Do()
7783		if err != nil {
7784			return err
7785		}
7786		if err := f(x); err != nil {
7787			return err
7788		}
7789		if x.NextPageToken == "" {
7790			return nil
7791		}
7792		c.PageToken(x.NextPageToken)
7793	}
7794}
7795
7796// method id "dataflow.projects.jobs.create":
7797
7798type ProjectsJobsCreateCall struct {
7799	s          *Service
7800	projectId  string
7801	job        *Job
7802	urlParams_ gensupport.URLParams
7803	ctx_       context.Context
7804	header_    http.Header
7805}
7806
7807// Create: Creates a Cloud Dataflow job.
7808//
7809// To create a job, we recommend using `projects.locations.jobs.create`
7810// with a
7811// [regional
7812// endpoint]
7813// (https://cloud.google.com/dataflow/docs/concepts/regional-en
7814// dpoints). Using
7815// `projects.jobs.create` is not recommended, as your job will always
7816// start
7817// in `us-central1`.
7818func (r *ProjectsJobsService) Create(projectId string, job *Job) *ProjectsJobsCreateCall {
7819	c := &ProjectsJobsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7820	c.projectId = projectId
7821	c.job = job
7822	return c
7823}
7824
7825// Location sets the optional parameter "location": The [regional
7826// endpoint]
7827// (https://cloud.google.com/dataflow/docs/concepts/regional-en
7828// dpoints) that
7829// contains this job.
7830func (c *ProjectsJobsCreateCall) Location(location string) *ProjectsJobsCreateCall {
7831	c.urlParams_.Set("location", location)
7832	return c
7833}
7834
7835// ReplaceJobId sets the optional parameter "replaceJobId": Deprecated.
7836// This field is now in the Job message.
7837func (c *ProjectsJobsCreateCall) ReplaceJobId(replaceJobId string) *ProjectsJobsCreateCall {
7838	c.urlParams_.Set("replaceJobId", replaceJobId)
7839	return c
7840}
7841
7842// View sets the optional parameter "view": The level of information
7843// requested in response.
7844//
7845// Possible values:
7846//   "JOB_VIEW_UNKNOWN"
7847//   "JOB_VIEW_SUMMARY"
7848//   "JOB_VIEW_ALL"
7849//   "JOB_VIEW_DESCRIPTION"
7850func (c *ProjectsJobsCreateCall) View(view string) *ProjectsJobsCreateCall {
7851	c.urlParams_.Set("view", view)
7852	return c
7853}
7854
7855// Fields allows partial responses to be retrieved. See
7856// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7857// for more information.
7858func (c *ProjectsJobsCreateCall) Fields(s ...googleapi.Field) *ProjectsJobsCreateCall {
7859	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7860	return c
7861}
7862
7863// Context sets the context to be used in this call's Do method. Any
7864// pending HTTP request will be aborted if the provided context is
7865// canceled.
7866func (c *ProjectsJobsCreateCall) Context(ctx context.Context) *ProjectsJobsCreateCall {
7867	c.ctx_ = ctx
7868	return c
7869}
7870
7871// Header returns an http.Header that can be modified by the caller to
7872// add HTTP headers to the request.
7873func (c *ProjectsJobsCreateCall) Header() http.Header {
7874	if c.header_ == nil {
7875		c.header_ = make(http.Header)
7876	}
7877	return c.header_
7878}
7879
7880func (c *ProjectsJobsCreateCall) doRequest(alt string) (*http.Response, error) {
7881	reqHeaders := make(http.Header)
7882	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
7883	for k, v := range c.header_ {
7884		reqHeaders[k] = v
7885	}
7886	reqHeaders.Set("User-Agent", c.s.userAgent())
7887	var body io.Reader = nil
7888	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
7889	if err != nil {
7890		return nil, err
7891	}
7892	reqHeaders.Set("Content-Type", "application/json")
7893	c.urlParams_.Set("alt", alt)
7894	c.urlParams_.Set("prettyPrint", "false")
7895	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs")
7896	urls += "?" + c.urlParams_.Encode()
7897	req, err := http.NewRequest("POST", urls, body)
7898	if err != nil {
7899		return nil, err
7900	}
7901	req.Header = reqHeaders
7902	googleapi.Expand(req.URL, map[string]string{
7903		"projectId": c.projectId,
7904	})
7905	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7906}
7907
7908// Do executes the "dataflow.projects.jobs.create" call.
7909// Exactly one of *Job or error will be non-nil. Any non-2xx status code
7910// is an error. Response headers are in either
7911// *Job.ServerResponse.Header or (if a response was returned at all) in
7912// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
7913// whether the returned error was because http.StatusNotModified was
7914// returned.
7915func (c *ProjectsJobsCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
7916	gensupport.SetOptions(c.urlParams_, opts...)
7917	res, err := c.doRequest("json")
7918	if res != nil && res.StatusCode == http.StatusNotModified {
7919		if res.Body != nil {
7920			res.Body.Close()
7921		}
7922		return nil, &googleapi.Error{
7923			Code:   res.StatusCode,
7924			Header: res.Header,
7925		}
7926	}
7927	if err != nil {
7928		return nil, err
7929	}
7930	defer googleapi.CloseBody(res)
7931	if err := googleapi.CheckResponse(res); err != nil {
7932		return nil, err
7933	}
7934	ret := &Job{
7935		ServerResponse: googleapi.ServerResponse{
7936			Header:         res.Header,
7937			HTTPStatusCode: res.StatusCode,
7938		},
7939	}
7940	target := &ret
7941	if err := gensupport.DecodeResponse(target, res); err != nil {
7942		return nil, err
7943	}
7944	return ret, nil
7945	// {
7946	//   "description": "Creates a Cloud Dataflow job.\n\nTo create a job, we recommend using `projects.locations.jobs.create` with a\n[regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using\n`projects.jobs.create` is not recommended, as your job will always start\nin `us-central1`.",
7947	//   "flatPath": "v1b3/projects/{projectId}/jobs",
7948	//   "httpMethod": "POST",
7949	//   "id": "dataflow.projects.jobs.create",
7950	//   "parameterOrder": [
7951	//     "projectId"
7952	//   ],
7953	//   "parameters": {
7954	//     "location": {
7955	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains this job.",
7956	//       "location": "query",
7957	//       "type": "string"
7958	//     },
7959	//     "projectId": {
7960	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
7961	//       "location": "path",
7962	//       "required": true,
7963	//       "type": "string"
7964	//     },
7965	//     "replaceJobId": {
7966	//       "description": "Deprecated. This field is now in the Job message.",
7967	//       "location": "query",
7968	//       "type": "string"
7969	//     },
7970	//     "view": {
7971	//       "description": "The level of information requested in response.",
7972	//       "enum": [
7973	//         "JOB_VIEW_UNKNOWN",
7974	//         "JOB_VIEW_SUMMARY",
7975	//         "JOB_VIEW_ALL",
7976	//         "JOB_VIEW_DESCRIPTION"
7977	//       ],
7978	//       "location": "query",
7979	//       "type": "string"
7980	//     }
7981	//   },
7982	//   "path": "v1b3/projects/{projectId}/jobs",
7983	//   "request": {
7984	//     "$ref": "Job"
7985	//   },
7986	//   "response": {
7987	//     "$ref": "Job"
7988	//   },
7989	//   "scopes": [
7990	//     "https://www.googleapis.com/auth/cloud-platform",
7991	//     "https://www.googleapis.com/auth/compute",
7992	//     "https://www.googleapis.com/auth/compute.readonly",
7993	//     "https://www.googleapis.com/auth/userinfo.email"
7994	//   ]
7995	// }
7996
7997}
7998
7999// method id "dataflow.projects.jobs.get":
8000
8001type ProjectsJobsGetCall struct {
8002	s            *Service
8003	projectId    string
8004	jobId        string
8005	urlParams_   gensupport.URLParams
8006	ifNoneMatch_ string
8007	ctx_         context.Context
8008	header_      http.Header
8009}
8010
8011// Get: Gets the state of the specified Cloud Dataflow job.
8012//
8013// To get the state of a job, we recommend using
8014// `projects.locations.jobs.get`
8015// with a [regional
8016// endpoint]
8017// (https://cloud.google.com/dataflow/docs/concepts/regional-en
8018// dpoints). Using
8019// `projects.jobs.get` is not recommended, as you can only get the state
8020// of
8021// jobs that are running in `us-central1`.
8022func (r *ProjectsJobsService) Get(projectId string, jobId string) *ProjectsJobsGetCall {
8023	c := &ProjectsJobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8024	c.projectId = projectId
8025	c.jobId = jobId
8026	return c
8027}
8028
8029// Location sets the optional parameter "location": The [regional
8030// endpoint]
8031// (https://cloud.google.com/dataflow/docs/concepts/regional-en
8032// dpoints) that
8033// contains this job.
8034func (c *ProjectsJobsGetCall) Location(location string) *ProjectsJobsGetCall {
8035	c.urlParams_.Set("location", location)
8036	return c
8037}
8038
8039// View sets the optional parameter "view": The level of information
8040// requested in response.
8041//
8042// Possible values:
8043//   "JOB_VIEW_UNKNOWN"
8044//   "JOB_VIEW_SUMMARY"
8045//   "JOB_VIEW_ALL"
8046//   "JOB_VIEW_DESCRIPTION"
8047func (c *ProjectsJobsGetCall) View(view string) *ProjectsJobsGetCall {
8048	c.urlParams_.Set("view", view)
8049	return c
8050}
8051
8052// Fields allows partial responses to be retrieved. See
8053// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8054// for more information.
8055func (c *ProjectsJobsGetCall) Fields(s ...googleapi.Field) *ProjectsJobsGetCall {
8056	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8057	return c
8058}
8059
8060// IfNoneMatch sets the optional parameter which makes the operation
8061// fail if the object's ETag matches the given value. This is useful for
8062// getting updates only after the object has changed since the last
8063// request. Use googleapi.IsNotModified to check whether the response
8064// error from Do is the result of In-None-Match.
8065func (c *ProjectsJobsGetCall) IfNoneMatch(entityTag string) *ProjectsJobsGetCall {
8066	c.ifNoneMatch_ = entityTag
8067	return c
8068}
8069
8070// Context sets the context to be used in this call's Do method. Any
8071// pending HTTP request will be aborted if the provided context is
8072// canceled.
8073func (c *ProjectsJobsGetCall) Context(ctx context.Context) *ProjectsJobsGetCall {
8074	c.ctx_ = ctx
8075	return c
8076}
8077
8078// Header returns an http.Header that can be modified by the caller to
8079// add HTTP headers to the request.
8080func (c *ProjectsJobsGetCall) Header() http.Header {
8081	if c.header_ == nil {
8082		c.header_ = make(http.Header)
8083	}
8084	return c.header_
8085}
8086
8087func (c *ProjectsJobsGetCall) doRequest(alt string) (*http.Response, error) {
8088	reqHeaders := make(http.Header)
8089	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
8090	for k, v := range c.header_ {
8091		reqHeaders[k] = v
8092	}
8093	reqHeaders.Set("User-Agent", c.s.userAgent())
8094	if c.ifNoneMatch_ != "" {
8095		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8096	}
8097	var body io.Reader = nil
8098	c.urlParams_.Set("alt", alt)
8099	c.urlParams_.Set("prettyPrint", "false")
8100	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}")
8101	urls += "?" + c.urlParams_.Encode()
8102	req, err := http.NewRequest("GET", urls, body)
8103	if err != nil {
8104		return nil, err
8105	}
8106	req.Header = reqHeaders
8107	googleapi.Expand(req.URL, map[string]string{
8108		"projectId": c.projectId,
8109		"jobId":     c.jobId,
8110	})
8111	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8112}
8113
8114// Do executes the "dataflow.projects.jobs.get" call.
8115// Exactly one of *Job or error will be non-nil. Any non-2xx status code
8116// is an error. Response headers are in either
8117// *Job.ServerResponse.Header or (if a response was returned at all) in
8118// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
8119// whether the returned error was because http.StatusNotModified was
8120// returned.
8121func (c *ProjectsJobsGetCall) Do(opts ...googleapi.CallOption) (*Job, error) {
8122	gensupport.SetOptions(c.urlParams_, opts...)
8123	res, err := c.doRequest("json")
8124	if res != nil && res.StatusCode == http.StatusNotModified {
8125		if res.Body != nil {
8126			res.Body.Close()
8127		}
8128		return nil, &googleapi.Error{
8129			Code:   res.StatusCode,
8130			Header: res.Header,
8131		}
8132	}
8133	if err != nil {
8134		return nil, err
8135	}
8136	defer googleapi.CloseBody(res)
8137	if err := googleapi.CheckResponse(res); err != nil {
8138		return nil, err
8139	}
8140	ret := &Job{
8141		ServerResponse: googleapi.ServerResponse{
8142			Header:         res.Header,
8143			HTTPStatusCode: res.StatusCode,
8144		},
8145	}
8146	target := &ret
8147	if err := gensupport.DecodeResponse(target, res); err != nil {
8148		return nil, err
8149	}
8150	return ret, nil
8151	// {
8152	//   "description": "Gets the state of the specified Cloud Dataflow job.\n\nTo get the state of a job, we recommend using `projects.locations.jobs.get`\nwith a [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using\n`projects.jobs.get` is not recommended, as you can only get the state of\njobs that are running in `us-central1`.",
8153	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}",
8154	//   "httpMethod": "GET",
8155	//   "id": "dataflow.projects.jobs.get",
8156	//   "parameterOrder": [
8157	//     "projectId",
8158	//     "jobId"
8159	//   ],
8160	//   "parameters": {
8161	//     "jobId": {
8162	//       "description": "The job ID.",
8163	//       "location": "path",
8164	//       "required": true,
8165	//       "type": "string"
8166	//     },
8167	//     "location": {
8168	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains this job.",
8169	//       "location": "query",
8170	//       "type": "string"
8171	//     },
8172	//     "projectId": {
8173	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
8174	//       "location": "path",
8175	//       "required": true,
8176	//       "type": "string"
8177	//     },
8178	//     "view": {
8179	//       "description": "The level of information requested in response.",
8180	//       "enum": [
8181	//         "JOB_VIEW_UNKNOWN",
8182	//         "JOB_VIEW_SUMMARY",
8183	//         "JOB_VIEW_ALL",
8184	//         "JOB_VIEW_DESCRIPTION"
8185	//       ],
8186	//       "location": "query",
8187	//       "type": "string"
8188	//     }
8189	//   },
8190	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}",
8191	//   "response": {
8192	//     "$ref": "Job"
8193	//   },
8194	//   "scopes": [
8195	//     "https://www.googleapis.com/auth/cloud-platform",
8196	//     "https://www.googleapis.com/auth/compute",
8197	//     "https://www.googleapis.com/auth/compute.readonly",
8198	//     "https://www.googleapis.com/auth/userinfo.email"
8199	//   ]
8200	// }
8201
8202}
8203
8204// method id "dataflow.projects.jobs.getMetrics":
8205
8206type ProjectsJobsGetMetricsCall struct {
8207	s            *Service
8208	projectId    string
8209	jobId        string
8210	urlParams_   gensupport.URLParams
8211	ifNoneMatch_ string
8212	ctx_         context.Context
8213	header_      http.Header
8214}
8215
8216// GetMetrics: Request the job status.
8217//
8218// To request the status of a job, we recommend
8219// using
8220// `projects.locations.jobs.getMetrics` with a [regional
8221// endpoint]
8222// (https://cloud.google.com/dataflow/docs/concepts/regional-en
8223// dpoints). Using
8224// `projects.jobs.getMetrics` is not recommended, as you can only
8225// request the
8226// status of jobs that are running in `us-central1`.
8227func (r *ProjectsJobsService) GetMetrics(projectId string, jobId string) *ProjectsJobsGetMetricsCall {
8228	c := &ProjectsJobsGetMetricsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8229	c.projectId = projectId
8230	c.jobId = jobId
8231	return c
8232}
8233
8234// Location sets the optional parameter "location": The [regional
8235// endpoint]
8236// (https://cloud.google.com/dataflow/docs/concepts/regional-en
8237// dpoints) that
8238// contains the job specified by job_id.
8239func (c *ProjectsJobsGetMetricsCall) Location(location string) *ProjectsJobsGetMetricsCall {
8240	c.urlParams_.Set("location", location)
8241	return c
8242}
8243
8244// StartTime sets the optional parameter "startTime": Return only metric
8245// data that has changed since this time.
8246// Default is to return all information about all metrics for the job.
8247func (c *ProjectsJobsGetMetricsCall) StartTime(startTime string) *ProjectsJobsGetMetricsCall {
8248	c.urlParams_.Set("startTime", startTime)
8249	return c
8250}
8251
8252// Fields allows partial responses to be retrieved. See
8253// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8254// for more information.
8255func (c *ProjectsJobsGetMetricsCall) Fields(s ...googleapi.Field) *ProjectsJobsGetMetricsCall {
8256	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8257	return c
8258}
8259
8260// IfNoneMatch sets the optional parameter which makes the operation
8261// fail if the object's ETag matches the given value. This is useful for
8262// getting updates only after the object has changed since the last
8263// request. Use googleapi.IsNotModified to check whether the response
8264// error from Do is the result of In-None-Match.
8265func (c *ProjectsJobsGetMetricsCall) IfNoneMatch(entityTag string) *ProjectsJobsGetMetricsCall {
8266	c.ifNoneMatch_ = entityTag
8267	return c
8268}
8269
8270// Context sets the context to be used in this call's Do method. Any
8271// pending HTTP request will be aborted if the provided context is
8272// canceled.
8273func (c *ProjectsJobsGetMetricsCall) Context(ctx context.Context) *ProjectsJobsGetMetricsCall {
8274	c.ctx_ = ctx
8275	return c
8276}
8277
8278// Header returns an http.Header that can be modified by the caller to
8279// add HTTP headers to the request.
8280func (c *ProjectsJobsGetMetricsCall) Header() http.Header {
8281	if c.header_ == nil {
8282		c.header_ = make(http.Header)
8283	}
8284	return c.header_
8285}
8286
8287func (c *ProjectsJobsGetMetricsCall) doRequest(alt string) (*http.Response, error) {
8288	reqHeaders := make(http.Header)
8289	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
8290	for k, v := range c.header_ {
8291		reqHeaders[k] = v
8292	}
8293	reqHeaders.Set("User-Agent", c.s.userAgent())
8294	if c.ifNoneMatch_ != "" {
8295		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8296	}
8297	var body io.Reader = nil
8298	c.urlParams_.Set("alt", alt)
8299	c.urlParams_.Set("prettyPrint", "false")
8300	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/metrics")
8301	urls += "?" + c.urlParams_.Encode()
8302	req, err := http.NewRequest("GET", urls, body)
8303	if err != nil {
8304		return nil, err
8305	}
8306	req.Header = reqHeaders
8307	googleapi.Expand(req.URL, map[string]string{
8308		"projectId": c.projectId,
8309		"jobId":     c.jobId,
8310	})
8311	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8312}
8313
8314// Do executes the "dataflow.projects.jobs.getMetrics" call.
8315// Exactly one of *JobMetrics or error will be non-nil. Any non-2xx
8316// status code is an error. Response headers are in either
8317// *JobMetrics.ServerResponse.Header or (if a response was returned at
8318// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8319// to check whether the returned error was because
8320// http.StatusNotModified was returned.
8321func (c *ProjectsJobsGetMetricsCall) Do(opts ...googleapi.CallOption) (*JobMetrics, error) {
8322	gensupport.SetOptions(c.urlParams_, opts...)
8323	res, err := c.doRequest("json")
8324	if res != nil && res.StatusCode == http.StatusNotModified {
8325		if res.Body != nil {
8326			res.Body.Close()
8327		}
8328		return nil, &googleapi.Error{
8329			Code:   res.StatusCode,
8330			Header: res.Header,
8331		}
8332	}
8333	if err != nil {
8334		return nil, err
8335	}
8336	defer googleapi.CloseBody(res)
8337	if err := googleapi.CheckResponse(res); err != nil {
8338		return nil, err
8339	}
8340	ret := &JobMetrics{
8341		ServerResponse: googleapi.ServerResponse{
8342			Header:         res.Header,
8343			HTTPStatusCode: res.StatusCode,
8344		},
8345	}
8346	target := &ret
8347	if err := gensupport.DecodeResponse(target, res); err != nil {
8348		return nil, err
8349	}
8350	return ret, nil
8351	// {
8352	//   "description": "Request the job status.\n\nTo request the status of a job, we recommend using\n`projects.locations.jobs.getMetrics` with a [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using\n`projects.jobs.getMetrics` is not recommended, as you can only request the\nstatus of jobs that are running in `us-central1`.",
8353	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/metrics",
8354	//   "httpMethod": "GET",
8355	//   "id": "dataflow.projects.jobs.getMetrics",
8356	//   "parameterOrder": [
8357	//     "projectId",
8358	//     "jobId"
8359	//   ],
8360	//   "parameters": {
8361	//     "jobId": {
8362	//       "description": "The job to get messages for.",
8363	//       "location": "path",
8364	//       "required": true,
8365	//       "type": "string"
8366	//     },
8367	//     "location": {
8368	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains the job specified by job_id.",
8369	//       "location": "query",
8370	//       "type": "string"
8371	//     },
8372	//     "projectId": {
8373	//       "description": "A project id.",
8374	//       "location": "path",
8375	//       "required": true,
8376	//       "type": "string"
8377	//     },
8378	//     "startTime": {
8379	//       "description": "Return only metric data that has changed since this time.\nDefault is to return all information about all metrics for the job.",
8380	//       "format": "google-datetime",
8381	//       "location": "query",
8382	//       "type": "string"
8383	//     }
8384	//   },
8385	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/metrics",
8386	//   "response": {
8387	//     "$ref": "JobMetrics"
8388	//   },
8389	//   "scopes": [
8390	//     "https://www.googleapis.com/auth/cloud-platform",
8391	//     "https://www.googleapis.com/auth/compute",
8392	//     "https://www.googleapis.com/auth/compute.readonly",
8393	//     "https://www.googleapis.com/auth/userinfo.email"
8394	//   ]
8395	// }
8396
8397}
8398
8399// method id "dataflow.projects.jobs.list":
8400
8401type ProjectsJobsListCall struct {
8402	s            *Service
8403	projectId    string
8404	urlParams_   gensupport.URLParams
8405	ifNoneMatch_ string
8406	ctx_         context.Context
8407	header_      http.Header
8408}
8409
8410// List: List the jobs of a project.
8411//
8412// To list the jobs of a project in a region, we recommend
8413// using
8414// `projects.locations.jobs.get` with a [regional
8415// endpoint]
8416// (https://cloud.google.com/dataflow/docs/concepts/regional-en
8417// dpoints). To
8418// list the all jobs across all regions, use `projects.jobs.aggregated`.
8419// Using
8420// `projects.jobs.list` is not recommended, as you can only get the list
8421// of
8422// jobs that are running in `us-central1`.
8423func (r *ProjectsJobsService) List(projectId string) *ProjectsJobsListCall {
8424	c := &ProjectsJobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8425	c.projectId = projectId
8426	return c
8427}
8428
8429// Filter sets the optional parameter "filter": The kind of filter to
8430// use.
8431//
8432// Possible values:
8433//   "UNKNOWN"
8434//   "ALL"
8435//   "TERMINATED"
8436//   "ACTIVE"
8437func (c *ProjectsJobsListCall) Filter(filter string) *ProjectsJobsListCall {
8438	c.urlParams_.Set("filter", filter)
8439	return c
8440}
8441
8442// Location sets the optional parameter "location": The [regional
8443// endpoint]
8444// (https://cloud.google.com/dataflow/docs/concepts/regional-en
8445// dpoints) that
8446// contains this job.
8447func (c *ProjectsJobsListCall) Location(location string) *ProjectsJobsListCall {
8448	c.urlParams_.Set("location", location)
8449	return c
8450}
8451
8452// PageSize sets the optional parameter "pageSize": If there are many
8453// jobs, limit response to at most this many.
8454// The actual number of jobs returned will be the lesser of
8455// max_responses
8456// and an unspecified server-defined limit.
8457func (c *ProjectsJobsListCall) PageSize(pageSize int64) *ProjectsJobsListCall {
8458	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
8459	return c
8460}
8461
8462// PageToken sets the optional parameter "pageToken": Set this to the
8463// 'next_page_token' field of a previous response
8464// to request additional results in a long list.
8465func (c *ProjectsJobsListCall) PageToken(pageToken string) *ProjectsJobsListCall {
8466	c.urlParams_.Set("pageToken", pageToken)
8467	return c
8468}
8469
8470// View sets the optional parameter "view": Level of information
8471// requested in response. Default is `JOB_VIEW_SUMMARY`.
8472//
8473// Possible values:
8474//   "JOB_VIEW_UNKNOWN"
8475//   "JOB_VIEW_SUMMARY"
8476//   "JOB_VIEW_ALL"
8477//   "JOB_VIEW_DESCRIPTION"
8478func (c *ProjectsJobsListCall) View(view string) *ProjectsJobsListCall {
8479	c.urlParams_.Set("view", view)
8480	return c
8481}
8482
8483// Fields allows partial responses to be retrieved. See
8484// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8485// for more information.
8486func (c *ProjectsJobsListCall) Fields(s ...googleapi.Field) *ProjectsJobsListCall {
8487	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8488	return c
8489}
8490
8491// IfNoneMatch sets the optional parameter which makes the operation
8492// fail if the object's ETag matches the given value. This is useful for
8493// getting updates only after the object has changed since the last
8494// request. Use googleapi.IsNotModified to check whether the response
8495// error from Do is the result of In-None-Match.
8496func (c *ProjectsJobsListCall) IfNoneMatch(entityTag string) *ProjectsJobsListCall {
8497	c.ifNoneMatch_ = entityTag
8498	return c
8499}
8500
8501// Context sets the context to be used in this call's Do method. Any
8502// pending HTTP request will be aborted if the provided context is
8503// canceled.
8504func (c *ProjectsJobsListCall) Context(ctx context.Context) *ProjectsJobsListCall {
8505	c.ctx_ = ctx
8506	return c
8507}
8508
8509// Header returns an http.Header that can be modified by the caller to
8510// add HTTP headers to the request.
8511func (c *ProjectsJobsListCall) Header() http.Header {
8512	if c.header_ == nil {
8513		c.header_ = make(http.Header)
8514	}
8515	return c.header_
8516}
8517
8518func (c *ProjectsJobsListCall) doRequest(alt string) (*http.Response, error) {
8519	reqHeaders := make(http.Header)
8520	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
8521	for k, v := range c.header_ {
8522		reqHeaders[k] = v
8523	}
8524	reqHeaders.Set("User-Agent", c.s.userAgent())
8525	if c.ifNoneMatch_ != "" {
8526		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8527	}
8528	var body io.Reader = nil
8529	c.urlParams_.Set("alt", alt)
8530	c.urlParams_.Set("prettyPrint", "false")
8531	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs")
8532	urls += "?" + c.urlParams_.Encode()
8533	req, err := http.NewRequest("GET", urls, body)
8534	if err != nil {
8535		return nil, err
8536	}
8537	req.Header = reqHeaders
8538	googleapi.Expand(req.URL, map[string]string{
8539		"projectId": c.projectId,
8540	})
8541	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8542}
8543
8544// Do executes the "dataflow.projects.jobs.list" call.
8545// Exactly one of *ListJobsResponse or error will be non-nil. Any
8546// non-2xx status code is an error. Response headers are in either
8547// *ListJobsResponse.ServerResponse.Header or (if a response was
8548// returned at all) in error.(*googleapi.Error).Header. Use
8549// googleapi.IsNotModified to check whether the returned error was
8550// because http.StatusNotModified was returned.
8551func (c *ProjectsJobsListCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
8552	gensupport.SetOptions(c.urlParams_, opts...)
8553	res, err := c.doRequest("json")
8554	if res != nil && res.StatusCode == http.StatusNotModified {
8555		if res.Body != nil {
8556			res.Body.Close()
8557		}
8558		return nil, &googleapi.Error{
8559			Code:   res.StatusCode,
8560			Header: res.Header,
8561		}
8562	}
8563	if err != nil {
8564		return nil, err
8565	}
8566	defer googleapi.CloseBody(res)
8567	if err := googleapi.CheckResponse(res); err != nil {
8568		return nil, err
8569	}
8570	ret := &ListJobsResponse{
8571		ServerResponse: googleapi.ServerResponse{
8572			Header:         res.Header,
8573			HTTPStatusCode: res.StatusCode,
8574		},
8575	}
8576	target := &ret
8577	if err := gensupport.DecodeResponse(target, res); err != nil {
8578		return nil, err
8579	}
8580	return ret, nil
8581	// {
8582	//   "description": "List the jobs of a project.\n\nTo list the jobs of a project in a region, we recommend using\n`projects.locations.jobs.get` with a [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To\nlist the all jobs across all regions, use `projects.jobs.aggregated`. Using\n`projects.jobs.list` is not recommended, as you can only get the list of\njobs that are running in `us-central1`.",
8583	//   "flatPath": "v1b3/projects/{projectId}/jobs",
8584	//   "httpMethod": "GET",
8585	//   "id": "dataflow.projects.jobs.list",
8586	//   "parameterOrder": [
8587	//     "projectId"
8588	//   ],
8589	//   "parameters": {
8590	//     "filter": {
8591	//       "description": "The kind of filter to use.",
8592	//       "enum": [
8593	//         "UNKNOWN",
8594	//         "ALL",
8595	//         "TERMINATED",
8596	//         "ACTIVE"
8597	//       ],
8598	//       "location": "query",
8599	//       "type": "string"
8600	//     },
8601	//     "location": {
8602	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains this job.",
8603	//       "location": "query",
8604	//       "type": "string"
8605	//     },
8606	//     "pageSize": {
8607	//       "description": "If there are many jobs, limit response to at most this many.\nThe actual number of jobs returned will be the lesser of max_responses\nand an unspecified server-defined limit.",
8608	//       "format": "int32",
8609	//       "location": "query",
8610	//       "type": "integer"
8611	//     },
8612	//     "pageToken": {
8613	//       "description": "Set this to the 'next_page_token' field of a previous response\nto request additional results in a long list.",
8614	//       "location": "query",
8615	//       "type": "string"
8616	//     },
8617	//     "projectId": {
8618	//       "description": "The project which owns the jobs.",
8619	//       "location": "path",
8620	//       "required": true,
8621	//       "type": "string"
8622	//     },
8623	//     "view": {
8624	//       "description": "Level of information requested in response. Default is `JOB_VIEW_SUMMARY`.",
8625	//       "enum": [
8626	//         "JOB_VIEW_UNKNOWN",
8627	//         "JOB_VIEW_SUMMARY",
8628	//         "JOB_VIEW_ALL",
8629	//         "JOB_VIEW_DESCRIPTION"
8630	//       ],
8631	//       "location": "query",
8632	//       "type": "string"
8633	//     }
8634	//   },
8635	//   "path": "v1b3/projects/{projectId}/jobs",
8636	//   "response": {
8637	//     "$ref": "ListJobsResponse"
8638	//   },
8639	//   "scopes": [
8640	//     "https://www.googleapis.com/auth/cloud-platform",
8641	//     "https://www.googleapis.com/auth/compute",
8642	//     "https://www.googleapis.com/auth/compute.readonly",
8643	//     "https://www.googleapis.com/auth/userinfo.email"
8644	//   ]
8645	// }
8646
8647}
8648
8649// Pages invokes f for each page of results.
8650// A non-nil error returned from f will halt the iteration.
8651// The provided context supersedes any context provided to the Context method.
8652func (c *ProjectsJobsListCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
8653	c.ctx_ = ctx
8654	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
8655	for {
8656		x, err := c.Do()
8657		if err != nil {
8658			return err
8659		}
8660		if err := f(x); err != nil {
8661			return err
8662		}
8663		if x.NextPageToken == "" {
8664			return nil
8665		}
8666		c.PageToken(x.NextPageToken)
8667	}
8668}
8669
8670// method id "dataflow.projects.jobs.update":
8671
8672type ProjectsJobsUpdateCall struct {
8673	s          *Service
8674	projectId  string
8675	jobId      string
8676	job        *Job
8677	urlParams_ gensupport.URLParams
8678	ctx_       context.Context
8679	header_    http.Header
8680}
8681
8682// Update: Updates the state of an existing Cloud Dataflow job.
8683//
8684// To update the state of an existing job, we recommend
8685// using
8686// `projects.locations.jobs.update` with a [regional
8687// endpoint]
8688// (https://cloud.google.com/dataflow/docs/concepts/regional-en
8689// dpoints). Using
8690// `projects.jobs.update` is not recommended, as you can only update the
8691// state
8692// of jobs that are running in `us-central1`.
8693func (r *ProjectsJobsService) Update(projectId string, jobId string, job *Job) *ProjectsJobsUpdateCall {
8694	c := &ProjectsJobsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8695	c.projectId = projectId
8696	c.jobId = jobId
8697	c.job = job
8698	return c
8699}
8700
8701// Location sets the optional parameter "location": The [regional
8702// endpoint]
8703// (https://cloud.google.com/dataflow/docs/concepts/regional-en
8704// dpoints) that
8705// contains this job.
8706func (c *ProjectsJobsUpdateCall) Location(location string) *ProjectsJobsUpdateCall {
8707	c.urlParams_.Set("location", location)
8708	return c
8709}
8710
8711// Fields allows partial responses to be retrieved. See
8712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8713// for more information.
8714func (c *ProjectsJobsUpdateCall) Fields(s ...googleapi.Field) *ProjectsJobsUpdateCall {
8715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8716	return c
8717}
8718
8719// Context sets the context to be used in this call's Do method. Any
8720// pending HTTP request will be aborted if the provided context is
8721// canceled.
8722func (c *ProjectsJobsUpdateCall) Context(ctx context.Context) *ProjectsJobsUpdateCall {
8723	c.ctx_ = ctx
8724	return c
8725}
8726
8727// Header returns an http.Header that can be modified by the caller to
8728// add HTTP headers to the request.
8729func (c *ProjectsJobsUpdateCall) Header() http.Header {
8730	if c.header_ == nil {
8731		c.header_ = make(http.Header)
8732	}
8733	return c.header_
8734}
8735
8736func (c *ProjectsJobsUpdateCall) doRequest(alt string) (*http.Response, error) {
8737	reqHeaders := make(http.Header)
8738	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
8739	for k, v := range c.header_ {
8740		reqHeaders[k] = v
8741	}
8742	reqHeaders.Set("User-Agent", c.s.userAgent())
8743	var body io.Reader = nil
8744	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
8745	if err != nil {
8746		return nil, err
8747	}
8748	reqHeaders.Set("Content-Type", "application/json")
8749	c.urlParams_.Set("alt", alt)
8750	c.urlParams_.Set("prettyPrint", "false")
8751	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}")
8752	urls += "?" + c.urlParams_.Encode()
8753	req, err := http.NewRequest("PUT", urls, body)
8754	if err != nil {
8755		return nil, err
8756	}
8757	req.Header = reqHeaders
8758	googleapi.Expand(req.URL, map[string]string{
8759		"projectId": c.projectId,
8760		"jobId":     c.jobId,
8761	})
8762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8763}
8764
8765// Do executes the "dataflow.projects.jobs.update" call.
8766// Exactly one of *Job or error will be non-nil. Any non-2xx status code
8767// is an error. Response headers are in either
8768// *Job.ServerResponse.Header or (if a response was returned at all) in
8769// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
8770// whether the returned error was because http.StatusNotModified was
8771// returned.
8772func (c *ProjectsJobsUpdateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
8773	gensupport.SetOptions(c.urlParams_, opts...)
8774	res, err := c.doRequest("json")
8775	if res != nil && res.StatusCode == http.StatusNotModified {
8776		if res.Body != nil {
8777			res.Body.Close()
8778		}
8779		return nil, &googleapi.Error{
8780			Code:   res.StatusCode,
8781			Header: res.Header,
8782		}
8783	}
8784	if err != nil {
8785		return nil, err
8786	}
8787	defer googleapi.CloseBody(res)
8788	if err := googleapi.CheckResponse(res); err != nil {
8789		return nil, err
8790	}
8791	ret := &Job{
8792		ServerResponse: googleapi.ServerResponse{
8793			Header:         res.Header,
8794			HTTPStatusCode: res.StatusCode,
8795		},
8796	}
8797	target := &ret
8798	if err := gensupport.DecodeResponse(target, res); err != nil {
8799		return nil, err
8800	}
8801	return ret, nil
8802	// {
8803	//   "description": "Updates the state of an existing Cloud Dataflow job.\n\nTo update the state of an existing job, we recommend using\n`projects.locations.jobs.update` with a [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using\n`projects.jobs.update` is not recommended, as you can only update the state\nof jobs that are running in `us-central1`.",
8804	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}",
8805	//   "httpMethod": "PUT",
8806	//   "id": "dataflow.projects.jobs.update",
8807	//   "parameterOrder": [
8808	//     "projectId",
8809	//     "jobId"
8810	//   ],
8811	//   "parameters": {
8812	//     "jobId": {
8813	//       "description": "The job ID.",
8814	//       "location": "path",
8815	//       "required": true,
8816	//       "type": "string"
8817	//     },
8818	//     "location": {
8819	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains this job.",
8820	//       "location": "query",
8821	//       "type": "string"
8822	//     },
8823	//     "projectId": {
8824	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
8825	//       "location": "path",
8826	//       "required": true,
8827	//       "type": "string"
8828	//     }
8829	//   },
8830	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}",
8831	//   "request": {
8832	//     "$ref": "Job"
8833	//   },
8834	//   "response": {
8835	//     "$ref": "Job"
8836	//   },
8837	//   "scopes": [
8838	//     "https://www.googleapis.com/auth/cloud-platform",
8839	//     "https://www.googleapis.com/auth/compute",
8840	//     "https://www.googleapis.com/auth/compute.readonly",
8841	//     "https://www.googleapis.com/auth/userinfo.email"
8842	//   ]
8843	// }
8844
8845}
8846
8847// method id "dataflow.projects.jobs.debug.getConfig":
8848
8849type ProjectsJobsDebugGetConfigCall struct {
8850	s                     *Service
8851	projectId             string
8852	jobId                 string
8853	getdebugconfigrequest *GetDebugConfigRequest
8854	urlParams_            gensupport.URLParams
8855	ctx_                  context.Context
8856	header_               http.Header
8857}
8858
8859// GetConfig: Get encoded debug configuration for component. Not
8860// cacheable.
8861func (r *ProjectsJobsDebugService) GetConfig(projectId string, jobId string, getdebugconfigrequest *GetDebugConfigRequest) *ProjectsJobsDebugGetConfigCall {
8862	c := &ProjectsJobsDebugGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8863	c.projectId = projectId
8864	c.jobId = jobId
8865	c.getdebugconfigrequest = getdebugconfigrequest
8866	return c
8867}
8868
8869// Fields allows partial responses to be retrieved. See
8870// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8871// for more information.
8872func (c *ProjectsJobsDebugGetConfigCall) Fields(s ...googleapi.Field) *ProjectsJobsDebugGetConfigCall {
8873	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8874	return c
8875}
8876
8877// Context sets the context to be used in this call's Do method. Any
8878// pending HTTP request will be aborted if the provided context is
8879// canceled.
8880func (c *ProjectsJobsDebugGetConfigCall) Context(ctx context.Context) *ProjectsJobsDebugGetConfigCall {
8881	c.ctx_ = ctx
8882	return c
8883}
8884
8885// Header returns an http.Header that can be modified by the caller to
8886// add HTTP headers to the request.
8887func (c *ProjectsJobsDebugGetConfigCall) Header() http.Header {
8888	if c.header_ == nil {
8889		c.header_ = make(http.Header)
8890	}
8891	return c.header_
8892}
8893
8894func (c *ProjectsJobsDebugGetConfigCall) doRequest(alt string) (*http.Response, error) {
8895	reqHeaders := make(http.Header)
8896	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
8897	for k, v := range c.header_ {
8898		reqHeaders[k] = v
8899	}
8900	reqHeaders.Set("User-Agent", c.s.userAgent())
8901	var body io.Reader = nil
8902	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getdebugconfigrequest)
8903	if err != nil {
8904		return nil, err
8905	}
8906	reqHeaders.Set("Content-Type", "application/json")
8907	c.urlParams_.Set("alt", alt)
8908	c.urlParams_.Set("prettyPrint", "false")
8909	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig")
8910	urls += "?" + c.urlParams_.Encode()
8911	req, err := http.NewRequest("POST", urls, body)
8912	if err != nil {
8913		return nil, err
8914	}
8915	req.Header = reqHeaders
8916	googleapi.Expand(req.URL, map[string]string{
8917		"projectId": c.projectId,
8918		"jobId":     c.jobId,
8919	})
8920	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8921}
8922
8923// Do executes the "dataflow.projects.jobs.debug.getConfig" call.
8924// Exactly one of *GetDebugConfigResponse or error will be non-nil. Any
8925// non-2xx status code is an error. Response headers are in either
8926// *GetDebugConfigResponse.ServerResponse.Header or (if a response was
8927// returned at all) in error.(*googleapi.Error).Header. Use
8928// googleapi.IsNotModified to check whether the returned error was
8929// because http.StatusNotModified was returned.
8930func (c *ProjectsJobsDebugGetConfigCall) Do(opts ...googleapi.CallOption) (*GetDebugConfigResponse, error) {
8931	gensupport.SetOptions(c.urlParams_, opts...)
8932	res, err := c.doRequest("json")
8933	if res != nil && res.StatusCode == http.StatusNotModified {
8934		if res.Body != nil {
8935			res.Body.Close()
8936		}
8937		return nil, &googleapi.Error{
8938			Code:   res.StatusCode,
8939			Header: res.Header,
8940		}
8941	}
8942	if err != nil {
8943		return nil, err
8944	}
8945	defer googleapi.CloseBody(res)
8946	if err := googleapi.CheckResponse(res); err != nil {
8947		return nil, err
8948	}
8949	ret := &GetDebugConfigResponse{
8950		ServerResponse: googleapi.ServerResponse{
8951			Header:         res.Header,
8952			HTTPStatusCode: res.StatusCode,
8953		},
8954	}
8955	target := &ret
8956	if err := gensupport.DecodeResponse(target, res); err != nil {
8957		return nil, err
8958	}
8959	return ret, nil
8960	// {
8961	//   "description": "Get encoded debug configuration for component. Not cacheable.",
8962	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig",
8963	//   "httpMethod": "POST",
8964	//   "id": "dataflow.projects.jobs.debug.getConfig",
8965	//   "parameterOrder": [
8966	//     "projectId",
8967	//     "jobId"
8968	//   ],
8969	//   "parameters": {
8970	//     "jobId": {
8971	//       "description": "The job id.",
8972	//       "location": "path",
8973	//       "required": true,
8974	//       "type": "string"
8975	//     },
8976	//     "projectId": {
8977	//       "description": "The project id.",
8978	//       "location": "path",
8979	//       "required": true,
8980	//       "type": "string"
8981	//     }
8982	//   },
8983	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/debug/getConfig",
8984	//   "request": {
8985	//     "$ref": "GetDebugConfigRequest"
8986	//   },
8987	//   "response": {
8988	//     "$ref": "GetDebugConfigResponse"
8989	//   },
8990	//   "scopes": [
8991	//     "https://www.googleapis.com/auth/cloud-platform",
8992	//     "https://www.googleapis.com/auth/compute",
8993	//     "https://www.googleapis.com/auth/compute.readonly",
8994	//     "https://www.googleapis.com/auth/userinfo.email"
8995	//   ]
8996	// }
8997
8998}
8999
9000// method id "dataflow.projects.jobs.debug.sendCapture":
9001
9002type ProjectsJobsDebugSendCaptureCall struct {
9003	s                       *Service
9004	projectId               string
9005	jobId                   string
9006	senddebugcapturerequest *SendDebugCaptureRequest
9007	urlParams_              gensupport.URLParams
9008	ctx_                    context.Context
9009	header_                 http.Header
9010}
9011
9012// SendCapture: Send encoded debug capture data for component.
9013func (r *ProjectsJobsDebugService) SendCapture(projectId string, jobId string, senddebugcapturerequest *SendDebugCaptureRequest) *ProjectsJobsDebugSendCaptureCall {
9014	c := &ProjectsJobsDebugSendCaptureCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9015	c.projectId = projectId
9016	c.jobId = jobId
9017	c.senddebugcapturerequest = senddebugcapturerequest
9018	return c
9019}
9020
9021// Fields allows partial responses to be retrieved. See
9022// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9023// for more information.
9024func (c *ProjectsJobsDebugSendCaptureCall) Fields(s ...googleapi.Field) *ProjectsJobsDebugSendCaptureCall {
9025	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9026	return c
9027}
9028
9029// Context sets the context to be used in this call's Do method. Any
9030// pending HTTP request will be aborted if the provided context is
9031// canceled.
9032func (c *ProjectsJobsDebugSendCaptureCall) Context(ctx context.Context) *ProjectsJobsDebugSendCaptureCall {
9033	c.ctx_ = ctx
9034	return c
9035}
9036
9037// Header returns an http.Header that can be modified by the caller to
9038// add HTTP headers to the request.
9039func (c *ProjectsJobsDebugSendCaptureCall) Header() http.Header {
9040	if c.header_ == nil {
9041		c.header_ = make(http.Header)
9042	}
9043	return c.header_
9044}
9045
9046func (c *ProjectsJobsDebugSendCaptureCall) doRequest(alt string) (*http.Response, error) {
9047	reqHeaders := make(http.Header)
9048	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
9049	for k, v := range c.header_ {
9050		reqHeaders[k] = v
9051	}
9052	reqHeaders.Set("User-Agent", c.s.userAgent())
9053	var body io.Reader = nil
9054	body, err := googleapi.WithoutDataWrapper.JSONReader(c.senddebugcapturerequest)
9055	if err != nil {
9056		return nil, err
9057	}
9058	reqHeaders.Set("Content-Type", "application/json")
9059	c.urlParams_.Set("alt", alt)
9060	c.urlParams_.Set("prettyPrint", "false")
9061	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture")
9062	urls += "?" + c.urlParams_.Encode()
9063	req, err := http.NewRequest("POST", urls, body)
9064	if err != nil {
9065		return nil, err
9066	}
9067	req.Header = reqHeaders
9068	googleapi.Expand(req.URL, map[string]string{
9069		"projectId": c.projectId,
9070		"jobId":     c.jobId,
9071	})
9072	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9073}
9074
9075// Do executes the "dataflow.projects.jobs.debug.sendCapture" call.
9076// Exactly one of *SendDebugCaptureResponse or error will be non-nil.
9077// Any non-2xx status code is an error. Response headers are in either
9078// *SendDebugCaptureResponse.ServerResponse.Header or (if a response was
9079// returned at all) in error.(*googleapi.Error).Header. Use
9080// googleapi.IsNotModified to check whether the returned error was
9081// because http.StatusNotModified was returned.
9082func (c *ProjectsJobsDebugSendCaptureCall) Do(opts ...googleapi.CallOption) (*SendDebugCaptureResponse, error) {
9083	gensupport.SetOptions(c.urlParams_, opts...)
9084	res, err := c.doRequest("json")
9085	if res != nil && res.StatusCode == http.StatusNotModified {
9086		if res.Body != nil {
9087			res.Body.Close()
9088		}
9089		return nil, &googleapi.Error{
9090			Code:   res.StatusCode,
9091			Header: res.Header,
9092		}
9093	}
9094	if err != nil {
9095		return nil, err
9096	}
9097	defer googleapi.CloseBody(res)
9098	if err := googleapi.CheckResponse(res); err != nil {
9099		return nil, err
9100	}
9101	ret := &SendDebugCaptureResponse{
9102		ServerResponse: googleapi.ServerResponse{
9103			Header:         res.Header,
9104			HTTPStatusCode: res.StatusCode,
9105		},
9106	}
9107	target := &ret
9108	if err := gensupport.DecodeResponse(target, res); err != nil {
9109		return nil, err
9110	}
9111	return ret, nil
9112	// {
9113	//   "description": "Send encoded debug capture data for component.",
9114	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture",
9115	//   "httpMethod": "POST",
9116	//   "id": "dataflow.projects.jobs.debug.sendCapture",
9117	//   "parameterOrder": [
9118	//     "projectId",
9119	//     "jobId"
9120	//   ],
9121	//   "parameters": {
9122	//     "jobId": {
9123	//       "description": "The job id.",
9124	//       "location": "path",
9125	//       "required": true,
9126	//       "type": "string"
9127	//     },
9128	//     "projectId": {
9129	//       "description": "The project id.",
9130	//       "location": "path",
9131	//       "required": true,
9132	//       "type": "string"
9133	//     }
9134	//   },
9135	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/debug/sendCapture",
9136	//   "request": {
9137	//     "$ref": "SendDebugCaptureRequest"
9138	//   },
9139	//   "response": {
9140	//     "$ref": "SendDebugCaptureResponse"
9141	//   },
9142	//   "scopes": [
9143	//     "https://www.googleapis.com/auth/cloud-platform",
9144	//     "https://www.googleapis.com/auth/compute",
9145	//     "https://www.googleapis.com/auth/compute.readonly",
9146	//     "https://www.googleapis.com/auth/userinfo.email"
9147	//   ]
9148	// }
9149
9150}
9151
9152// method id "dataflow.projects.jobs.messages.list":
9153
9154type ProjectsJobsMessagesListCall struct {
9155	s            *Service
9156	projectId    string
9157	jobId        string
9158	urlParams_   gensupport.URLParams
9159	ifNoneMatch_ string
9160	ctx_         context.Context
9161	header_      http.Header
9162}
9163
9164// List: Request the job status.
9165//
9166// To request the status of a job, we recommend
9167// using
9168// `projects.locations.jobs.messages.list` with a [regional
9169// endpoint]
9170// (https://cloud.google.com/dataflow/docs/concepts/regional-en
9171// dpoints). Using
9172// `projects.jobs.messages.list` is not recommended, as you can only
9173// request
9174// the status of jobs that are running in `us-central1`.
9175func (r *ProjectsJobsMessagesService) List(projectId string, jobId string) *ProjectsJobsMessagesListCall {
9176	c := &ProjectsJobsMessagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9177	c.projectId = projectId
9178	c.jobId = jobId
9179	return c
9180}
9181
9182// EndTime sets the optional parameter "endTime": Return only messages
9183// with timestamps < end_time. The default is now
9184// (i.e. return up to the latest messages available).
9185func (c *ProjectsJobsMessagesListCall) EndTime(endTime string) *ProjectsJobsMessagesListCall {
9186	c.urlParams_.Set("endTime", endTime)
9187	return c
9188}
9189
9190// Location sets the optional parameter "location": The [regional
9191// endpoint]
9192// (https://cloud.google.com/dataflow/docs/concepts/regional-en
9193// dpoints) that
9194// contains the job specified by job_id.
9195func (c *ProjectsJobsMessagesListCall) Location(location string) *ProjectsJobsMessagesListCall {
9196	c.urlParams_.Set("location", location)
9197	return c
9198}
9199
9200// MinimumImportance sets the optional parameter "minimumImportance":
9201// Filter to only get messages with importance >= level
9202//
9203// Possible values:
9204//   "JOB_MESSAGE_IMPORTANCE_UNKNOWN"
9205//   "JOB_MESSAGE_DEBUG"
9206//   "JOB_MESSAGE_DETAILED"
9207//   "JOB_MESSAGE_BASIC"
9208//   "JOB_MESSAGE_WARNING"
9209//   "JOB_MESSAGE_ERROR"
9210func (c *ProjectsJobsMessagesListCall) MinimumImportance(minimumImportance string) *ProjectsJobsMessagesListCall {
9211	c.urlParams_.Set("minimumImportance", minimumImportance)
9212	return c
9213}
9214
9215// PageSize sets the optional parameter "pageSize": If specified,
9216// determines the maximum number of messages to
9217// return.  If unspecified, the service may choose an
9218// appropriate
9219// default, or may return an arbitrarily large number of results.
9220func (c *ProjectsJobsMessagesListCall) PageSize(pageSize int64) *ProjectsJobsMessagesListCall {
9221	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
9222	return c
9223}
9224
9225// PageToken sets the optional parameter "pageToken": If supplied, this
9226// should be the value of next_page_token returned
9227// by an earlier call. This will cause the next page of results to
9228// be returned.
9229func (c *ProjectsJobsMessagesListCall) PageToken(pageToken string) *ProjectsJobsMessagesListCall {
9230	c.urlParams_.Set("pageToken", pageToken)
9231	return c
9232}
9233
9234// StartTime sets the optional parameter "startTime": If specified,
9235// return only messages with timestamps >= start_time.
9236// The default is the job creation time (i.e. beginning of messages).
9237func (c *ProjectsJobsMessagesListCall) StartTime(startTime string) *ProjectsJobsMessagesListCall {
9238	c.urlParams_.Set("startTime", startTime)
9239	return c
9240}
9241
9242// Fields allows partial responses to be retrieved. See
9243// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9244// for more information.
9245func (c *ProjectsJobsMessagesListCall) Fields(s ...googleapi.Field) *ProjectsJobsMessagesListCall {
9246	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9247	return c
9248}
9249
9250// IfNoneMatch sets the optional parameter which makes the operation
9251// fail if the object's ETag matches the given value. This is useful for
9252// getting updates only after the object has changed since the last
9253// request. Use googleapi.IsNotModified to check whether the response
9254// error from Do is the result of In-None-Match.
9255func (c *ProjectsJobsMessagesListCall) IfNoneMatch(entityTag string) *ProjectsJobsMessagesListCall {
9256	c.ifNoneMatch_ = entityTag
9257	return c
9258}
9259
9260// Context sets the context to be used in this call's Do method. Any
9261// pending HTTP request will be aborted if the provided context is
9262// canceled.
9263func (c *ProjectsJobsMessagesListCall) Context(ctx context.Context) *ProjectsJobsMessagesListCall {
9264	c.ctx_ = ctx
9265	return c
9266}
9267
9268// Header returns an http.Header that can be modified by the caller to
9269// add HTTP headers to the request.
9270func (c *ProjectsJobsMessagesListCall) Header() http.Header {
9271	if c.header_ == nil {
9272		c.header_ = make(http.Header)
9273	}
9274	return c.header_
9275}
9276
9277func (c *ProjectsJobsMessagesListCall) doRequest(alt string) (*http.Response, error) {
9278	reqHeaders := make(http.Header)
9279	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
9280	for k, v := range c.header_ {
9281		reqHeaders[k] = v
9282	}
9283	reqHeaders.Set("User-Agent", c.s.userAgent())
9284	if c.ifNoneMatch_ != "" {
9285		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9286	}
9287	var body io.Reader = nil
9288	c.urlParams_.Set("alt", alt)
9289	c.urlParams_.Set("prettyPrint", "false")
9290	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/messages")
9291	urls += "?" + c.urlParams_.Encode()
9292	req, err := http.NewRequest("GET", urls, body)
9293	if err != nil {
9294		return nil, err
9295	}
9296	req.Header = reqHeaders
9297	googleapi.Expand(req.URL, map[string]string{
9298		"projectId": c.projectId,
9299		"jobId":     c.jobId,
9300	})
9301	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9302}
9303
9304// Do executes the "dataflow.projects.jobs.messages.list" call.
9305// Exactly one of *ListJobMessagesResponse or error will be non-nil. Any
9306// non-2xx status code is an error. Response headers are in either
9307// *ListJobMessagesResponse.ServerResponse.Header or (if a response was
9308// returned at all) in error.(*googleapi.Error).Header. Use
9309// googleapi.IsNotModified to check whether the returned error was
9310// because http.StatusNotModified was returned.
9311func (c *ProjectsJobsMessagesListCall) Do(opts ...googleapi.CallOption) (*ListJobMessagesResponse, error) {
9312	gensupport.SetOptions(c.urlParams_, opts...)
9313	res, err := c.doRequest("json")
9314	if res != nil && res.StatusCode == http.StatusNotModified {
9315		if res.Body != nil {
9316			res.Body.Close()
9317		}
9318		return nil, &googleapi.Error{
9319			Code:   res.StatusCode,
9320			Header: res.Header,
9321		}
9322	}
9323	if err != nil {
9324		return nil, err
9325	}
9326	defer googleapi.CloseBody(res)
9327	if err := googleapi.CheckResponse(res); err != nil {
9328		return nil, err
9329	}
9330	ret := &ListJobMessagesResponse{
9331		ServerResponse: googleapi.ServerResponse{
9332			Header:         res.Header,
9333			HTTPStatusCode: res.StatusCode,
9334		},
9335	}
9336	target := &ret
9337	if err := gensupport.DecodeResponse(target, res); err != nil {
9338		return nil, err
9339	}
9340	return ret, nil
9341	// {
9342	//   "description": "Request the job status.\n\nTo request the status of a job, we recommend using\n`projects.locations.jobs.messages.list` with a [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using\n`projects.jobs.messages.list` is not recommended, as you can only request\nthe status of jobs that are running in `us-central1`.",
9343	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/messages",
9344	//   "httpMethod": "GET",
9345	//   "id": "dataflow.projects.jobs.messages.list",
9346	//   "parameterOrder": [
9347	//     "projectId",
9348	//     "jobId"
9349	//   ],
9350	//   "parameters": {
9351	//     "endTime": {
9352	//       "description": "Return only messages with timestamps \u003c end_time. The default is now\n(i.e. return up to the latest messages available).",
9353	//       "format": "google-datetime",
9354	//       "location": "query",
9355	//       "type": "string"
9356	//     },
9357	//     "jobId": {
9358	//       "description": "The job to get messages about.",
9359	//       "location": "path",
9360	//       "required": true,
9361	//       "type": "string"
9362	//     },
9363	//     "location": {
9364	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains the job specified by job_id.",
9365	//       "location": "query",
9366	//       "type": "string"
9367	//     },
9368	//     "minimumImportance": {
9369	//       "description": "Filter to only get messages with importance \u003e= level",
9370	//       "enum": [
9371	//         "JOB_MESSAGE_IMPORTANCE_UNKNOWN",
9372	//         "JOB_MESSAGE_DEBUG",
9373	//         "JOB_MESSAGE_DETAILED",
9374	//         "JOB_MESSAGE_BASIC",
9375	//         "JOB_MESSAGE_WARNING",
9376	//         "JOB_MESSAGE_ERROR"
9377	//       ],
9378	//       "location": "query",
9379	//       "type": "string"
9380	//     },
9381	//     "pageSize": {
9382	//       "description": "If specified, determines the maximum number of messages to\nreturn.  If unspecified, the service may choose an appropriate\ndefault, or may return an arbitrarily large number of results.",
9383	//       "format": "int32",
9384	//       "location": "query",
9385	//       "type": "integer"
9386	//     },
9387	//     "pageToken": {
9388	//       "description": "If supplied, this should be the value of next_page_token returned\nby an earlier call. This will cause the next page of results to\nbe returned.",
9389	//       "location": "query",
9390	//       "type": "string"
9391	//     },
9392	//     "projectId": {
9393	//       "description": "A project id.",
9394	//       "location": "path",
9395	//       "required": true,
9396	//       "type": "string"
9397	//     },
9398	//     "startTime": {
9399	//       "description": "If specified, return only messages with timestamps \u003e= start_time.\nThe default is the job creation time (i.e. beginning of messages).",
9400	//       "format": "google-datetime",
9401	//       "location": "query",
9402	//       "type": "string"
9403	//     }
9404	//   },
9405	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/messages",
9406	//   "response": {
9407	//     "$ref": "ListJobMessagesResponse"
9408	//   },
9409	//   "scopes": [
9410	//     "https://www.googleapis.com/auth/cloud-platform",
9411	//     "https://www.googleapis.com/auth/compute",
9412	//     "https://www.googleapis.com/auth/compute.readonly",
9413	//     "https://www.googleapis.com/auth/userinfo.email"
9414	//   ]
9415	// }
9416
9417}
9418
9419// Pages invokes f for each page of results.
9420// A non-nil error returned from f will halt the iteration.
9421// The provided context supersedes any context provided to the Context method.
9422func (c *ProjectsJobsMessagesListCall) Pages(ctx context.Context, f func(*ListJobMessagesResponse) error) error {
9423	c.ctx_ = ctx
9424	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9425	for {
9426		x, err := c.Do()
9427		if err != nil {
9428			return err
9429		}
9430		if err := f(x); err != nil {
9431			return err
9432		}
9433		if x.NextPageToken == "" {
9434			return nil
9435		}
9436		c.PageToken(x.NextPageToken)
9437	}
9438}
9439
9440// method id "dataflow.projects.jobs.workItems.lease":
9441
9442type ProjectsJobsWorkItemsLeaseCall struct {
9443	s                    *Service
9444	projectId            string
9445	jobId                string
9446	leaseworkitemrequest *LeaseWorkItemRequest
9447	urlParams_           gensupport.URLParams
9448	ctx_                 context.Context
9449	header_              http.Header
9450}
9451
9452// Lease: Leases a dataflow WorkItem to run.
9453func (r *ProjectsJobsWorkItemsService) Lease(projectId string, jobId string, leaseworkitemrequest *LeaseWorkItemRequest) *ProjectsJobsWorkItemsLeaseCall {
9454	c := &ProjectsJobsWorkItemsLeaseCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9455	c.projectId = projectId
9456	c.jobId = jobId
9457	c.leaseworkitemrequest = leaseworkitemrequest
9458	return c
9459}
9460
9461// Fields allows partial responses to be retrieved. See
9462// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9463// for more information.
9464func (c *ProjectsJobsWorkItemsLeaseCall) Fields(s ...googleapi.Field) *ProjectsJobsWorkItemsLeaseCall {
9465	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9466	return c
9467}
9468
9469// Context sets the context to be used in this call's Do method. Any
9470// pending HTTP request will be aborted if the provided context is
9471// canceled.
9472func (c *ProjectsJobsWorkItemsLeaseCall) Context(ctx context.Context) *ProjectsJobsWorkItemsLeaseCall {
9473	c.ctx_ = ctx
9474	return c
9475}
9476
9477// Header returns an http.Header that can be modified by the caller to
9478// add HTTP headers to the request.
9479func (c *ProjectsJobsWorkItemsLeaseCall) Header() http.Header {
9480	if c.header_ == nil {
9481		c.header_ = make(http.Header)
9482	}
9483	return c.header_
9484}
9485
9486func (c *ProjectsJobsWorkItemsLeaseCall) doRequest(alt string) (*http.Response, error) {
9487	reqHeaders := make(http.Header)
9488	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
9489	for k, v := range c.header_ {
9490		reqHeaders[k] = v
9491	}
9492	reqHeaders.Set("User-Agent", c.s.userAgent())
9493	var body io.Reader = nil
9494	body, err := googleapi.WithoutDataWrapper.JSONReader(c.leaseworkitemrequest)
9495	if err != nil {
9496		return nil, err
9497	}
9498	reqHeaders.Set("Content-Type", "application/json")
9499	c.urlParams_.Set("alt", alt)
9500	c.urlParams_.Set("prettyPrint", "false")
9501	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease")
9502	urls += "?" + c.urlParams_.Encode()
9503	req, err := http.NewRequest("POST", urls, body)
9504	if err != nil {
9505		return nil, err
9506	}
9507	req.Header = reqHeaders
9508	googleapi.Expand(req.URL, map[string]string{
9509		"projectId": c.projectId,
9510		"jobId":     c.jobId,
9511	})
9512	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9513}
9514
9515// Do executes the "dataflow.projects.jobs.workItems.lease" call.
9516// Exactly one of *LeaseWorkItemResponse or error will be non-nil. Any
9517// non-2xx status code is an error. Response headers are in either
9518// *LeaseWorkItemResponse.ServerResponse.Header or (if a response was
9519// returned at all) in error.(*googleapi.Error).Header. Use
9520// googleapi.IsNotModified to check whether the returned error was
9521// because http.StatusNotModified was returned.
9522func (c *ProjectsJobsWorkItemsLeaseCall) Do(opts ...googleapi.CallOption) (*LeaseWorkItemResponse, error) {
9523	gensupport.SetOptions(c.urlParams_, opts...)
9524	res, err := c.doRequest("json")
9525	if res != nil && res.StatusCode == http.StatusNotModified {
9526		if res.Body != nil {
9527			res.Body.Close()
9528		}
9529		return nil, &googleapi.Error{
9530			Code:   res.StatusCode,
9531			Header: res.Header,
9532		}
9533	}
9534	if err != nil {
9535		return nil, err
9536	}
9537	defer googleapi.CloseBody(res)
9538	if err := googleapi.CheckResponse(res); err != nil {
9539		return nil, err
9540	}
9541	ret := &LeaseWorkItemResponse{
9542		ServerResponse: googleapi.ServerResponse{
9543			Header:         res.Header,
9544			HTTPStatusCode: res.StatusCode,
9545		},
9546	}
9547	target := &ret
9548	if err := gensupport.DecodeResponse(target, res); err != nil {
9549		return nil, err
9550	}
9551	return ret, nil
9552	// {
9553	//   "description": "Leases a dataflow WorkItem to run.",
9554	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease",
9555	//   "httpMethod": "POST",
9556	//   "id": "dataflow.projects.jobs.workItems.lease",
9557	//   "parameterOrder": [
9558	//     "projectId",
9559	//     "jobId"
9560	//   ],
9561	//   "parameters": {
9562	//     "jobId": {
9563	//       "description": "Identifies the workflow job this worker belongs to.",
9564	//       "location": "path",
9565	//       "required": true,
9566	//       "type": "string"
9567	//     },
9568	//     "projectId": {
9569	//       "description": "Identifies the project this worker belongs to.",
9570	//       "location": "path",
9571	//       "required": true,
9572	//       "type": "string"
9573	//     }
9574	//   },
9575	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:lease",
9576	//   "request": {
9577	//     "$ref": "LeaseWorkItemRequest"
9578	//   },
9579	//   "response": {
9580	//     "$ref": "LeaseWorkItemResponse"
9581	//   },
9582	//   "scopes": [
9583	//     "https://www.googleapis.com/auth/cloud-platform",
9584	//     "https://www.googleapis.com/auth/compute",
9585	//     "https://www.googleapis.com/auth/compute.readonly",
9586	//     "https://www.googleapis.com/auth/userinfo.email"
9587	//   ]
9588	// }
9589
9590}
9591
9592// method id "dataflow.projects.jobs.workItems.reportStatus":
9593
9594type ProjectsJobsWorkItemsReportStatusCall struct {
9595	s                           *Service
9596	projectId                   string
9597	jobId                       string
9598	reportworkitemstatusrequest *ReportWorkItemStatusRequest
9599	urlParams_                  gensupport.URLParams
9600	ctx_                        context.Context
9601	header_                     http.Header
9602}
9603
9604// ReportStatus: Reports the status of dataflow WorkItems leased by a
9605// worker.
9606func (r *ProjectsJobsWorkItemsService) ReportStatus(projectId string, jobId string, reportworkitemstatusrequest *ReportWorkItemStatusRequest) *ProjectsJobsWorkItemsReportStatusCall {
9607	c := &ProjectsJobsWorkItemsReportStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9608	c.projectId = projectId
9609	c.jobId = jobId
9610	c.reportworkitemstatusrequest = reportworkitemstatusrequest
9611	return c
9612}
9613
9614// Fields allows partial responses to be retrieved. See
9615// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9616// for more information.
9617func (c *ProjectsJobsWorkItemsReportStatusCall) Fields(s ...googleapi.Field) *ProjectsJobsWorkItemsReportStatusCall {
9618	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9619	return c
9620}
9621
9622// Context sets the context to be used in this call's Do method. Any
9623// pending HTTP request will be aborted if the provided context is
9624// canceled.
9625func (c *ProjectsJobsWorkItemsReportStatusCall) Context(ctx context.Context) *ProjectsJobsWorkItemsReportStatusCall {
9626	c.ctx_ = ctx
9627	return c
9628}
9629
9630// Header returns an http.Header that can be modified by the caller to
9631// add HTTP headers to the request.
9632func (c *ProjectsJobsWorkItemsReportStatusCall) Header() http.Header {
9633	if c.header_ == nil {
9634		c.header_ = make(http.Header)
9635	}
9636	return c.header_
9637}
9638
9639func (c *ProjectsJobsWorkItemsReportStatusCall) doRequest(alt string) (*http.Response, error) {
9640	reqHeaders := make(http.Header)
9641	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
9642	for k, v := range c.header_ {
9643		reqHeaders[k] = v
9644	}
9645	reqHeaders.Set("User-Agent", c.s.userAgent())
9646	var body io.Reader = nil
9647	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reportworkitemstatusrequest)
9648	if err != nil {
9649		return nil, err
9650	}
9651	reqHeaders.Set("Content-Type", "application/json")
9652	c.urlParams_.Set("alt", alt)
9653	c.urlParams_.Set("prettyPrint", "false")
9654	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus")
9655	urls += "?" + c.urlParams_.Encode()
9656	req, err := http.NewRequest("POST", urls, body)
9657	if err != nil {
9658		return nil, err
9659	}
9660	req.Header = reqHeaders
9661	googleapi.Expand(req.URL, map[string]string{
9662		"projectId": c.projectId,
9663		"jobId":     c.jobId,
9664	})
9665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9666}
9667
9668// Do executes the "dataflow.projects.jobs.workItems.reportStatus" call.
9669// Exactly one of *ReportWorkItemStatusResponse or error will be
9670// non-nil. Any non-2xx status code is an error. Response headers are in
9671// either *ReportWorkItemStatusResponse.ServerResponse.Header or (if a
9672// response was returned at all) in error.(*googleapi.Error).Header. Use
9673// googleapi.IsNotModified to check whether the returned error was
9674// because http.StatusNotModified was returned.
9675func (c *ProjectsJobsWorkItemsReportStatusCall) Do(opts ...googleapi.CallOption) (*ReportWorkItemStatusResponse, error) {
9676	gensupport.SetOptions(c.urlParams_, opts...)
9677	res, err := c.doRequest("json")
9678	if res != nil && res.StatusCode == http.StatusNotModified {
9679		if res.Body != nil {
9680			res.Body.Close()
9681		}
9682		return nil, &googleapi.Error{
9683			Code:   res.StatusCode,
9684			Header: res.Header,
9685		}
9686	}
9687	if err != nil {
9688		return nil, err
9689	}
9690	defer googleapi.CloseBody(res)
9691	if err := googleapi.CheckResponse(res); err != nil {
9692		return nil, err
9693	}
9694	ret := &ReportWorkItemStatusResponse{
9695		ServerResponse: googleapi.ServerResponse{
9696			Header:         res.Header,
9697			HTTPStatusCode: res.StatusCode,
9698		},
9699	}
9700	target := &ret
9701	if err := gensupport.DecodeResponse(target, res); err != nil {
9702		return nil, err
9703	}
9704	return ret, nil
9705	// {
9706	//   "description": "Reports the status of dataflow WorkItems leased by a worker.",
9707	//   "flatPath": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus",
9708	//   "httpMethod": "POST",
9709	//   "id": "dataflow.projects.jobs.workItems.reportStatus",
9710	//   "parameterOrder": [
9711	//     "projectId",
9712	//     "jobId"
9713	//   ],
9714	//   "parameters": {
9715	//     "jobId": {
9716	//       "description": "The job which the WorkItem is part of.",
9717	//       "location": "path",
9718	//       "required": true,
9719	//       "type": "string"
9720	//     },
9721	//     "projectId": {
9722	//       "description": "The project which owns the WorkItem's job.",
9723	//       "location": "path",
9724	//       "required": true,
9725	//       "type": "string"
9726	//     }
9727	//   },
9728	//   "path": "v1b3/projects/{projectId}/jobs/{jobId}/workItems:reportStatus",
9729	//   "request": {
9730	//     "$ref": "ReportWorkItemStatusRequest"
9731	//   },
9732	//   "response": {
9733	//     "$ref": "ReportWorkItemStatusResponse"
9734	//   },
9735	//   "scopes": [
9736	//     "https://www.googleapis.com/auth/cloud-platform",
9737	//     "https://www.googleapis.com/auth/compute",
9738	//     "https://www.googleapis.com/auth/compute.readonly",
9739	//     "https://www.googleapis.com/auth/userinfo.email"
9740	//   ]
9741	// }
9742
9743}
9744
9745// method id "dataflow.projects.locations.workerMessages":
9746
9747type ProjectsLocationsWorkerMessagesCall struct {
9748	s                         *Service
9749	projectId                 string
9750	location                  string
9751	sendworkermessagesrequest *SendWorkerMessagesRequest
9752	urlParams_                gensupport.URLParams
9753	ctx_                      context.Context
9754	header_                   http.Header
9755}
9756
9757// WorkerMessages: Send a worker_message to the service.
9758func (r *ProjectsLocationsService) WorkerMessages(projectId string, location string, sendworkermessagesrequest *SendWorkerMessagesRequest) *ProjectsLocationsWorkerMessagesCall {
9759	c := &ProjectsLocationsWorkerMessagesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9760	c.projectId = projectId
9761	c.location = location
9762	c.sendworkermessagesrequest = sendworkermessagesrequest
9763	return c
9764}
9765
9766// Fields allows partial responses to be retrieved. See
9767// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9768// for more information.
9769func (c *ProjectsLocationsWorkerMessagesCall) Fields(s ...googleapi.Field) *ProjectsLocationsWorkerMessagesCall {
9770	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9771	return c
9772}
9773
9774// Context sets the context to be used in this call's Do method. Any
9775// pending HTTP request will be aborted if the provided context is
9776// canceled.
9777func (c *ProjectsLocationsWorkerMessagesCall) Context(ctx context.Context) *ProjectsLocationsWorkerMessagesCall {
9778	c.ctx_ = ctx
9779	return c
9780}
9781
9782// Header returns an http.Header that can be modified by the caller to
9783// add HTTP headers to the request.
9784func (c *ProjectsLocationsWorkerMessagesCall) Header() http.Header {
9785	if c.header_ == nil {
9786		c.header_ = make(http.Header)
9787	}
9788	return c.header_
9789}
9790
9791func (c *ProjectsLocationsWorkerMessagesCall) doRequest(alt string) (*http.Response, error) {
9792	reqHeaders := make(http.Header)
9793	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
9794	for k, v := range c.header_ {
9795		reqHeaders[k] = v
9796	}
9797	reqHeaders.Set("User-Agent", c.s.userAgent())
9798	var body io.Reader = nil
9799	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sendworkermessagesrequest)
9800	if err != nil {
9801		return nil, err
9802	}
9803	reqHeaders.Set("Content-Type", "application/json")
9804	c.urlParams_.Set("alt", alt)
9805	c.urlParams_.Set("prettyPrint", "false")
9806	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/WorkerMessages")
9807	urls += "?" + c.urlParams_.Encode()
9808	req, err := http.NewRequest("POST", urls, body)
9809	if err != nil {
9810		return nil, err
9811	}
9812	req.Header = reqHeaders
9813	googleapi.Expand(req.URL, map[string]string{
9814		"projectId": c.projectId,
9815		"location":  c.location,
9816	})
9817	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9818}
9819
9820// Do executes the "dataflow.projects.locations.workerMessages" call.
9821// Exactly one of *SendWorkerMessagesResponse or error will be non-nil.
9822// Any non-2xx status code is an error. Response headers are in either
9823// *SendWorkerMessagesResponse.ServerResponse.Header or (if a response
9824// was returned at all) in error.(*googleapi.Error).Header. Use
9825// googleapi.IsNotModified to check whether the returned error was
9826// because http.StatusNotModified was returned.
9827func (c *ProjectsLocationsWorkerMessagesCall) Do(opts ...googleapi.CallOption) (*SendWorkerMessagesResponse, error) {
9828	gensupport.SetOptions(c.urlParams_, opts...)
9829	res, err := c.doRequest("json")
9830	if res != nil && res.StatusCode == http.StatusNotModified {
9831		if res.Body != nil {
9832			res.Body.Close()
9833		}
9834		return nil, &googleapi.Error{
9835			Code:   res.StatusCode,
9836			Header: res.Header,
9837		}
9838	}
9839	if err != nil {
9840		return nil, err
9841	}
9842	defer googleapi.CloseBody(res)
9843	if err := googleapi.CheckResponse(res); err != nil {
9844		return nil, err
9845	}
9846	ret := &SendWorkerMessagesResponse{
9847		ServerResponse: googleapi.ServerResponse{
9848			Header:         res.Header,
9849			HTTPStatusCode: res.StatusCode,
9850		},
9851	}
9852	target := &ret
9853	if err := gensupport.DecodeResponse(target, res); err != nil {
9854		return nil, err
9855	}
9856	return ret, nil
9857	// {
9858	//   "description": "Send a worker_message to the service.",
9859	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/WorkerMessages",
9860	//   "httpMethod": "POST",
9861	//   "id": "dataflow.projects.locations.workerMessages",
9862	//   "parameterOrder": [
9863	//     "projectId",
9864	//     "location"
9865	//   ],
9866	//   "parameters": {
9867	//     "location": {
9868	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains the job.",
9869	//       "location": "path",
9870	//       "required": true,
9871	//       "type": "string"
9872	//     },
9873	//     "projectId": {
9874	//       "description": "The project to send the WorkerMessages to.",
9875	//       "location": "path",
9876	//       "required": true,
9877	//       "type": "string"
9878	//     }
9879	//   },
9880	//   "path": "v1b3/projects/{projectId}/locations/{location}/WorkerMessages",
9881	//   "request": {
9882	//     "$ref": "SendWorkerMessagesRequest"
9883	//   },
9884	//   "response": {
9885	//     "$ref": "SendWorkerMessagesResponse"
9886	//   },
9887	//   "scopes": [
9888	//     "https://www.googleapis.com/auth/cloud-platform",
9889	//     "https://www.googleapis.com/auth/compute",
9890	//     "https://www.googleapis.com/auth/compute.readonly",
9891	//     "https://www.googleapis.com/auth/userinfo.email"
9892	//   ]
9893	// }
9894
9895}
9896
9897// method id "dataflow.projects.locations.jobs.create":
9898
9899type ProjectsLocationsJobsCreateCall struct {
9900	s          *Service
9901	projectId  string
9902	location   string
9903	job        *Job
9904	urlParams_ gensupport.URLParams
9905	ctx_       context.Context
9906	header_    http.Header
9907}
9908
9909// Create: Creates a Cloud Dataflow job.
9910//
9911// To create a job, we recommend using `projects.locations.jobs.create`
9912// with a
9913// [regional
9914// endpoint]
9915// (https://cloud.google.com/dataflow/docs/concepts/regional-en
9916// dpoints). Using
9917// `projects.jobs.create` is not recommended, as your job will always
9918// start
9919// in `us-central1`.
9920func (r *ProjectsLocationsJobsService) Create(projectId string, location string, job *Job) *ProjectsLocationsJobsCreateCall {
9921	c := &ProjectsLocationsJobsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9922	c.projectId = projectId
9923	c.location = location
9924	c.job = job
9925	return c
9926}
9927
9928// ReplaceJobId sets the optional parameter "replaceJobId": Deprecated.
9929// This field is now in the Job message.
9930func (c *ProjectsLocationsJobsCreateCall) ReplaceJobId(replaceJobId string) *ProjectsLocationsJobsCreateCall {
9931	c.urlParams_.Set("replaceJobId", replaceJobId)
9932	return c
9933}
9934
9935// View sets the optional parameter "view": The level of information
9936// requested in response.
9937//
9938// Possible values:
9939//   "JOB_VIEW_UNKNOWN"
9940//   "JOB_VIEW_SUMMARY"
9941//   "JOB_VIEW_ALL"
9942//   "JOB_VIEW_DESCRIPTION"
9943func (c *ProjectsLocationsJobsCreateCall) View(view string) *ProjectsLocationsJobsCreateCall {
9944	c.urlParams_.Set("view", view)
9945	return c
9946}
9947
9948// Fields allows partial responses to be retrieved. See
9949// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9950// for more information.
9951func (c *ProjectsLocationsJobsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsCreateCall {
9952	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9953	return c
9954}
9955
9956// Context sets the context to be used in this call's Do method. Any
9957// pending HTTP request will be aborted if the provided context is
9958// canceled.
9959func (c *ProjectsLocationsJobsCreateCall) Context(ctx context.Context) *ProjectsLocationsJobsCreateCall {
9960	c.ctx_ = ctx
9961	return c
9962}
9963
9964// Header returns an http.Header that can be modified by the caller to
9965// add HTTP headers to the request.
9966func (c *ProjectsLocationsJobsCreateCall) Header() http.Header {
9967	if c.header_ == nil {
9968		c.header_ = make(http.Header)
9969	}
9970	return c.header_
9971}
9972
9973func (c *ProjectsLocationsJobsCreateCall) doRequest(alt string) (*http.Response, error) {
9974	reqHeaders := make(http.Header)
9975	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
9976	for k, v := range c.header_ {
9977		reqHeaders[k] = v
9978	}
9979	reqHeaders.Set("User-Agent", c.s.userAgent())
9980	var body io.Reader = nil
9981	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
9982	if err != nil {
9983		return nil, err
9984	}
9985	reqHeaders.Set("Content-Type", "application/json")
9986	c.urlParams_.Set("alt", alt)
9987	c.urlParams_.Set("prettyPrint", "false")
9988	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs")
9989	urls += "?" + c.urlParams_.Encode()
9990	req, err := http.NewRequest("POST", urls, body)
9991	if err != nil {
9992		return nil, err
9993	}
9994	req.Header = reqHeaders
9995	googleapi.Expand(req.URL, map[string]string{
9996		"projectId": c.projectId,
9997		"location":  c.location,
9998	})
9999	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10000}
10001
10002// Do executes the "dataflow.projects.locations.jobs.create" call.
10003// Exactly one of *Job or error will be non-nil. Any non-2xx status code
10004// is an error. Response headers are in either
10005// *Job.ServerResponse.Header or (if a response was returned at all) in
10006// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
10007// whether the returned error was because http.StatusNotModified was
10008// returned.
10009func (c *ProjectsLocationsJobsCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
10010	gensupport.SetOptions(c.urlParams_, opts...)
10011	res, err := c.doRequest("json")
10012	if res != nil && res.StatusCode == http.StatusNotModified {
10013		if res.Body != nil {
10014			res.Body.Close()
10015		}
10016		return nil, &googleapi.Error{
10017			Code:   res.StatusCode,
10018			Header: res.Header,
10019		}
10020	}
10021	if err != nil {
10022		return nil, err
10023	}
10024	defer googleapi.CloseBody(res)
10025	if err := googleapi.CheckResponse(res); err != nil {
10026		return nil, err
10027	}
10028	ret := &Job{
10029		ServerResponse: googleapi.ServerResponse{
10030			Header:         res.Header,
10031			HTTPStatusCode: res.StatusCode,
10032		},
10033	}
10034	target := &ret
10035	if err := gensupport.DecodeResponse(target, res); err != nil {
10036		return nil, err
10037	}
10038	return ret, nil
10039	// {
10040	//   "description": "Creates a Cloud Dataflow job.\n\nTo create a job, we recommend using `projects.locations.jobs.create` with a\n[regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using\n`projects.jobs.create` is not recommended, as your job will always start\nin `us-central1`.",
10041	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs",
10042	//   "httpMethod": "POST",
10043	//   "id": "dataflow.projects.locations.jobs.create",
10044	//   "parameterOrder": [
10045	//     "projectId",
10046	//     "location"
10047	//   ],
10048	//   "parameters": {
10049	//     "location": {
10050	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains this job.",
10051	//       "location": "path",
10052	//       "required": true,
10053	//       "type": "string"
10054	//     },
10055	//     "projectId": {
10056	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
10057	//       "location": "path",
10058	//       "required": true,
10059	//       "type": "string"
10060	//     },
10061	//     "replaceJobId": {
10062	//       "description": "Deprecated. This field is now in the Job message.",
10063	//       "location": "query",
10064	//       "type": "string"
10065	//     },
10066	//     "view": {
10067	//       "description": "The level of information requested in response.",
10068	//       "enum": [
10069	//         "JOB_VIEW_UNKNOWN",
10070	//         "JOB_VIEW_SUMMARY",
10071	//         "JOB_VIEW_ALL",
10072	//         "JOB_VIEW_DESCRIPTION"
10073	//       ],
10074	//       "location": "query",
10075	//       "type": "string"
10076	//     }
10077	//   },
10078	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs",
10079	//   "request": {
10080	//     "$ref": "Job"
10081	//   },
10082	//   "response": {
10083	//     "$ref": "Job"
10084	//   },
10085	//   "scopes": [
10086	//     "https://www.googleapis.com/auth/cloud-platform",
10087	//     "https://www.googleapis.com/auth/compute",
10088	//     "https://www.googleapis.com/auth/compute.readonly",
10089	//     "https://www.googleapis.com/auth/userinfo.email"
10090	//   ]
10091	// }
10092
10093}
10094
10095// method id "dataflow.projects.locations.jobs.get":
10096
10097type ProjectsLocationsJobsGetCall struct {
10098	s            *Service
10099	projectId    string
10100	location     string
10101	jobId        string
10102	urlParams_   gensupport.URLParams
10103	ifNoneMatch_ string
10104	ctx_         context.Context
10105	header_      http.Header
10106}
10107
10108// Get: Gets the state of the specified Cloud Dataflow job.
10109//
10110// To get the state of a job, we recommend using
10111// `projects.locations.jobs.get`
10112// with a [regional
10113// endpoint]
10114// (https://cloud.google.com/dataflow/docs/concepts/regional-en
10115// dpoints). Using
10116// `projects.jobs.get` is not recommended, as you can only get the state
10117// of
10118// jobs that are running in `us-central1`.
10119func (r *ProjectsLocationsJobsService) Get(projectId string, location string, jobId string) *ProjectsLocationsJobsGetCall {
10120	c := &ProjectsLocationsJobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10121	c.projectId = projectId
10122	c.location = location
10123	c.jobId = jobId
10124	return c
10125}
10126
10127// View sets the optional parameter "view": The level of information
10128// requested in response.
10129//
10130// Possible values:
10131//   "JOB_VIEW_UNKNOWN"
10132//   "JOB_VIEW_SUMMARY"
10133//   "JOB_VIEW_ALL"
10134//   "JOB_VIEW_DESCRIPTION"
10135func (c *ProjectsLocationsJobsGetCall) View(view string) *ProjectsLocationsJobsGetCall {
10136	c.urlParams_.Set("view", view)
10137	return c
10138}
10139
10140// Fields allows partial responses to be retrieved. See
10141// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10142// for more information.
10143func (c *ProjectsLocationsJobsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsGetCall {
10144	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10145	return c
10146}
10147
10148// IfNoneMatch sets the optional parameter which makes the operation
10149// fail if the object's ETag matches the given value. This is useful for
10150// getting updates only after the object has changed since the last
10151// request. Use googleapi.IsNotModified to check whether the response
10152// error from Do is the result of In-None-Match.
10153func (c *ProjectsLocationsJobsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsGetCall {
10154	c.ifNoneMatch_ = entityTag
10155	return c
10156}
10157
10158// Context sets the context to be used in this call's Do method. Any
10159// pending HTTP request will be aborted if the provided context is
10160// canceled.
10161func (c *ProjectsLocationsJobsGetCall) Context(ctx context.Context) *ProjectsLocationsJobsGetCall {
10162	c.ctx_ = ctx
10163	return c
10164}
10165
10166// Header returns an http.Header that can be modified by the caller to
10167// add HTTP headers to the request.
10168func (c *ProjectsLocationsJobsGetCall) Header() http.Header {
10169	if c.header_ == nil {
10170		c.header_ = make(http.Header)
10171	}
10172	return c.header_
10173}
10174
10175func (c *ProjectsLocationsJobsGetCall) doRequest(alt string) (*http.Response, error) {
10176	reqHeaders := make(http.Header)
10177	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
10178	for k, v := range c.header_ {
10179		reqHeaders[k] = v
10180	}
10181	reqHeaders.Set("User-Agent", c.s.userAgent())
10182	if c.ifNoneMatch_ != "" {
10183		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10184	}
10185	var body io.Reader = nil
10186	c.urlParams_.Set("alt", alt)
10187	c.urlParams_.Set("prettyPrint", "false")
10188	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}")
10189	urls += "?" + c.urlParams_.Encode()
10190	req, err := http.NewRequest("GET", urls, body)
10191	if err != nil {
10192		return nil, err
10193	}
10194	req.Header = reqHeaders
10195	googleapi.Expand(req.URL, map[string]string{
10196		"projectId": c.projectId,
10197		"location":  c.location,
10198		"jobId":     c.jobId,
10199	})
10200	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10201}
10202
10203// Do executes the "dataflow.projects.locations.jobs.get" call.
10204// Exactly one of *Job or error will be non-nil. Any non-2xx status code
10205// is an error. Response headers are in either
10206// *Job.ServerResponse.Header or (if a response was returned at all) in
10207// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
10208// whether the returned error was because http.StatusNotModified was
10209// returned.
10210func (c *ProjectsLocationsJobsGetCall) Do(opts ...googleapi.CallOption) (*Job, error) {
10211	gensupport.SetOptions(c.urlParams_, opts...)
10212	res, err := c.doRequest("json")
10213	if res != nil && res.StatusCode == http.StatusNotModified {
10214		if res.Body != nil {
10215			res.Body.Close()
10216		}
10217		return nil, &googleapi.Error{
10218			Code:   res.StatusCode,
10219			Header: res.Header,
10220		}
10221	}
10222	if err != nil {
10223		return nil, err
10224	}
10225	defer googleapi.CloseBody(res)
10226	if err := googleapi.CheckResponse(res); err != nil {
10227		return nil, err
10228	}
10229	ret := &Job{
10230		ServerResponse: googleapi.ServerResponse{
10231			Header:         res.Header,
10232			HTTPStatusCode: res.StatusCode,
10233		},
10234	}
10235	target := &ret
10236	if err := gensupport.DecodeResponse(target, res); err != nil {
10237		return nil, err
10238	}
10239	return ret, nil
10240	// {
10241	//   "description": "Gets the state of the specified Cloud Dataflow job.\n\nTo get the state of a job, we recommend using `projects.locations.jobs.get`\nwith a [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using\n`projects.jobs.get` is not recommended, as you can only get the state of\njobs that are running in `us-central1`.",
10242	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
10243	//   "httpMethod": "GET",
10244	//   "id": "dataflow.projects.locations.jobs.get",
10245	//   "parameterOrder": [
10246	//     "projectId",
10247	//     "location",
10248	//     "jobId"
10249	//   ],
10250	//   "parameters": {
10251	//     "jobId": {
10252	//       "description": "The job ID.",
10253	//       "location": "path",
10254	//       "required": true,
10255	//       "type": "string"
10256	//     },
10257	//     "location": {
10258	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains this job.",
10259	//       "location": "path",
10260	//       "required": true,
10261	//       "type": "string"
10262	//     },
10263	//     "projectId": {
10264	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
10265	//       "location": "path",
10266	//       "required": true,
10267	//       "type": "string"
10268	//     },
10269	//     "view": {
10270	//       "description": "The level of information requested in response.",
10271	//       "enum": [
10272	//         "JOB_VIEW_UNKNOWN",
10273	//         "JOB_VIEW_SUMMARY",
10274	//         "JOB_VIEW_ALL",
10275	//         "JOB_VIEW_DESCRIPTION"
10276	//       ],
10277	//       "location": "query",
10278	//       "type": "string"
10279	//     }
10280	//   },
10281	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
10282	//   "response": {
10283	//     "$ref": "Job"
10284	//   },
10285	//   "scopes": [
10286	//     "https://www.googleapis.com/auth/cloud-platform",
10287	//     "https://www.googleapis.com/auth/compute",
10288	//     "https://www.googleapis.com/auth/compute.readonly",
10289	//     "https://www.googleapis.com/auth/userinfo.email"
10290	//   ]
10291	// }
10292
10293}
10294
10295// method id "dataflow.projects.locations.jobs.getMetrics":
10296
10297type ProjectsLocationsJobsGetMetricsCall struct {
10298	s            *Service
10299	projectId    string
10300	location     string
10301	jobId        string
10302	urlParams_   gensupport.URLParams
10303	ifNoneMatch_ string
10304	ctx_         context.Context
10305	header_      http.Header
10306}
10307
10308// GetMetrics: Request the job status.
10309//
10310// To request the status of a job, we recommend
10311// using
10312// `projects.locations.jobs.getMetrics` with a [regional
10313// endpoint]
10314// (https://cloud.google.com/dataflow/docs/concepts/regional-en
10315// dpoints). Using
10316// `projects.jobs.getMetrics` is not recommended, as you can only
10317// request the
10318// status of jobs that are running in `us-central1`.
10319func (r *ProjectsLocationsJobsService) GetMetrics(projectId string, location string, jobId string) *ProjectsLocationsJobsGetMetricsCall {
10320	c := &ProjectsLocationsJobsGetMetricsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10321	c.projectId = projectId
10322	c.location = location
10323	c.jobId = jobId
10324	return c
10325}
10326
10327// StartTime sets the optional parameter "startTime": Return only metric
10328// data that has changed since this time.
10329// Default is to return all information about all metrics for the job.
10330func (c *ProjectsLocationsJobsGetMetricsCall) StartTime(startTime string) *ProjectsLocationsJobsGetMetricsCall {
10331	c.urlParams_.Set("startTime", startTime)
10332	return c
10333}
10334
10335// Fields allows partial responses to be retrieved. See
10336// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10337// for more information.
10338func (c *ProjectsLocationsJobsGetMetricsCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsGetMetricsCall {
10339	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10340	return c
10341}
10342
10343// IfNoneMatch sets the optional parameter which makes the operation
10344// fail if the object's ETag matches the given value. This is useful for
10345// getting updates only after the object has changed since the last
10346// request. Use googleapi.IsNotModified to check whether the response
10347// error from Do is the result of In-None-Match.
10348func (c *ProjectsLocationsJobsGetMetricsCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsGetMetricsCall {
10349	c.ifNoneMatch_ = entityTag
10350	return c
10351}
10352
10353// Context sets the context to be used in this call's Do method. Any
10354// pending HTTP request will be aborted if the provided context is
10355// canceled.
10356func (c *ProjectsLocationsJobsGetMetricsCall) Context(ctx context.Context) *ProjectsLocationsJobsGetMetricsCall {
10357	c.ctx_ = ctx
10358	return c
10359}
10360
10361// Header returns an http.Header that can be modified by the caller to
10362// add HTTP headers to the request.
10363func (c *ProjectsLocationsJobsGetMetricsCall) Header() http.Header {
10364	if c.header_ == nil {
10365		c.header_ = make(http.Header)
10366	}
10367	return c.header_
10368}
10369
10370func (c *ProjectsLocationsJobsGetMetricsCall) doRequest(alt string) (*http.Response, error) {
10371	reqHeaders := make(http.Header)
10372	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
10373	for k, v := range c.header_ {
10374		reqHeaders[k] = v
10375	}
10376	reqHeaders.Set("User-Agent", c.s.userAgent())
10377	if c.ifNoneMatch_ != "" {
10378		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10379	}
10380	var body io.Reader = nil
10381	c.urlParams_.Set("alt", alt)
10382	c.urlParams_.Set("prettyPrint", "false")
10383	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/metrics")
10384	urls += "?" + c.urlParams_.Encode()
10385	req, err := http.NewRequest("GET", urls, body)
10386	if err != nil {
10387		return nil, err
10388	}
10389	req.Header = reqHeaders
10390	googleapi.Expand(req.URL, map[string]string{
10391		"projectId": c.projectId,
10392		"location":  c.location,
10393		"jobId":     c.jobId,
10394	})
10395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10396}
10397
10398// Do executes the "dataflow.projects.locations.jobs.getMetrics" call.
10399// Exactly one of *JobMetrics or error will be non-nil. Any non-2xx
10400// status code is an error. Response headers are in either
10401// *JobMetrics.ServerResponse.Header or (if a response was returned at
10402// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
10403// to check whether the returned error was because
10404// http.StatusNotModified was returned.
10405func (c *ProjectsLocationsJobsGetMetricsCall) Do(opts ...googleapi.CallOption) (*JobMetrics, error) {
10406	gensupport.SetOptions(c.urlParams_, opts...)
10407	res, err := c.doRequest("json")
10408	if res != nil && res.StatusCode == http.StatusNotModified {
10409		if res.Body != nil {
10410			res.Body.Close()
10411		}
10412		return nil, &googleapi.Error{
10413			Code:   res.StatusCode,
10414			Header: res.Header,
10415		}
10416	}
10417	if err != nil {
10418		return nil, err
10419	}
10420	defer googleapi.CloseBody(res)
10421	if err := googleapi.CheckResponse(res); err != nil {
10422		return nil, err
10423	}
10424	ret := &JobMetrics{
10425		ServerResponse: googleapi.ServerResponse{
10426			Header:         res.Header,
10427			HTTPStatusCode: res.StatusCode,
10428		},
10429	}
10430	target := &ret
10431	if err := gensupport.DecodeResponse(target, res); err != nil {
10432		return nil, err
10433	}
10434	return ret, nil
10435	// {
10436	//   "description": "Request the job status.\n\nTo request the status of a job, we recommend using\n`projects.locations.jobs.getMetrics` with a [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using\n`projects.jobs.getMetrics` is not recommended, as you can only request the\nstatus of jobs that are running in `us-central1`.",
10437	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/metrics",
10438	//   "httpMethod": "GET",
10439	//   "id": "dataflow.projects.locations.jobs.getMetrics",
10440	//   "parameterOrder": [
10441	//     "projectId",
10442	//     "location",
10443	//     "jobId"
10444	//   ],
10445	//   "parameters": {
10446	//     "jobId": {
10447	//       "description": "The job to get messages for.",
10448	//       "location": "path",
10449	//       "required": true,
10450	//       "type": "string"
10451	//     },
10452	//     "location": {
10453	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains the job specified by job_id.",
10454	//       "location": "path",
10455	//       "required": true,
10456	//       "type": "string"
10457	//     },
10458	//     "projectId": {
10459	//       "description": "A project id.",
10460	//       "location": "path",
10461	//       "required": true,
10462	//       "type": "string"
10463	//     },
10464	//     "startTime": {
10465	//       "description": "Return only metric data that has changed since this time.\nDefault is to return all information about all metrics for the job.",
10466	//       "format": "google-datetime",
10467	//       "location": "query",
10468	//       "type": "string"
10469	//     }
10470	//   },
10471	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/metrics",
10472	//   "response": {
10473	//     "$ref": "JobMetrics"
10474	//   },
10475	//   "scopes": [
10476	//     "https://www.googleapis.com/auth/cloud-platform",
10477	//     "https://www.googleapis.com/auth/compute",
10478	//     "https://www.googleapis.com/auth/compute.readonly",
10479	//     "https://www.googleapis.com/auth/userinfo.email"
10480	//   ]
10481	// }
10482
10483}
10484
10485// method id "dataflow.projects.locations.jobs.list":
10486
10487type ProjectsLocationsJobsListCall struct {
10488	s            *Service
10489	projectId    string
10490	location     string
10491	urlParams_   gensupport.URLParams
10492	ifNoneMatch_ string
10493	ctx_         context.Context
10494	header_      http.Header
10495}
10496
10497// List: List the jobs of a project.
10498//
10499// To list the jobs of a project in a region, we recommend
10500// using
10501// `projects.locations.jobs.get` with a [regional
10502// endpoint]
10503// (https://cloud.google.com/dataflow/docs/concepts/regional-en
10504// dpoints). To
10505// list the all jobs across all regions, use `projects.jobs.aggregated`.
10506// Using
10507// `projects.jobs.list` is not recommended, as you can only get the list
10508// of
10509// jobs that are running in `us-central1`.
10510func (r *ProjectsLocationsJobsService) List(projectId string, location string) *ProjectsLocationsJobsListCall {
10511	c := &ProjectsLocationsJobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10512	c.projectId = projectId
10513	c.location = location
10514	return c
10515}
10516
10517// Filter sets the optional parameter "filter": The kind of filter to
10518// use.
10519//
10520// Possible values:
10521//   "UNKNOWN"
10522//   "ALL"
10523//   "TERMINATED"
10524//   "ACTIVE"
10525func (c *ProjectsLocationsJobsListCall) Filter(filter string) *ProjectsLocationsJobsListCall {
10526	c.urlParams_.Set("filter", filter)
10527	return c
10528}
10529
10530// PageSize sets the optional parameter "pageSize": If there are many
10531// jobs, limit response to at most this many.
10532// The actual number of jobs returned will be the lesser of
10533// max_responses
10534// and an unspecified server-defined limit.
10535func (c *ProjectsLocationsJobsListCall) PageSize(pageSize int64) *ProjectsLocationsJobsListCall {
10536	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
10537	return c
10538}
10539
10540// PageToken sets the optional parameter "pageToken": Set this to the
10541// 'next_page_token' field of a previous response
10542// to request additional results in a long list.
10543func (c *ProjectsLocationsJobsListCall) PageToken(pageToken string) *ProjectsLocationsJobsListCall {
10544	c.urlParams_.Set("pageToken", pageToken)
10545	return c
10546}
10547
10548// View sets the optional parameter "view": Level of information
10549// requested in response. Default is `JOB_VIEW_SUMMARY`.
10550//
10551// Possible values:
10552//   "JOB_VIEW_UNKNOWN"
10553//   "JOB_VIEW_SUMMARY"
10554//   "JOB_VIEW_ALL"
10555//   "JOB_VIEW_DESCRIPTION"
10556func (c *ProjectsLocationsJobsListCall) View(view string) *ProjectsLocationsJobsListCall {
10557	c.urlParams_.Set("view", view)
10558	return c
10559}
10560
10561// Fields allows partial responses to be retrieved. See
10562// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10563// for more information.
10564func (c *ProjectsLocationsJobsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsListCall {
10565	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10566	return c
10567}
10568
10569// IfNoneMatch sets the optional parameter which makes the operation
10570// fail if the object's ETag matches the given value. This is useful for
10571// getting updates only after the object has changed since the last
10572// request. Use googleapi.IsNotModified to check whether the response
10573// error from Do is the result of In-None-Match.
10574func (c *ProjectsLocationsJobsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsListCall {
10575	c.ifNoneMatch_ = entityTag
10576	return c
10577}
10578
10579// Context sets the context to be used in this call's Do method. Any
10580// pending HTTP request will be aborted if the provided context is
10581// canceled.
10582func (c *ProjectsLocationsJobsListCall) Context(ctx context.Context) *ProjectsLocationsJobsListCall {
10583	c.ctx_ = ctx
10584	return c
10585}
10586
10587// Header returns an http.Header that can be modified by the caller to
10588// add HTTP headers to the request.
10589func (c *ProjectsLocationsJobsListCall) Header() http.Header {
10590	if c.header_ == nil {
10591		c.header_ = make(http.Header)
10592	}
10593	return c.header_
10594}
10595
10596func (c *ProjectsLocationsJobsListCall) doRequest(alt string) (*http.Response, error) {
10597	reqHeaders := make(http.Header)
10598	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
10599	for k, v := range c.header_ {
10600		reqHeaders[k] = v
10601	}
10602	reqHeaders.Set("User-Agent", c.s.userAgent())
10603	if c.ifNoneMatch_ != "" {
10604		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10605	}
10606	var body io.Reader = nil
10607	c.urlParams_.Set("alt", alt)
10608	c.urlParams_.Set("prettyPrint", "false")
10609	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs")
10610	urls += "?" + c.urlParams_.Encode()
10611	req, err := http.NewRequest("GET", urls, body)
10612	if err != nil {
10613		return nil, err
10614	}
10615	req.Header = reqHeaders
10616	googleapi.Expand(req.URL, map[string]string{
10617		"projectId": c.projectId,
10618		"location":  c.location,
10619	})
10620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10621}
10622
10623// Do executes the "dataflow.projects.locations.jobs.list" call.
10624// Exactly one of *ListJobsResponse or error will be non-nil. Any
10625// non-2xx status code is an error. Response headers are in either
10626// *ListJobsResponse.ServerResponse.Header or (if a response was
10627// returned at all) in error.(*googleapi.Error).Header. Use
10628// googleapi.IsNotModified to check whether the returned error was
10629// because http.StatusNotModified was returned.
10630func (c *ProjectsLocationsJobsListCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
10631	gensupport.SetOptions(c.urlParams_, opts...)
10632	res, err := c.doRequest("json")
10633	if res != nil && res.StatusCode == http.StatusNotModified {
10634		if res.Body != nil {
10635			res.Body.Close()
10636		}
10637		return nil, &googleapi.Error{
10638			Code:   res.StatusCode,
10639			Header: res.Header,
10640		}
10641	}
10642	if err != nil {
10643		return nil, err
10644	}
10645	defer googleapi.CloseBody(res)
10646	if err := googleapi.CheckResponse(res); err != nil {
10647		return nil, err
10648	}
10649	ret := &ListJobsResponse{
10650		ServerResponse: googleapi.ServerResponse{
10651			Header:         res.Header,
10652			HTTPStatusCode: res.StatusCode,
10653		},
10654	}
10655	target := &ret
10656	if err := gensupport.DecodeResponse(target, res); err != nil {
10657		return nil, err
10658	}
10659	return ret, nil
10660	// {
10661	//   "description": "List the jobs of a project.\n\nTo list the jobs of a project in a region, we recommend using\n`projects.locations.jobs.get` with a [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To\nlist the all jobs across all regions, use `projects.jobs.aggregated`. Using\n`projects.jobs.list` is not recommended, as you can only get the list of\njobs that are running in `us-central1`.",
10662	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs",
10663	//   "httpMethod": "GET",
10664	//   "id": "dataflow.projects.locations.jobs.list",
10665	//   "parameterOrder": [
10666	//     "projectId",
10667	//     "location"
10668	//   ],
10669	//   "parameters": {
10670	//     "filter": {
10671	//       "description": "The kind of filter to use.",
10672	//       "enum": [
10673	//         "UNKNOWN",
10674	//         "ALL",
10675	//         "TERMINATED",
10676	//         "ACTIVE"
10677	//       ],
10678	//       "location": "query",
10679	//       "type": "string"
10680	//     },
10681	//     "location": {
10682	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains this job.",
10683	//       "location": "path",
10684	//       "required": true,
10685	//       "type": "string"
10686	//     },
10687	//     "pageSize": {
10688	//       "description": "If there are many jobs, limit response to at most this many.\nThe actual number of jobs returned will be the lesser of max_responses\nand an unspecified server-defined limit.",
10689	//       "format": "int32",
10690	//       "location": "query",
10691	//       "type": "integer"
10692	//     },
10693	//     "pageToken": {
10694	//       "description": "Set this to the 'next_page_token' field of a previous response\nto request additional results in a long list.",
10695	//       "location": "query",
10696	//       "type": "string"
10697	//     },
10698	//     "projectId": {
10699	//       "description": "The project which owns the jobs.",
10700	//       "location": "path",
10701	//       "required": true,
10702	//       "type": "string"
10703	//     },
10704	//     "view": {
10705	//       "description": "Level of information requested in response. Default is `JOB_VIEW_SUMMARY`.",
10706	//       "enum": [
10707	//         "JOB_VIEW_UNKNOWN",
10708	//         "JOB_VIEW_SUMMARY",
10709	//         "JOB_VIEW_ALL",
10710	//         "JOB_VIEW_DESCRIPTION"
10711	//       ],
10712	//       "location": "query",
10713	//       "type": "string"
10714	//     }
10715	//   },
10716	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs",
10717	//   "response": {
10718	//     "$ref": "ListJobsResponse"
10719	//   },
10720	//   "scopes": [
10721	//     "https://www.googleapis.com/auth/cloud-platform",
10722	//     "https://www.googleapis.com/auth/compute",
10723	//     "https://www.googleapis.com/auth/compute.readonly",
10724	//     "https://www.googleapis.com/auth/userinfo.email"
10725	//   ]
10726	// }
10727
10728}
10729
10730// Pages invokes f for each page of results.
10731// A non-nil error returned from f will halt the iteration.
10732// The provided context supersedes any context provided to the Context method.
10733func (c *ProjectsLocationsJobsListCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
10734	c.ctx_ = ctx
10735	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
10736	for {
10737		x, err := c.Do()
10738		if err != nil {
10739			return err
10740		}
10741		if err := f(x); err != nil {
10742			return err
10743		}
10744		if x.NextPageToken == "" {
10745			return nil
10746		}
10747		c.PageToken(x.NextPageToken)
10748	}
10749}
10750
10751// method id "dataflow.projects.locations.jobs.update":
10752
10753type ProjectsLocationsJobsUpdateCall struct {
10754	s          *Service
10755	projectId  string
10756	location   string
10757	jobId      string
10758	job        *Job
10759	urlParams_ gensupport.URLParams
10760	ctx_       context.Context
10761	header_    http.Header
10762}
10763
10764// Update: Updates the state of an existing Cloud Dataflow job.
10765//
10766// To update the state of an existing job, we recommend
10767// using
10768// `projects.locations.jobs.update` with a [regional
10769// endpoint]
10770// (https://cloud.google.com/dataflow/docs/concepts/regional-en
10771// dpoints). Using
10772// `projects.jobs.update` is not recommended, as you can only update the
10773// state
10774// of jobs that are running in `us-central1`.
10775func (r *ProjectsLocationsJobsService) Update(projectId string, location string, jobId string, job *Job) *ProjectsLocationsJobsUpdateCall {
10776	c := &ProjectsLocationsJobsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10777	c.projectId = projectId
10778	c.location = location
10779	c.jobId = jobId
10780	c.job = job
10781	return c
10782}
10783
10784// Fields allows partial responses to be retrieved. See
10785// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10786// for more information.
10787func (c *ProjectsLocationsJobsUpdateCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsUpdateCall {
10788	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10789	return c
10790}
10791
10792// Context sets the context to be used in this call's Do method. Any
10793// pending HTTP request will be aborted if the provided context is
10794// canceled.
10795func (c *ProjectsLocationsJobsUpdateCall) Context(ctx context.Context) *ProjectsLocationsJobsUpdateCall {
10796	c.ctx_ = ctx
10797	return c
10798}
10799
10800// Header returns an http.Header that can be modified by the caller to
10801// add HTTP headers to the request.
10802func (c *ProjectsLocationsJobsUpdateCall) Header() http.Header {
10803	if c.header_ == nil {
10804		c.header_ = make(http.Header)
10805	}
10806	return c.header_
10807}
10808
10809func (c *ProjectsLocationsJobsUpdateCall) doRequest(alt string) (*http.Response, error) {
10810	reqHeaders := make(http.Header)
10811	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
10812	for k, v := range c.header_ {
10813		reqHeaders[k] = v
10814	}
10815	reqHeaders.Set("User-Agent", c.s.userAgent())
10816	var body io.Reader = nil
10817	body, err := googleapi.WithoutDataWrapper.JSONReader(c.job)
10818	if err != nil {
10819		return nil, err
10820	}
10821	reqHeaders.Set("Content-Type", "application/json")
10822	c.urlParams_.Set("alt", alt)
10823	c.urlParams_.Set("prettyPrint", "false")
10824	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}")
10825	urls += "?" + c.urlParams_.Encode()
10826	req, err := http.NewRequest("PUT", urls, body)
10827	if err != nil {
10828		return nil, err
10829	}
10830	req.Header = reqHeaders
10831	googleapi.Expand(req.URL, map[string]string{
10832		"projectId": c.projectId,
10833		"location":  c.location,
10834		"jobId":     c.jobId,
10835	})
10836	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10837}
10838
10839// Do executes the "dataflow.projects.locations.jobs.update" call.
10840// Exactly one of *Job or error will be non-nil. Any non-2xx status code
10841// is an error. Response headers are in either
10842// *Job.ServerResponse.Header or (if a response was returned at all) in
10843// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
10844// whether the returned error was because http.StatusNotModified was
10845// returned.
10846func (c *ProjectsLocationsJobsUpdateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
10847	gensupport.SetOptions(c.urlParams_, opts...)
10848	res, err := c.doRequest("json")
10849	if res != nil && res.StatusCode == http.StatusNotModified {
10850		if res.Body != nil {
10851			res.Body.Close()
10852		}
10853		return nil, &googleapi.Error{
10854			Code:   res.StatusCode,
10855			Header: res.Header,
10856		}
10857	}
10858	if err != nil {
10859		return nil, err
10860	}
10861	defer googleapi.CloseBody(res)
10862	if err := googleapi.CheckResponse(res); err != nil {
10863		return nil, err
10864	}
10865	ret := &Job{
10866		ServerResponse: googleapi.ServerResponse{
10867			Header:         res.Header,
10868			HTTPStatusCode: res.StatusCode,
10869		},
10870	}
10871	target := &ret
10872	if err := gensupport.DecodeResponse(target, res); err != nil {
10873		return nil, err
10874	}
10875	return ret, nil
10876	// {
10877	//   "description": "Updates the state of an existing Cloud Dataflow job.\n\nTo update the state of an existing job, we recommend using\n`projects.locations.jobs.update` with a [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using\n`projects.jobs.update` is not recommended, as you can only update the state\nof jobs that are running in `us-central1`.",
10878	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
10879	//   "httpMethod": "PUT",
10880	//   "id": "dataflow.projects.locations.jobs.update",
10881	//   "parameterOrder": [
10882	//     "projectId",
10883	//     "location",
10884	//     "jobId"
10885	//   ],
10886	//   "parameters": {
10887	//     "jobId": {
10888	//       "description": "The job ID.",
10889	//       "location": "path",
10890	//       "required": true,
10891	//       "type": "string"
10892	//     },
10893	//     "location": {
10894	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains this job.",
10895	//       "location": "path",
10896	//       "required": true,
10897	//       "type": "string"
10898	//     },
10899	//     "projectId": {
10900	//       "description": "The ID of the Cloud Platform project that the job belongs to.",
10901	//       "location": "path",
10902	//       "required": true,
10903	//       "type": "string"
10904	//     }
10905	//   },
10906	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
10907	//   "request": {
10908	//     "$ref": "Job"
10909	//   },
10910	//   "response": {
10911	//     "$ref": "Job"
10912	//   },
10913	//   "scopes": [
10914	//     "https://www.googleapis.com/auth/cloud-platform",
10915	//     "https://www.googleapis.com/auth/compute",
10916	//     "https://www.googleapis.com/auth/compute.readonly",
10917	//     "https://www.googleapis.com/auth/userinfo.email"
10918	//   ]
10919	// }
10920
10921}
10922
10923// method id "dataflow.projects.locations.jobs.debug.getConfig":
10924
10925type ProjectsLocationsJobsDebugGetConfigCall struct {
10926	s                     *Service
10927	projectId             string
10928	location              string
10929	jobId                 string
10930	getdebugconfigrequest *GetDebugConfigRequest
10931	urlParams_            gensupport.URLParams
10932	ctx_                  context.Context
10933	header_               http.Header
10934}
10935
10936// GetConfig: Get encoded debug configuration for component. Not
10937// cacheable.
10938func (r *ProjectsLocationsJobsDebugService) GetConfig(projectId string, location string, jobId string, getdebugconfigrequest *GetDebugConfigRequest) *ProjectsLocationsJobsDebugGetConfigCall {
10939	c := &ProjectsLocationsJobsDebugGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10940	c.projectId = projectId
10941	c.location = location
10942	c.jobId = jobId
10943	c.getdebugconfigrequest = getdebugconfigrequest
10944	return c
10945}
10946
10947// Fields allows partial responses to be retrieved. See
10948// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10949// for more information.
10950func (c *ProjectsLocationsJobsDebugGetConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsDebugGetConfigCall {
10951	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10952	return c
10953}
10954
10955// Context sets the context to be used in this call's Do method. Any
10956// pending HTTP request will be aborted if the provided context is
10957// canceled.
10958func (c *ProjectsLocationsJobsDebugGetConfigCall) Context(ctx context.Context) *ProjectsLocationsJobsDebugGetConfigCall {
10959	c.ctx_ = ctx
10960	return c
10961}
10962
10963// Header returns an http.Header that can be modified by the caller to
10964// add HTTP headers to the request.
10965func (c *ProjectsLocationsJobsDebugGetConfigCall) Header() http.Header {
10966	if c.header_ == nil {
10967		c.header_ = make(http.Header)
10968	}
10969	return c.header_
10970}
10971
10972func (c *ProjectsLocationsJobsDebugGetConfigCall) doRequest(alt string) (*http.Response, error) {
10973	reqHeaders := make(http.Header)
10974	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
10975	for k, v := range c.header_ {
10976		reqHeaders[k] = v
10977	}
10978	reqHeaders.Set("User-Agent", c.s.userAgent())
10979	var body io.Reader = nil
10980	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getdebugconfigrequest)
10981	if err != nil {
10982		return nil, err
10983	}
10984	reqHeaders.Set("Content-Type", "application/json")
10985	c.urlParams_.Set("alt", alt)
10986	c.urlParams_.Set("prettyPrint", "false")
10987	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig")
10988	urls += "?" + c.urlParams_.Encode()
10989	req, err := http.NewRequest("POST", urls, body)
10990	if err != nil {
10991		return nil, err
10992	}
10993	req.Header = reqHeaders
10994	googleapi.Expand(req.URL, map[string]string{
10995		"projectId": c.projectId,
10996		"location":  c.location,
10997		"jobId":     c.jobId,
10998	})
10999	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11000}
11001
11002// Do executes the "dataflow.projects.locations.jobs.debug.getConfig" call.
11003// Exactly one of *GetDebugConfigResponse or error will be non-nil. Any
11004// non-2xx status code is an error. Response headers are in either
11005// *GetDebugConfigResponse.ServerResponse.Header or (if a response was
11006// returned at all) in error.(*googleapi.Error).Header. Use
11007// googleapi.IsNotModified to check whether the returned error was
11008// because http.StatusNotModified was returned.
11009func (c *ProjectsLocationsJobsDebugGetConfigCall) Do(opts ...googleapi.CallOption) (*GetDebugConfigResponse, error) {
11010	gensupport.SetOptions(c.urlParams_, opts...)
11011	res, err := c.doRequest("json")
11012	if res != nil && res.StatusCode == http.StatusNotModified {
11013		if res.Body != nil {
11014			res.Body.Close()
11015		}
11016		return nil, &googleapi.Error{
11017			Code:   res.StatusCode,
11018			Header: res.Header,
11019		}
11020	}
11021	if err != nil {
11022		return nil, err
11023	}
11024	defer googleapi.CloseBody(res)
11025	if err := googleapi.CheckResponse(res); err != nil {
11026		return nil, err
11027	}
11028	ret := &GetDebugConfigResponse{
11029		ServerResponse: googleapi.ServerResponse{
11030			Header:         res.Header,
11031			HTTPStatusCode: res.StatusCode,
11032		},
11033	}
11034	target := &ret
11035	if err := gensupport.DecodeResponse(target, res); err != nil {
11036		return nil, err
11037	}
11038	return ret, nil
11039	// {
11040	//   "description": "Get encoded debug configuration for component. Not cacheable.",
11041	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig",
11042	//   "httpMethod": "POST",
11043	//   "id": "dataflow.projects.locations.jobs.debug.getConfig",
11044	//   "parameterOrder": [
11045	//     "projectId",
11046	//     "location",
11047	//     "jobId"
11048	//   ],
11049	//   "parameters": {
11050	//     "jobId": {
11051	//       "description": "The job id.",
11052	//       "location": "path",
11053	//       "required": true,
11054	//       "type": "string"
11055	//     },
11056	//     "location": {
11057	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains the job specified by job_id.",
11058	//       "location": "path",
11059	//       "required": true,
11060	//       "type": "string"
11061	//     },
11062	//     "projectId": {
11063	//       "description": "The project id.",
11064	//       "location": "path",
11065	//       "required": true,
11066	//       "type": "string"
11067	//     }
11068	//   },
11069	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/getConfig",
11070	//   "request": {
11071	//     "$ref": "GetDebugConfigRequest"
11072	//   },
11073	//   "response": {
11074	//     "$ref": "GetDebugConfigResponse"
11075	//   },
11076	//   "scopes": [
11077	//     "https://www.googleapis.com/auth/cloud-platform",
11078	//     "https://www.googleapis.com/auth/compute",
11079	//     "https://www.googleapis.com/auth/compute.readonly",
11080	//     "https://www.googleapis.com/auth/userinfo.email"
11081	//   ]
11082	// }
11083
11084}
11085
11086// method id "dataflow.projects.locations.jobs.debug.sendCapture":
11087
11088type ProjectsLocationsJobsDebugSendCaptureCall struct {
11089	s                       *Service
11090	projectId               string
11091	location                string
11092	jobId                   string
11093	senddebugcapturerequest *SendDebugCaptureRequest
11094	urlParams_              gensupport.URLParams
11095	ctx_                    context.Context
11096	header_                 http.Header
11097}
11098
11099// SendCapture: Send encoded debug capture data for component.
11100func (r *ProjectsLocationsJobsDebugService) SendCapture(projectId string, location string, jobId string, senddebugcapturerequest *SendDebugCaptureRequest) *ProjectsLocationsJobsDebugSendCaptureCall {
11101	c := &ProjectsLocationsJobsDebugSendCaptureCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11102	c.projectId = projectId
11103	c.location = location
11104	c.jobId = jobId
11105	c.senddebugcapturerequest = senddebugcapturerequest
11106	return c
11107}
11108
11109// Fields allows partial responses to be retrieved. See
11110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11111// for more information.
11112func (c *ProjectsLocationsJobsDebugSendCaptureCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsDebugSendCaptureCall {
11113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11114	return c
11115}
11116
11117// Context sets the context to be used in this call's Do method. Any
11118// pending HTTP request will be aborted if the provided context is
11119// canceled.
11120func (c *ProjectsLocationsJobsDebugSendCaptureCall) Context(ctx context.Context) *ProjectsLocationsJobsDebugSendCaptureCall {
11121	c.ctx_ = ctx
11122	return c
11123}
11124
11125// Header returns an http.Header that can be modified by the caller to
11126// add HTTP headers to the request.
11127func (c *ProjectsLocationsJobsDebugSendCaptureCall) Header() http.Header {
11128	if c.header_ == nil {
11129		c.header_ = make(http.Header)
11130	}
11131	return c.header_
11132}
11133
11134func (c *ProjectsLocationsJobsDebugSendCaptureCall) doRequest(alt string) (*http.Response, error) {
11135	reqHeaders := make(http.Header)
11136	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
11137	for k, v := range c.header_ {
11138		reqHeaders[k] = v
11139	}
11140	reqHeaders.Set("User-Agent", c.s.userAgent())
11141	var body io.Reader = nil
11142	body, err := googleapi.WithoutDataWrapper.JSONReader(c.senddebugcapturerequest)
11143	if err != nil {
11144		return nil, err
11145	}
11146	reqHeaders.Set("Content-Type", "application/json")
11147	c.urlParams_.Set("alt", alt)
11148	c.urlParams_.Set("prettyPrint", "false")
11149	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture")
11150	urls += "?" + c.urlParams_.Encode()
11151	req, err := http.NewRequest("POST", urls, body)
11152	if err != nil {
11153		return nil, err
11154	}
11155	req.Header = reqHeaders
11156	googleapi.Expand(req.URL, map[string]string{
11157		"projectId": c.projectId,
11158		"location":  c.location,
11159		"jobId":     c.jobId,
11160	})
11161	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11162}
11163
11164// Do executes the "dataflow.projects.locations.jobs.debug.sendCapture" call.
11165// Exactly one of *SendDebugCaptureResponse or error will be non-nil.
11166// Any non-2xx status code is an error. Response headers are in either
11167// *SendDebugCaptureResponse.ServerResponse.Header or (if a response was
11168// returned at all) in error.(*googleapi.Error).Header. Use
11169// googleapi.IsNotModified to check whether the returned error was
11170// because http.StatusNotModified was returned.
11171func (c *ProjectsLocationsJobsDebugSendCaptureCall) Do(opts ...googleapi.CallOption) (*SendDebugCaptureResponse, error) {
11172	gensupport.SetOptions(c.urlParams_, opts...)
11173	res, err := c.doRequest("json")
11174	if res != nil && res.StatusCode == http.StatusNotModified {
11175		if res.Body != nil {
11176			res.Body.Close()
11177		}
11178		return nil, &googleapi.Error{
11179			Code:   res.StatusCode,
11180			Header: res.Header,
11181		}
11182	}
11183	if err != nil {
11184		return nil, err
11185	}
11186	defer googleapi.CloseBody(res)
11187	if err := googleapi.CheckResponse(res); err != nil {
11188		return nil, err
11189	}
11190	ret := &SendDebugCaptureResponse{
11191		ServerResponse: googleapi.ServerResponse{
11192			Header:         res.Header,
11193			HTTPStatusCode: res.StatusCode,
11194		},
11195	}
11196	target := &ret
11197	if err := gensupport.DecodeResponse(target, res); err != nil {
11198		return nil, err
11199	}
11200	return ret, nil
11201	// {
11202	//   "description": "Send encoded debug capture data for component.",
11203	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture",
11204	//   "httpMethod": "POST",
11205	//   "id": "dataflow.projects.locations.jobs.debug.sendCapture",
11206	//   "parameterOrder": [
11207	//     "projectId",
11208	//     "location",
11209	//     "jobId"
11210	//   ],
11211	//   "parameters": {
11212	//     "jobId": {
11213	//       "description": "The job id.",
11214	//       "location": "path",
11215	//       "required": true,
11216	//       "type": "string"
11217	//     },
11218	//     "location": {
11219	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains the job specified by job_id.",
11220	//       "location": "path",
11221	//       "required": true,
11222	//       "type": "string"
11223	//     },
11224	//     "projectId": {
11225	//       "description": "The project id.",
11226	//       "location": "path",
11227	//       "required": true,
11228	//       "type": "string"
11229	//     }
11230	//   },
11231	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/debug/sendCapture",
11232	//   "request": {
11233	//     "$ref": "SendDebugCaptureRequest"
11234	//   },
11235	//   "response": {
11236	//     "$ref": "SendDebugCaptureResponse"
11237	//   },
11238	//   "scopes": [
11239	//     "https://www.googleapis.com/auth/cloud-platform",
11240	//     "https://www.googleapis.com/auth/compute",
11241	//     "https://www.googleapis.com/auth/compute.readonly",
11242	//     "https://www.googleapis.com/auth/userinfo.email"
11243	//   ]
11244	// }
11245
11246}
11247
11248// method id "dataflow.projects.locations.jobs.messages.list":
11249
11250type ProjectsLocationsJobsMessagesListCall struct {
11251	s            *Service
11252	projectId    string
11253	location     string
11254	jobId        string
11255	urlParams_   gensupport.URLParams
11256	ifNoneMatch_ string
11257	ctx_         context.Context
11258	header_      http.Header
11259}
11260
11261// List: Request the job status.
11262//
11263// To request the status of a job, we recommend
11264// using
11265// `projects.locations.jobs.messages.list` with a [regional
11266// endpoint]
11267// (https://cloud.google.com/dataflow/docs/concepts/regional-en
11268// dpoints). Using
11269// `projects.jobs.messages.list` is not recommended, as you can only
11270// request
11271// the status of jobs that are running in `us-central1`.
11272func (r *ProjectsLocationsJobsMessagesService) List(projectId string, location string, jobId string) *ProjectsLocationsJobsMessagesListCall {
11273	c := &ProjectsLocationsJobsMessagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11274	c.projectId = projectId
11275	c.location = location
11276	c.jobId = jobId
11277	return c
11278}
11279
11280// EndTime sets the optional parameter "endTime": Return only messages
11281// with timestamps < end_time. The default is now
11282// (i.e. return up to the latest messages available).
11283func (c *ProjectsLocationsJobsMessagesListCall) EndTime(endTime string) *ProjectsLocationsJobsMessagesListCall {
11284	c.urlParams_.Set("endTime", endTime)
11285	return c
11286}
11287
11288// MinimumImportance sets the optional parameter "minimumImportance":
11289// Filter to only get messages with importance >= level
11290//
11291// Possible values:
11292//   "JOB_MESSAGE_IMPORTANCE_UNKNOWN"
11293//   "JOB_MESSAGE_DEBUG"
11294//   "JOB_MESSAGE_DETAILED"
11295//   "JOB_MESSAGE_BASIC"
11296//   "JOB_MESSAGE_WARNING"
11297//   "JOB_MESSAGE_ERROR"
11298func (c *ProjectsLocationsJobsMessagesListCall) MinimumImportance(minimumImportance string) *ProjectsLocationsJobsMessagesListCall {
11299	c.urlParams_.Set("minimumImportance", minimumImportance)
11300	return c
11301}
11302
11303// PageSize sets the optional parameter "pageSize": If specified,
11304// determines the maximum number of messages to
11305// return.  If unspecified, the service may choose an
11306// appropriate
11307// default, or may return an arbitrarily large number of results.
11308func (c *ProjectsLocationsJobsMessagesListCall) PageSize(pageSize int64) *ProjectsLocationsJobsMessagesListCall {
11309	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
11310	return c
11311}
11312
11313// PageToken sets the optional parameter "pageToken": If supplied, this
11314// should be the value of next_page_token returned
11315// by an earlier call. This will cause the next page of results to
11316// be returned.
11317func (c *ProjectsLocationsJobsMessagesListCall) PageToken(pageToken string) *ProjectsLocationsJobsMessagesListCall {
11318	c.urlParams_.Set("pageToken", pageToken)
11319	return c
11320}
11321
11322// StartTime sets the optional parameter "startTime": If specified,
11323// return only messages with timestamps >= start_time.
11324// The default is the job creation time (i.e. beginning of messages).
11325func (c *ProjectsLocationsJobsMessagesListCall) StartTime(startTime string) *ProjectsLocationsJobsMessagesListCall {
11326	c.urlParams_.Set("startTime", startTime)
11327	return c
11328}
11329
11330// Fields allows partial responses to be retrieved. See
11331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11332// for more information.
11333func (c *ProjectsLocationsJobsMessagesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsMessagesListCall {
11334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11335	return c
11336}
11337
11338// IfNoneMatch sets the optional parameter which makes the operation
11339// fail if the object's ETag matches the given value. This is useful for
11340// getting updates only after the object has changed since the last
11341// request. Use googleapi.IsNotModified to check whether the response
11342// error from Do is the result of In-None-Match.
11343func (c *ProjectsLocationsJobsMessagesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsJobsMessagesListCall {
11344	c.ifNoneMatch_ = entityTag
11345	return c
11346}
11347
11348// Context sets the context to be used in this call's Do method. Any
11349// pending HTTP request will be aborted if the provided context is
11350// canceled.
11351func (c *ProjectsLocationsJobsMessagesListCall) Context(ctx context.Context) *ProjectsLocationsJobsMessagesListCall {
11352	c.ctx_ = ctx
11353	return c
11354}
11355
11356// Header returns an http.Header that can be modified by the caller to
11357// add HTTP headers to the request.
11358func (c *ProjectsLocationsJobsMessagesListCall) Header() http.Header {
11359	if c.header_ == nil {
11360		c.header_ = make(http.Header)
11361	}
11362	return c.header_
11363}
11364
11365func (c *ProjectsLocationsJobsMessagesListCall) doRequest(alt string) (*http.Response, error) {
11366	reqHeaders := make(http.Header)
11367	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
11368	for k, v := range c.header_ {
11369		reqHeaders[k] = v
11370	}
11371	reqHeaders.Set("User-Agent", c.s.userAgent())
11372	if c.ifNoneMatch_ != "" {
11373		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11374	}
11375	var body io.Reader = nil
11376	c.urlParams_.Set("alt", alt)
11377	c.urlParams_.Set("prettyPrint", "false")
11378	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages")
11379	urls += "?" + c.urlParams_.Encode()
11380	req, err := http.NewRequest("GET", urls, body)
11381	if err != nil {
11382		return nil, err
11383	}
11384	req.Header = reqHeaders
11385	googleapi.Expand(req.URL, map[string]string{
11386		"projectId": c.projectId,
11387		"location":  c.location,
11388		"jobId":     c.jobId,
11389	})
11390	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11391}
11392
11393// Do executes the "dataflow.projects.locations.jobs.messages.list" call.
11394// Exactly one of *ListJobMessagesResponse or error will be non-nil. Any
11395// non-2xx status code is an error. Response headers are in either
11396// *ListJobMessagesResponse.ServerResponse.Header or (if a response was
11397// returned at all) in error.(*googleapi.Error).Header. Use
11398// googleapi.IsNotModified to check whether the returned error was
11399// because http.StatusNotModified was returned.
11400func (c *ProjectsLocationsJobsMessagesListCall) Do(opts ...googleapi.CallOption) (*ListJobMessagesResponse, error) {
11401	gensupport.SetOptions(c.urlParams_, opts...)
11402	res, err := c.doRequest("json")
11403	if res != nil && res.StatusCode == http.StatusNotModified {
11404		if res.Body != nil {
11405			res.Body.Close()
11406		}
11407		return nil, &googleapi.Error{
11408			Code:   res.StatusCode,
11409			Header: res.Header,
11410		}
11411	}
11412	if err != nil {
11413		return nil, err
11414	}
11415	defer googleapi.CloseBody(res)
11416	if err := googleapi.CheckResponse(res); err != nil {
11417		return nil, err
11418	}
11419	ret := &ListJobMessagesResponse{
11420		ServerResponse: googleapi.ServerResponse{
11421			Header:         res.Header,
11422			HTTPStatusCode: res.StatusCode,
11423		},
11424	}
11425	target := &ret
11426	if err := gensupport.DecodeResponse(target, res); err != nil {
11427		return nil, err
11428	}
11429	return ret, nil
11430	// {
11431	//   "description": "Request the job status.\n\nTo request the status of a job, we recommend using\n`projects.locations.jobs.messages.list` with a [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using\n`projects.jobs.messages.list` is not recommended, as you can only request\nthe status of jobs that are running in `us-central1`.",
11432	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages",
11433	//   "httpMethod": "GET",
11434	//   "id": "dataflow.projects.locations.jobs.messages.list",
11435	//   "parameterOrder": [
11436	//     "projectId",
11437	//     "location",
11438	//     "jobId"
11439	//   ],
11440	//   "parameters": {
11441	//     "endTime": {
11442	//       "description": "Return only messages with timestamps \u003c end_time. The default is now\n(i.e. return up to the latest messages available).",
11443	//       "format": "google-datetime",
11444	//       "location": "query",
11445	//       "type": "string"
11446	//     },
11447	//     "jobId": {
11448	//       "description": "The job to get messages about.",
11449	//       "location": "path",
11450	//       "required": true,
11451	//       "type": "string"
11452	//     },
11453	//     "location": {
11454	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains the job specified by job_id.",
11455	//       "location": "path",
11456	//       "required": true,
11457	//       "type": "string"
11458	//     },
11459	//     "minimumImportance": {
11460	//       "description": "Filter to only get messages with importance \u003e= level",
11461	//       "enum": [
11462	//         "JOB_MESSAGE_IMPORTANCE_UNKNOWN",
11463	//         "JOB_MESSAGE_DEBUG",
11464	//         "JOB_MESSAGE_DETAILED",
11465	//         "JOB_MESSAGE_BASIC",
11466	//         "JOB_MESSAGE_WARNING",
11467	//         "JOB_MESSAGE_ERROR"
11468	//       ],
11469	//       "location": "query",
11470	//       "type": "string"
11471	//     },
11472	//     "pageSize": {
11473	//       "description": "If specified, determines the maximum number of messages to\nreturn.  If unspecified, the service may choose an appropriate\ndefault, or may return an arbitrarily large number of results.",
11474	//       "format": "int32",
11475	//       "location": "query",
11476	//       "type": "integer"
11477	//     },
11478	//     "pageToken": {
11479	//       "description": "If supplied, this should be the value of next_page_token returned\nby an earlier call. This will cause the next page of results to\nbe returned.",
11480	//       "location": "query",
11481	//       "type": "string"
11482	//     },
11483	//     "projectId": {
11484	//       "description": "A project id.",
11485	//       "location": "path",
11486	//       "required": true,
11487	//       "type": "string"
11488	//     },
11489	//     "startTime": {
11490	//       "description": "If specified, return only messages with timestamps \u003e= start_time.\nThe default is the job creation time (i.e. beginning of messages).",
11491	//       "format": "google-datetime",
11492	//       "location": "query",
11493	//       "type": "string"
11494	//     }
11495	//   },
11496	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages",
11497	//   "response": {
11498	//     "$ref": "ListJobMessagesResponse"
11499	//   },
11500	//   "scopes": [
11501	//     "https://www.googleapis.com/auth/cloud-platform",
11502	//     "https://www.googleapis.com/auth/compute",
11503	//     "https://www.googleapis.com/auth/compute.readonly",
11504	//     "https://www.googleapis.com/auth/userinfo.email"
11505	//   ]
11506	// }
11507
11508}
11509
11510// Pages invokes f for each page of results.
11511// A non-nil error returned from f will halt the iteration.
11512// The provided context supersedes any context provided to the Context method.
11513func (c *ProjectsLocationsJobsMessagesListCall) Pages(ctx context.Context, f func(*ListJobMessagesResponse) error) error {
11514	c.ctx_ = ctx
11515	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
11516	for {
11517		x, err := c.Do()
11518		if err != nil {
11519			return err
11520		}
11521		if err := f(x); err != nil {
11522			return err
11523		}
11524		if x.NextPageToken == "" {
11525			return nil
11526		}
11527		c.PageToken(x.NextPageToken)
11528	}
11529}
11530
11531// method id "dataflow.projects.locations.jobs.workItems.lease":
11532
11533type ProjectsLocationsJobsWorkItemsLeaseCall struct {
11534	s                    *Service
11535	projectId            string
11536	location             string
11537	jobId                string
11538	leaseworkitemrequest *LeaseWorkItemRequest
11539	urlParams_           gensupport.URLParams
11540	ctx_                 context.Context
11541	header_              http.Header
11542}
11543
11544// Lease: Leases a dataflow WorkItem to run.
11545func (r *ProjectsLocationsJobsWorkItemsService) Lease(projectId string, location string, jobId string, leaseworkitemrequest *LeaseWorkItemRequest) *ProjectsLocationsJobsWorkItemsLeaseCall {
11546	c := &ProjectsLocationsJobsWorkItemsLeaseCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11547	c.projectId = projectId
11548	c.location = location
11549	c.jobId = jobId
11550	c.leaseworkitemrequest = leaseworkitemrequest
11551	return c
11552}
11553
11554// Fields allows partial responses to be retrieved. See
11555// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11556// for more information.
11557func (c *ProjectsLocationsJobsWorkItemsLeaseCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsWorkItemsLeaseCall {
11558	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11559	return c
11560}
11561
11562// Context sets the context to be used in this call's Do method. Any
11563// pending HTTP request will be aborted if the provided context is
11564// canceled.
11565func (c *ProjectsLocationsJobsWorkItemsLeaseCall) Context(ctx context.Context) *ProjectsLocationsJobsWorkItemsLeaseCall {
11566	c.ctx_ = ctx
11567	return c
11568}
11569
11570// Header returns an http.Header that can be modified by the caller to
11571// add HTTP headers to the request.
11572func (c *ProjectsLocationsJobsWorkItemsLeaseCall) Header() http.Header {
11573	if c.header_ == nil {
11574		c.header_ = make(http.Header)
11575	}
11576	return c.header_
11577}
11578
11579func (c *ProjectsLocationsJobsWorkItemsLeaseCall) doRequest(alt string) (*http.Response, error) {
11580	reqHeaders := make(http.Header)
11581	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
11582	for k, v := range c.header_ {
11583		reqHeaders[k] = v
11584	}
11585	reqHeaders.Set("User-Agent", c.s.userAgent())
11586	var body io.Reader = nil
11587	body, err := googleapi.WithoutDataWrapper.JSONReader(c.leaseworkitemrequest)
11588	if err != nil {
11589		return nil, err
11590	}
11591	reqHeaders.Set("Content-Type", "application/json")
11592	c.urlParams_.Set("alt", alt)
11593	c.urlParams_.Set("prettyPrint", "false")
11594	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease")
11595	urls += "?" + c.urlParams_.Encode()
11596	req, err := http.NewRequest("POST", urls, body)
11597	if err != nil {
11598		return nil, err
11599	}
11600	req.Header = reqHeaders
11601	googleapi.Expand(req.URL, map[string]string{
11602		"projectId": c.projectId,
11603		"location":  c.location,
11604		"jobId":     c.jobId,
11605	})
11606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11607}
11608
11609// Do executes the "dataflow.projects.locations.jobs.workItems.lease" call.
11610// Exactly one of *LeaseWorkItemResponse or error will be non-nil. Any
11611// non-2xx status code is an error. Response headers are in either
11612// *LeaseWorkItemResponse.ServerResponse.Header or (if a response was
11613// returned at all) in error.(*googleapi.Error).Header. Use
11614// googleapi.IsNotModified to check whether the returned error was
11615// because http.StatusNotModified was returned.
11616func (c *ProjectsLocationsJobsWorkItemsLeaseCall) Do(opts ...googleapi.CallOption) (*LeaseWorkItemResponse, error) {
11617	gensupport.SetOptions(c.urlParams_, opts...)
11618	res, err := c.doRequest("json")
11619	if res != nil && res.StatusCode == http.StatusNotModified {
11620		if res.Body != nil {
11621			res.Body.Close()
11622		}
11623		return nil, &googleapi.Error{
11624			Code:   res.StatusCode,
11625			Header: res.Header,
11626		}
11627	}
11628	if err != nil {
11629		return nil, err
11630	}
11631	defer googleapi.CloseBody(res)
11632	if err := googleapi.CheckResponse(res); err != nil {
11633		return nil, err
11634	}
11635	ret := &LeaseWorkItemResponse{
11636		ServerResponse: googleapi.ServerResponse{
11637			Header:         res.Header,
11638			HTTPStatusCode: res.StatusCode,
11639		},
11640	}
11641	target := &ret
11642	if err := gensupport.DecodeResponse(target, res); err != nil {
11643		return nil, err
11644	}
11645	return ret, nil
11646	// {
11647	//   "description": "Leases a dataflow WorkItem to run.",
11648	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease",
11649	//   "httpMethod": "POST",
11650	//   "id": "dataflow.projects.locations.jobs.workItems.lease",
11651	//   "parameterOrder": [
11652	//     "projectId",
11653	//     "location",
11654	//     "jobId"
11655	//   ],
11656	//   "parameters": {
11657	//     "jobId": {
11658	//       "description": "Identifies the workflow job this worker belongs to.",
11659	//       "location": "path",
11660	//       "required": true,
11661	//       "type": "string"
11662	//     },
11663	//     "location": {
11664	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains the WorkItem's job.",
11665	//       "location": "path",
11666	//       "required": true,
11667	//       "type": "string"
11668	//     },
11669	//     "projectId": {
11670	//       "description": "Identifies the project this worker belongs to.",
11671	//       "location": "path",
11672	//       "required": true,
11673	//       "type": "string"
11674	//     }
11675	//   },
11676	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:lease",
11677	//   "request": {
11678	//     "$ref": "LeaseWorkItemRequest"
11679	//   },
11680	//   "response": {
11681	//     "$ref": "LeaseWorkItemResponse"
11682	//   },
11683	//   "scopes": [
11684	//     "https://www.googleapis.com/auth/cloud-platform",
11685	//     "https://www.googleapis.com/auth/compute",
11686	//     "https://www.googleapis.com/auth/compute.readonly",
11687	//     "https://www.googleapis.com/auth/userinfo.email"
11688	//   ]
11689	// }
11690
11691}
11692
11693// method id "dataflow.projects.locations.jobs.workItems.reportStatus":
11694
11695type ProjectsLocationsJobsWorkItemsReportStatusCall struct {
11696	s                           *Service
11697	projectId                   string
11698	location                    string
11699	jobId                       string
11700	reportworkitemstatusrequest *ReportWorkItemStatusRequest
11701	urlParams_                  gensupport.URLParams
11702	ctx_                        context.Context
11703	header_                     http.Header
11704}
11705
11706// ReportStatus: Reports the status of dataflow WorkItems leased by a
11707// worker.
11708func (r *ProjectsLocationsJobsWorkItemsService) ReportStatus(projectId string, location string, jobId string, reportworkitemstatusrequest *ReportWorkItemStatusRequest) *ProjectsLocationsJobsWorkItemsReportStatusCall {
11709	c := &ProjectsLocationsJobsWorkItemsReportStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11710	c.projectId = projectId
11711	c.location = location
11712	c.jobId = jobId
11713	c.reportworkitemstatusrequest = reportworkitemstatusrequest
11714	return c
11715}
11716
11717// Fields allows partial responses to be retrieved. See
11718// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11719// for more information.
11720func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) Fields(s ...googleapi.Field) *ProjectsLocationsJobsWorkItemsReportStatusCall {
11721	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11722	return c
11723}
11724
11725// Context sets the context to be used in this call's Do method. Any
11726// pending HTTP request will be aborted if the provided context is
11727// canceled.
11728func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) Context(ctx context.Context) *ProjectsLocationsJobsWorkItemsReportStatusCall {
11729	c.ctx_ = ctx
11730	return c
11731}
11732
11733// Header returns an http.Header that can be modified by the caller to
11734// add HTTP headers to the request.
11735func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) Header() http.Header {
11736	if c.header_ == nil {
11737		c.header_ = make(http.Header)
11738	}
11739	return c.header_
11740}
11741
11742func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) doRequest(alt string) (*http.Response, error) {
11743	reqHeaders := make(http.Header)
11744	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
11745	for k, v := range c.header_ {
11746		reqHeaders[k] = v
11747	}
11748	reqHeaders.Set("User-Agent", c.s.userAgent())
11749	var body io.Reader = nil
11750	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reportworkitemstatusrequest)
11751	if err != nil {
11752		return nil, err
11753	}
11754	reqHeaders.Set("Content-Type", "application/json")
11755	c.urlParams_.Set("alt", alt)
11756	c.urlParams_.Set("prettyPrint", "false")
11757	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus")
11758	urls += "?" + c.urlParams_.Encode()
11759	req, err := http.NewRequest("POST", urls, body)
11760	if err != nil {
11761		return nil, err
11762	}
11763	req.Header = reqHeaders
11764	googleapi.Expand(req.URL, map[string]string{
11765		"projectId": c.projectId,
11766		"location":  c.location,
11767		"jobId":     c.jobId,
11768	})
11769	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11770}
11771
11772// Do executes the "dataflow.projects.locations.jobs.workItems.reportStatus" call.
11773// Exactly one of *ReportWorkItemStatusResponse or error will be
11774// non-nil. Any non-2xx status code is an error. Response headers are in
11775// either *ReportWorkItemStatusResponse.ServerResponse.Header or (if a
11776// response was returned at all) in error.(*googleapi.Error).Header. Use
11777// googleapi.IsNotModified to check whether the returned error was
11778// because http.StatusNotModified was returned.
11779func (c *ProjectsLocationsJobsWorkItemsReportStatusCall) Do(opts ...googleapi.CallOption) (*ReportWorkItemStatusResponse, error) {
11780	gensupport.SetOptions(c.urlParams_, opts...)
11781	res, err := c.doRequest("json")
11782	if res != nil && res.StatusCode == http.StatusNotModified {
11783		if res.Body != nil {
11784			res.Body.Close()
11785		}
11786		return nil, &googleapi.Error{
11787			Code:   res.StatusCode,
11788			Header: res.Header,
11789		}
11790	}
11791	if err != nil {
11792		return nil, err
11793	}
11794	defer googleapi.CloseBody(res)
11795	if err := googleapi.CheckResponse(res); err != nil {
11796		return nil, err
11797	}
11798	ret := &ReportWorkItemStatusResponse{
11799		ServerResponse: googleapi.ServerResponse{
11800			Header:         res.Header,
11801			HTTPStatusCode: res.StatusCode,
11802		},
11803	}
11804	target := &ret
11805	if err := gensupport.DecodeResponse(target, res); err != nil {
11806		return nil, err
11807	}
11808	return ret, nil
11809	// {
11810	//   "description": "Reports the status of dataflow WorkItems leased by a worker.",
11811	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus",
11812	//   "httpMethod": "POST",
11813	//   "id": "dataflow.projects.locations.jobs.workItems.reportStatus",
11814	//   "parameterOrder": [
11815	//     "projectId",
11816	//     "location",
11817	//     "jobId"
11818	//   ],
11819	//   "parameters": {
11820	//     "jobId": {
11821	//       "description": "The job which the WorkItem is part of.",
11822	//       "location": "path",
11823	//       "required": true,
11824	//       "type": "string"
11825	//     },
11826	//     "location": {
11827	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains the WorkItem's job.",
11828	//       "location": "path",
11829	//       "required": true,
11830	//       "type": "string"
11831	//     },
11832	//     "projectId": {
11833	//       "description": "The project which owns the WorkItem's job.",
11834	//       "location": "path",
11835	//       "required": true,
11836	//       "type": "string"
11837	//     }
11838	//   },
11839	//   "path": "v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/workItems:reportStatus",
11840	//   "request": {
11841	//     "$ref": "ReportWorkItemStatusRequest"
11842	//   },
11843	//   "response": {
11844	//     "$ref": "ReportWorkItemStatusResponse"
11845	//   },
11846	//   "scopes": [
11847	//     "https://www.googleapis.com/auth/cloud-platform",
11848	//     "https://www.googleapis.com/auth/compute",
11849	//     "https://www.googleapis.com/auth/compute.readonly",
11850	//     "https://www.googleapis.com/auth/userinfo.email"
11851	//   ]
11852	// }
11853
11854}
11855
11856// method id "dataflow.projects.locations.sql.validate":
11857
11858type ProjectsLocationsSqlValidateCall struct {
11859	s            *Service
11860	projectId    string
11861	location     string
11862	urlParams_   gensupport.URLParams
11863	ifNoneMatch_ string
11864	ctx_         context.Context
11865	header_      http.Header
11866}
11867
11868// Validate: Validates a GoogleSQL query for Cloud Dataflow syntax. Will
11869// always
11870// confirm the given query parses correctly, and if able to look
11871// up
11872// schema information from DataCatalog, will validate that the
11873// query
11874// analyzes properly as well.
11875func (r *ProjectsLocationsSqlService) Validate(projectId string, location string) *ProjectsLocationsSqlValidateCall {
11876	c := &ProjectsLocationsSqlValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11877	c.projectId = projectId
11878	c.location = location
11879	return c
11880}
11881
11882// Query sets the optional parameter "query": The sql query to validate.
11883func (c *ProjectsLocationsSqlValidateCall) Query(query string) *ProjectsLocationsSqlValidateCall {
11884	c.urlParams_.Set("query", query)
11885	return c
11886}
11887
11888// Fields allows partial responses to be retrieved. See
11889// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11890// for more information.
11891func (c *ProjectsLocationsSqlValidateCall) Fields(s ...googleapi.Field) *ProjectsLocationsSqlValidateCall {
11892	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11893	return c
11894}
11895
11896// IfNoneMatch sets the optional parameter which makes the operation
11897// fail if the object's ETag matches the given value. This is useful for
11898// getting updates only after the object has changed since the last
11899// request. Use googleapi.IsNotModified to check whether the response
11900// error from Do is the result of In-None-Match.
11901func (c *ProjectsLocationsSqlValidateCall) IfNoneMatch(entityTag string) *ProjectsLocationsSqlValidateCall {
11902	c.ifNoneMatch_ = entityTag
11903	return c
11904}
11905
11906// Context sets the context to be used in this call's Do method. Any
11907// pending HTTP request will be aborted if the provided context is
11908// canceled.
11909func (c *ProjectsLocationsSqlValidateCall) Context(ctx context.Context) *ProjectsLocationsSqlValidateCall {
11910	c.ctx_ = ctx
11911	return c
11912}
11913
11914// Header returns an http.Header that can be modified by the caller to
11915// add HTTP headers to the request.
11916func (c *ProjectsLocationsSqlValidateCall) Header() http.Header {
11917	if c.header_ == nil {
11918		c.header_ = make(http.Header)
11919	}
11920	return c.header_
11921}
11922
11923func (c *ProjectsLocationsSqlValidateCall) doRequest(alt string) (*http.Response, error) {
11924	reqHeaders := make(http.Header)
11925	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
11926	for k, v := range c.header_ {
11927		reqHeaders[k] = v
11928	}
11929	reqHeaders.Set("User-Agent", c.s.userAgent())
11930	if c.ifNoneMatch_ != "" {
11931		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11932	}
11933	var body io.Reader = nil
11934	c.urlParams_.Set("alt", alt)
11935	c.urlParams_.Set("prettyPrint", "false")
11936	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/sql:validate")
11937	urls += "?" + c.urlParams_.Encode()
11938	req, err := http.NewRequest("GET", urls, body)
11939	if err != nil {
11940		return nil, err
11941	}
11942	req.Header = reqHeaders
11943	googleapi.Expand(req.URL, map[string]string{
11944		"projectId": c.projectId,
11945		"location":  c.location,
11946	})
11947	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11948}
11949
11950// Do executes the "dataflow.projects.locations.sql.validate" call.
11951// Exactly one of *ValidateResponse or error will be non-nil. Any
11952// non-2xx status code is an error. Response headers are in either
11953// *ValidateResponse.ServerResponse.Header or (if a response was
11954// returned at all) in error.(*googleapi.Error).Header. Use
11955// googleapi.IsNotModified to check whether the returned error was
11956// because http.StatusNotModified was returned.
11957func (c *ProjectsLocationsSqlValidateCall) Do(opts ...googleapi.CallOption) (*ValidateResponse, error) {
11958	gensupport.SetOptions(c.urlParams_, opts...)
11959	res, err := c.doRequest("json")
11960	if res != nil && res.StatusCode == http.StatusNotModified {
11961		if res.Body != nil {
11962			res.Body.Close()
11963		}
11964		return nil, &googleapi.Error{
11965			Code:   res.StatusCode,
11966			Header: res.Header,
11967		}
11968	}
11969	if err != nil {
11970		return nil, err
11971	}
11972	defer googleapi.CloseBody(res)
11973	if err := googleapi.CheckResponse(res); err != nil {
11974		return nil, err
11975	}
11976	ret := &ValidateResponse{
11977		ServerResponse: googleapi.ServerResponse{
11978			Header:         res.Header,
11979			HTTPStatusCode: res.StatusCode,
11980		},
11981	}
11982	target := &ret
11983	if err := gensupport.DecodeResponse(target, res); err != nil {
11984		return nil, err
11985	}
11986	return ret, nil
11987	// {
11988	//   "description": "Validates a GoogleSQL query for Cloud Dataflow syntax. Will always\nconfirm the given query parses correctly, and if able to look up\nschema information from DataCatalog, will validate that the query\nanalyzes properly as well.",
11989	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/sql:validate",
11990	//   "httpMethod": "GET",
11991	//   "id": "dataflow.projects.locations.sql.validate",
11992	//   "parameterOrder": [
11993	//     "projectId",
11994	//     "location"
11995	//   ],
11996	//   "parameters": {
11997	//     "location": {
11998	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to\nwhich to direct the request.",
11999	//       "location": "path",
12000	//       "required": true,
12001	//       "type": "string"
12002	//     },
12003	//     "projectId": {
12004	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
12005	//       "location": "path",
12006	//       "required": true,
12007	//       "type": "string"
12008	//     },
12009	//     "query": {
12010	//       "description": "The sql query to validate.",
12011	//       "location": "query",
12012	//       "type": "string"
12013	//     }
12014	//   },
12015	//   "path": "v1b3/projects/{projectId}/locations/{location}/sql:validate",
12016	//   "response": {
12017	//     "$ref": "ValidateResponse"
12018	//   },
12019	//   "scopes": [
12020	//     "https://www.googleapis.com/auth/cloud-platform",
12021	//     "https://www.googleapis.com/auth/userinfo.email"
12022	//   ]
12023	// }
12024
12025}
12026
12027// method id "dataflow.projects.locations.templates.create":
12028
12029type ProjectsLocationsTemplatesCreateCall struct {
12030	s                            *Service
12031	projectId                    string
12032	location                     string
12033	createjobfromtemplaterequest *CreateJobFromTemplateRequest
12034	urlParams_                   gensupport.URLParams
12035	ctx_                         context.Context
12036	header_                      http.Header
12037}
12038
12039// Create: Creates a Cloud Dataflow job from a template.
12040func (r *ProjectsLocationsTemplatesService) Create(projectId string, location string, createjobfromtemplaterequest *CreateJobFromTemplateRequest) *ProjectsLocationsTemplatesCreateCall {
12041	c := &ProjectsLocationsTemplatesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12042	c.projectId = projectId
12043	c.location = location
12044	c.createjobfromtemplaterequest = createjobfromtemplaterequest
12045	return c
12046}
12047
12048// Fields allows partial responses to be retrieved. See
12049// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12050// for more information.
12051func (c *ProjectsLocationsTemplatesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsTemplatesCreateCall {
12052	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12053	return c
12054}
12055
12056// Context sets the context to be used in this call's Do method. Any
12057// pending HTTP request will be aborted if the provided context is
12058// canceled.
12059func (c *ProjectsLocationsTemplatesCreateCall) Context(ctx context.Context) *ProjectsLocationsTemplatesCreateCall {
12060	c.ctx_ = ctx
12061	return c
12062}
12063
12064// Header returns an http.Header that can be modified by the caller to
12065// add HTTP headers to the request.
12066func (c *ProjectsLocationsTemplatesCreateCall) Header() http.Header {
12067	if c.header_ == nil {
12068		c.header_ = make(http.Header)
12069	}
12070	return c.header_
12071}
12072
12073func (c *ProjectsLocationsTemplatesCreateCall) doRequest(alt string) (*http.Response, error) {
12074	reqHeaders := make(http.Header)
12075	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
12076	for k, v := range c.header_ {
12077		reqHeaders[k] = v
12078	}
12079	reqHeaders.Set("User-Agent", c.s.userAgent())
12080	var body io.Reader = nil
12081	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createjobfromtemplaterequest)
12082	if err != nil {
12083		return nil, err
12084	}
12085	reqHeaders.Set("Content-Type", "application/json")
12086	c.urlParams_.Set("alt", alt)
12087	c.urlParams_.Set("prettyPrint", "false")
12088	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/templates")
12089	urls += "?" + c.urlParams_.Encode()
12090	req, err := http.NewRequest("POST", urls, body)
12091	if err != nil {
12092		return nil, err
12093	}
12094	req.Header = reqHeaders
12095	googleapi.Expand(req.URL, map[string]string{
12096		"projectId": c.projectId,
12097		"location":  c.location,
12098	})
12099	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12100}
12101
12102// Do executes the "dataflow.projects.locations.templates.create" call.
12103// Exactly one of *Job or error will be non-nil. Any non-2xx status code
12104// is an error. Response headers are in either
12105// *Job.ServerResponse.Header or (if a response was returned at all) in
12106// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
12107// whether the returned error was because http.StatusNotModified was
12108// returned.
12109func (c *ProjectsLocationsTemplatesCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
12110	gensupport.SetOptions(c.urlParams_, opts...)
12111	res, err := c.doRequest("json")
12112	if res != nil && res.StatusCode == http.StatusNotModified {
12113		if res.Body != nil {
12114			res.Body.Close()
12115		}
12116		return nil, &googleapi.Error{
12117			Code:   res.StatusCode,
12118			Header: res.Header,
12119		}
12120	}
12121	if err != nil {
12122		return nil, err
12123	}
12124	defer googleapi.CloseBody(res)
12125	if err := googleapi.CheckResponse(res); err != nil {
12126		return nil, err
12127	}
12128	ret := &Job{
12129		ServerResponse: googleapi.ServerResponse{
12130			Header:         res.Header,
12131			HTTPStatusCode: res.StatusCode,
12132		},
12133	}
12134	target := &ret
12135	if err := gensupport.DecodeResponse(target, res); err != nil {
12136		return nil, err
12137	}
12138	return ret, nil
12139	// {
12140	//   "description": "Creates a Cloud Dataflow job from a template.",
12141	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates",
12142	//   "httpMethod": "POST",
12143	//   "id": "dataflow.projects.locations.templates.create",
12144	//   "parameterOrder": [
12145	//     "projectId",
12146	//     "location"
12147	//   ],
12148	//   "parameters": {
12149	//     "location": {
12150	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to\nwhich to direct the request.",
12151	//       "location": "path",
12152	//       "required": true,
12153	//       "type": "string"
12154	//     },
12155	//     "projectId": {
12156	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
12157	//       "location": "path",
12158	//       "required": true,
12159	//       "type": "string"
12160	//     }
12161	//   },
12162	//   "path": "v1b3/projects/{projectId}/locations/{location}/templates",
12163	//   "request": {
12164	//     "$ref": "CreateJobFromTemplateRequest"
12165	//   },
12166	//   "response": {
12167	//     "$ref": "Job"
12168	//   },
12169	//   "scopes": [
12170	//     "https://www.googleapis.com/auth/cloud-platform",
12171	//     "https://www.googleapis.com/auth/compute",
12172	//     "https://www.googleapis.com/auth/compute.readonly",
12173	//     "https://www.googleapis.com/auth/userinfo.email"
12174	//   ]
12175	// }
12176
12177}
12178
12179// method id "dataflow.projects.locations.templates.get":
12180
12181type ProjectsLocationsTemplatesGetCall struct {
12182	s            *Service
12183	projectId    string
12184	location     string
12185	urlParams_   gensupport.URLParams
12186	ifNoneMatch_ string
12187	ctx_         context.Context
12188	header_      http.Header
12189}
12190
12191// Get: Get the template associated with a template.
12192func (r *ProjectsLocationsTemplatesService) Get(projectId string, location string) *ProjectsLocationsTemplatesGetCall {
12193	c := &ProjectsLocationsTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12194	c.projectId = projectId
12195	c.location = location
12196	return c
12197}
12198
12199// GcsPath sets the optional parameter "gcsPath": Required. A Cloud
12200// Storage path to the template from which to
12201// create the job.
12202// Must be valid Cloud Storage URL, beginning with 'gs://'.
12203func (c *ProjectsLocationsTemplatesGetCall) GcsPath(gcsPath string) *ProjectsLocationsTemplatesGetCall {
12204	c.urlParams_.Set("gcsPath", gcsPath)
12205	return c
12206}
12207
12208// View sets the optional parameter "view": The view to retrieve.
12209// Defaults to METADATA_ONLY.
12210//
12211// Possible values:
12212//   "METADATA_ONLY"
12213func (c *ProjectsLocationsTemplatesGetCall) View(view string) *ProjectsLocationsTemplatesGetCall {
12214	c.urlParams_.Set("view", view)
12215	return c
12216}
12217
12218// Fields allows partial responses to be retrieved. See
12219// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12220// for more information.
12221func (c *ProjectsLocationsTemplatesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsTemplatesGetCall {
12222	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12223	return c
12224}
12225
12226// IfNoneMatch sets the optional parameter which makes the operation
12227// fail if the object's ETag matches the given value. This is useful for
12228// getting updates only after the object has changed since the last
12229// request. Use googleapi.IsNotModified to check whether the response
12230// error from Do is the result of In-None-Match.
12231func (c *ProjectsLocationsTemplatesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsTemplatesGetCall {
12232	c.ifNoneMatch_ = entityTag
12233	return c
12234}
12235
12236// Context sets the context to be used in this call's Do method. Any
12237// pending HTTP request will be aborted if the provided context is
12238// canceled.
12239func (c *ProjectsLocationsTemplatesGetCall) Context(ctx context.Context) *ProjectsLocationsTemplatesGetCall {
12240	c.ctx_ = ctx
12241	return c
12242}
12243
12244// Header returns an http.Header that can be modified by the caller to
12245// add HTTP headers to the request.
12246func (c *ProjectsLocationsTemplatesGetCall) Header() http.Header {
12247	if c.header_ == nil {
12248		c.header_ = make(http.Header)
12249	}
12250	return c.header_
12251}
12252
12253func (c *ProjectsLocationsTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
12254	reqHeaders := make(http.Header)
12255	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
12256	for k, v := range c.header_ {
12257		reqHeaders[k] = v
12258	}
12259	reqHeaders.Set("User-Agent", c.s.userAgent())
12260	if c.ifNoneMatch_ != "" {
12261		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12262	}
12263	var body io.Reader = nil
12264	c.urlParams_.Set("alt", alt)
12265	c.urlParams_.Set("prettyPrint", "false")
12266	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/templates:get")
12267	urls += "?" + c.urlParams_.Encode()
12268	req, err := http.NewRequest("GET", urls, body)
12269	if err != nil {
12270		return nil, err
12271	}
12272	req.Header = reqHeaders
12273	googleapi.Expand(req.URL, map[string]string{
12274		"projectId": c.projectId,
12275		"location":  c.location,
12276	})
12277	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12278}
12279
12280// Do executes the "dataflow.projects.locations.templates.get" call.
12281// Exactly one of *GetTemplateResponse or error will be non-nil. Any
12282// non-2xx status code is an error. Response headers are in either
12283// *GetTemplateResponse.ServerResponse.Header or (if a response was
12284// returned at all) in error.(*googleapi.Error).Header. Use
12285// googleapi.IsNotModified to check whether the returned error was
12286// because http.StatusNotModified was returned.
12287func (c *ProjectsLocationsTemplatesGetCall) Do(opts ...googleapi.CallOption) (*GetTemplateResponse, error) {
12288	gensupport.SetOptions(c.urlParams_, opts...)
12289	res, err := c.doRequest("json")
12290	if res != nil && res.StatusCode == http.StatusNotModified {
12291		if res.Body != nil {
12292			res.Body.Close()
12293		}
12294		return nil, &googleapi.Error{
12295			Code:   res.StatusCode,
12296			Header: res.Header,
12297		}
12298	}
12299	if err != nil {
12300		return nil, err
12301	}
12302	defer googleapi.CloseBody(res)
12303	if err := googleapi.CheckResponse(res); err != nil {
12304		return nil, err
12305	}
12306	ret := &GetTemplateResponse{
12307		ServerResponse: googleapi.ServerResponse{
12308			Header:         res.Header,
12309			HTTPStatusCode: res.StatusCode,
12310		},
12311	}
12312	target := &ret
12313	if err := gensupport.DecodeResponse(target, res); err != nil {
12314		return nil, err
12315	}
12316	return ret, nil
12317	// {
12318	//   "description": "Get the template associated with a template.",
12319	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates:get",
12320	//   "httpMethod": "GET",
12321	//   "id": "dataflow.projects.locations.templates.get",
12322	//   "parameterOrder": [
12323	//     "projectId",
12324	//     "location"
12325	//   ],
12326	//   "parameters": {
12327	//     "gcsPath": {
12328	//       "description": "Required. A Cloud Storage path to the template from which to\ncreate the job.\nMust be valid Cloud Storage URL, beginning with 'gs://'.",
12329	//       "location": "query",
12330	//       "type": "string"
12331	//     },
12332	//     "location": {
12333	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to\nwhich to direct the request.",
12334	//       "location": "path",
12335	//       "required": true,
12336	//       "type": "string"
12337	//     },
12338	//     "projectId": {
12339	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
12340	//       "location": "path",
12341	//       "required": true,
12342	//       "type": "string"
12343	//     },
12344	//     "view": {
12345	//       "description": "The view to retrieve. Defaults to METADATA_ONLY.",
12346	//       "enum": [
12347	//         "METADATA_ONLY"
12348	//       ],
12349	//       "location": "query",
12350	//       "type": "string"
12351	//     }
12352	//   },
12353	//   "path": "v1b3/projects/{projectId}/locations/{location}/templates:get",
12354	//   "response": {
12355	//     "$ref": "GetTemplateResponse"
12356	//   },
12357	//   "scopes": [
12358	//     "https://www.googleapis.com/auth/cloud-platform",
12359	//     "https://www.googleapis.com/auth/compute",
12360	//     "https://www.googleapis.com/auth/compute.readonly",
12361	//     "https://www.googleapis.com/auth/userinfo.email"
12362	//   ]
12363	// }
12364
12365}
12366
12367// method id "dataflow.projects.locations.templates.launch":
12368
12369type ProjectsLocationsTemplatesLaunchCall struct {
12370	s                        *Service
12371	projectId                string
12372	location                 string
12373	launchtemplateparameters *LaunchTemplateParameters
12374	urlParams_               gensupport.URLParams
12375	ctx_                     context.Context
12376	header_                  http.Header
12377}
12378
12379// Launch: Launch a template.
12380func (r *ProjectsLocationsTemplatesService) Launch(projectId string, location string, launchtemplateparameters *LaunchTemplateParameters) *ProjectsLocationsTemplatesLaunchCall {
12381	c := &ProjectsLocationsTemplatesLaunchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12382	c.projectId = projectId
12383	c.location = location
12384	c.launchtemplateparameters = launchtemplateparameters
12385	return c
12386}
12387
12388// DynamicTemplateGcsPath sets the optional parameter
12389// "dynamicTemplate.gcsPath": Path to dynamic template spec file on
12390// GCS.
12391// The file must be a Json serialized DynamicTemplateFieSpec object.
12392func (c *ProjectsLocationsTemplatesLaunchCall) DynamicTemplateGcsPath(dynamicTemplateGcsPath string) *ProjectsLocationsTemplatesLaunchCall {
12393	c.urlParams_.Set("dynamicTemplate.gcsPath", dynamicTemplateGcsPath)
12394	return c
12395}
12396
12397// DynamicTemplateStagingLocation sets the optional parameter
12398// "dynamicTemplate.stagingLocation": Cloud Storage path for staging
12399// dependencies.
12400// Must be a valid Cloud Storage URL, beginning with `gs://`.
12401func (c *ProjectsLocationsTemplatesLaunchCall) DynamicTemplateStagingLocation(dynamicTemplateStagingLocation string) *ProjectsLocationsTemplatesLaunchCall {
12402	c.urlParams_.Set("dynamicTemplate.stagingLocation", dynamicTemplateStagingLocation)
12403	return c
12404}
12405
12406// GcsPath sets the optional parameter "gcsPath": A Cloud Storage path
12407// to the template from which to create
12408// the job.
12409// Must be valid Cloud Storage URL, beginning with 'gs://'.
12410func (c *ProjectsLocationsTemplatesLaunchCall) GcsPath(gcsPath string) *ProjectsLocationsTemplatesLaunchCall {
12411	c.urlParams_.Set("gcsPath", gcsPath)
12412	return c
12413}
12414
12415// ValidateOnly sets the optional parameter "validateOnly": If true, the
12416// request is validated but not actually executed.
12417// Defaults to false.
12418func (c *ProjectsLocationsTemplatesLaunchCall) ValidateOnly(validateOnly bool) *ProjectsLocationsTemplatesLaunchCall {
12419	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
12420	return c
12421}
12422
12423// Fields allows partial responses to be retrieved. See
12424// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12425// for more information.
12426func (c *ProjectsLocationsTemplatesLaunchCall) Fields(s ...googleapi.Field) *ProjectsLocationsTemplatesLaunchCall {
12427	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12428	return c
12429}
12430
12431// Context sets the context to be used in this call's Do method. Any
12432// pending HTTP request will be aborted if the provided context is
12433// canceled.
12434func (c *ProjectsLocationsTemplatesLaunchCall) Context(ctx context.Context) *ProjectsLocationsTemplatesLaunchCall {
12435	c.ctx_ = ctx
12436	return c
12437}
12438
12439// Header returns an http.Header that can be modified by the caller to
12440// add HTTP headers to the request.
12441func (c *ProjectsLocationsTemplatesLaunchCall) Header() http.Header {
12442	if c.header_ == nil {
12443		c.header_ = make(http.Header)
12444	}
12445	return c.header_
12446}
12447
12448func (c *ProjectsLocationsTemplatesLaunchCall) doRequest(alt string) (*http.Response, error) {
12449	reqHeaders := make(http.Header)
12450	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
12451	for k, v := range c.header_ {
12452		reqHeaders[k] = v
12453	}
12454	reqHeaders.Set("User-Agent", c.s.userAgent())
12455	var body io.Reader = nil
12456	body, err := googleapi.WithoutDataWrapper.JSONReader(c.launchtemplateparameters)
12457	if err != nil {
12458		return nil, err
12459	}
12460	reqHeaders.Set("Content-Type", "application/json")
12461	c.urlParams_.Set("alt", alt)
12462	c.urlParams_.Set("prettyPrint", "false")
12463	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/locations/{location}/templates:launch")
12464	urls += "?" + c.urlParams_.Encode()
12465	req, err := http.NewRequest("POST", urls, body)
12466	if err != nil {
12467		return nil, err
12468	}
12469	req.Header = reqHeaders
12470	googleapi.Expand(req.URL, map[string]string{
12471		"projectId": c.projectId,
12472		"location":  c.location,
12473	})
12474	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12475}
12476
12477// Do executes the "dataflow.projects.locations.templates.launch" call.
12478// Exactly one of *LaunchTemplateResponse or error will be non-nil. Any
12479// non-2xx status code is an error. Response headers are in either
12480// *LaunchTemplateResponse.ServerResponse.Header or (if a response was
12481// returned at all) in error.(*googleapi.Error).Header. Use
12482// googleapi.IsNotModified to check whether the returned error was
12483// because http.StatusNotModified was returned.
12484func (c *ProjectsLocationsTemplatesLaunchCall) Do(opts ...googleapi.CallOption) (*LaunchTemplateResponse, error) {
12485	gensupport.SetOptions(c.urlParams_, opts...)
12486	res, err := c.doRequest("json")
12487	if res != nil && res.StatusCode == http.StatusNotModified {
12488		if res.Body != nil {
12489			res.Body.Close()
12490		}
12491		return nil, &googleapi.Error{
12492			Code:   res.StatusCode,
12493			Header: res.Header,
12494		}
12495	}
12496	if err != nil {
12497		return nil, err
12498	}
12499	defer googleapi.CloseBody(res)
12500	if err := googleapi.CheckResponse(res); err != nil {
12501		return nil, err
12502	}
12503	ret := &LaunchTemplateResponse{
12504		ServerResponse: googleapi.ServerResponse{
12505			Header:         res.Header,
12506			HTTPStatusCode: res.StatusCode,
12507		},
12508	}
12509	target := &ret
12510	if err := gensupport.DecodeResponse(target, res); err != nil {
12511		return nil, err
12512	}
12513	return ret, nil
12514	// {
12515	//   "description": "Launch a template.",
12516	//   "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates:launch",
12517	//   "httpMethod": "POST",
12518	//   "id": "dataflow.projects.locations.templates.launch",
12519	//   "parameterOrder": [
12520	//     "projectId",
12521	//     "location"
12522	//   ],
12523	//   "parameters": {
12524	//     "dynamicTemplate.gcsPath": {
12525	//       "description": "Path to dynamic template spec file on GCS.\nThe file must be a Json serialized DynamicTemplateFieSpec object.",
12526	//       "location": "query",
12527	//       "type": "string"
12528	//     },
12529	//     "dynamicTemplate.stagingLocation": {
12530	//       "description": "Cloud Storage path for staging dependencies.\nMust be a valid Cloud Storage URL, beginning with `gs://`.",
12531	//       "location": "query",
12532	//       "type": "string"
12533	//     },
12534	//     "gcsPath": {
12535	//       "description": "A Cloud Storage path to the template from which to create\nthe job.\nMust be valid Cloud Storage URL, beginning with 'gs://'.",
12536	//       "location": "query",
12537	//       "type": "string"
12538	//     },
12539	//     "location": {
12540	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to\nwhich to direct the request.",
12541	//       "location": "path",
12542	//       "required": true,
12543	//       "type": "string"
12544	//     },
12545	//     "projectId": {
12546	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
12547	//       "location": "path",
12548	//       "required": true,
12549	//       "type": "string"
12550	//     },
12551	//     "validateOnly": {
12552	//       "description": "If true, the request is validated but not actually executed.\nDefaults to false.",
12553	//       "location": "query",
12554	//       "type": "boolean"
12555	//     }
12556	//   },
12557	//   "path": "v1b3/projects/{projectId}/locations/{location}/templates:launch",
12558	//   "request": {
12559	//     "$ref": "LaunchTemplateParameters"
12560	//   },
12561	//   "response": {
12562	//     "$ref": "LaunchTemplateResponse"
12563	//   },
12564	//   "scopes": [
12565	//     "https://www.googleapis.com/auth/cloud-platform",
12566	//     "https://www.googleapis.com/auth/compute",
12567	//     "https://www.googleapis.com/auth/compute.readonly",
12568	//     "https://www.googleapis.com/auth/userinfo.email"
12569	//   ]
12570	// }
12571
12572}
12573
12574// method id "dataflow.projects.templates.create":
12575
12576type ProjectsTemplatesCreateCall struct {
12577	s                            *Service
12578	projectId                    string
12579	createjobfromtemplaterequest *CreateJobFromTemplateRequest
12580	urlParams_                   gensupport.URLParams
12581	ctx_                         context.Context
12582	header_                      http.Header
12583}
12584
12585// Create: Creates a Cloud Dataflow job from a template.
12586func (r *ProjectsTemplatesService) Create(projectId string, createjobfromtemplaterequest *CreateJobFromTemplateRequest) *ProjectsTemplatesCreateCall {
12587	c := &ProjectsTemplatesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12588	c.projectId = projectId
12589	c.createjobfromtemplaterequest = createjobfromtemplaterequest
12590	return c
12591}
12592
12593// Fields allows partial responses to be retrieved. See
12594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12595// for more information.
12596func (c *ProjectsTemplatesCreateCall) Fields(s ...googleapi.Field) *ProjectsTemplatesCreateCall {
12597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12598	return c
12599}
12600
12601// Context sets the context to be used in this call's Do method. Any
12602// pending HTTP request will be aborted if the provided context is
12603// canceled.
12604func (c *ProjectsTemplatesCreateCall) Context(ctx context.Context) *ProjectsTemplatesCreateCall {
12605	c.ctx_ = ctx
12606	return c
12607}
12608
12609// Header returns an http.Header that can be modified by the caller to
12610// add HTTP headers to the request.
12611func (c *ProjectsTemplatesCreateCall) Header() http.Header {
12612	if c.header_ == nil {
12613		c.header_ = make(http.Header)
12614	}
12615	return c.header_
12616}
12617
12618func (c *ProjectsTemplatesCreateCall) doRequest(alt string) (*http.Response, error) {
12619	reqHeaders := make(http.Header)
12620	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
12621	for k, v := range c.header_ {
12622		reqHeaders[k] = v
12623	}
12624	reqHeaders.Set("User-Agent", c.s.userAgent())
12625	var body io.Reader = nil
12626	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createjobfromtemplaterequest)
12627	if err != nil {
12628		return nil, err
12629	}
12630	reqHeaders.Set("Content-Type", "application/json")
12631	c.urlParams_.Set("alt", alt)
12632	c.urlParams_.Set("prettyPrint", "false")
12633	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/templates")
12634	urls += "?" + c.urlParams_.Encode()
12635	req, err := http.NewRequest("POST", urls, body)
12636	if err != nil {
12637		return nil, err
12638	}
12639	req.Header = reqHeaders
12640	googleapi.Expand(req.URL, map[string]string{
12641		"projectId": c.projectId,
12642	})
12643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12644}
12645
12646// Do executes the "dataflow.projects.templates.create" call.
12647// Exactly one of *Job or error will be non-nil. Any non-2xx status code
12648// is an error. Response headers are in either
12649// *Job.ServerResponse.Header or (if a response was returned at all) in
12650// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
12651// whether the returned error was because http.StatusNotModified was
12652// returned.
12653func (c *ProjectsTemplatesCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
12654	gensupport.SetOptions(c.urlParams_, opts...)
12655	res, err := c.doRequest("json")
12656	if res != nil && res.StatusCode == http.StatusNotModified {
12657		if res.Body != nil {
12658			res.Body.Close()
12659		}
12660		return nil, &googleapi.Error{
12661			Code:   res.StatusCode,
12662			Header: res.Header,
12663		}
12664	}
12665	if err != nil {
12666		return nil, err
12667	}
12668	defer googleapi.CloseBody(res)
12669	if err := googleapi.CheckResponse(res); err != nil {
12670		return nil, err
12671	}
12672	ret := &Job{
12673		ServerResponse: googleapi.ServerResponse{
12674			Header:         res.Header,
12675			HTTPStatusCode: res.StatusCode,
12676		},
12677	}
12678	target := &ret
12679	if err := gensupport.DecodeResponse(target, res); err != nil {
12680		return nil, err
12681	}
12682	return ret, nil
12683	// {
12684	//   "description": "Creates a Cloud Dataflow job from a template.",
12685	//   "flatPath": "v1b3/projects/{projectId}/templates",
12686	//   "httpMethod": "POST",
12687	//   "id": "dataflow.projects.templates.create",
12688	//   "parameterOrder": [
12689	//     "projectId"
12690	//   ],
12691	//   "parameters": {
12692	//     "projectId": {
12693	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
12694	//       "location": "path",
12695	//       "required": true,
12696	//       "type": "string"
12697	//     }
12698	//   },
12699	//   "path": "v1b3/projects/{projectId}/templates",
12700	//   "request": {
12701	//     "$ref": "CreateJobFromTemplateRequest"
12702	//   },
12703	//   "response": {
12704	//     "$ref": "Job"
12705	//   },
12706	//   "scopes": [
12707	//     "https://www.googleapis.com/auth/cloud-platform",
12708	//     "https://www.googleapis.com/auth/compute",
12709	//     "https://www.googleapis.com/auth/compute.readonly",
12710	//     "https://www.googleapis.com/auth/userinfo.email"
12711	//   ]
12712	// }
12713
12714}
12715
12716// method id "dataflow.projects.templates.get":
12717
12718type ProjectsTemplatesGetCall struct {
12719	s            *Service
12720	projectId    string
12721	urlParams_   gensupport.URLParams
12722	ifNoneMatch_ string
12723	ctx_         context.Context
12724	header_      http.Header
12725}
12726
12727// Get: Get the template associated with a template.
12728func (r *ProjectsTemplatesService) Get(projectId string) *ProjectsTemplatesGetCall {
12729	c := &ProjectsTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12730	c.projectId = projectId
12731	return c
12732}
12733
12734// GcsPath sets the optional parameter "gcsPath": Required. A Cloud
12735// Storage path to the template from which to
12736// create the job.
12737// Must be valid Cloud Storage URL, beginning with 'gs://'.
12738func (c *ProjectsTemplatesGetCall) GcsPath(gcsPath string) *ProjectsTemplatesGetCall {
12739	c.urlParams_.Set("gcsPath", gcsPath)
12740	return c
12741}
12742
12743// Location sets the optional parameter "location": The [regional
12744// endpoint]
12745// (https://cloud.google.com/dataflow/docs/concepts/regional-en
12746// dpoints) to
12747// which to direct the request.
12748func (c *ProjectsTemplatesGetCall) Location(location string) *ProjectsTemplatesGetCall {
12749	c.urlParams_.Set("location", location)
12750	return c
12751}
12752
12753// View sets the optional parameter "view": The view to retrieve.
12754// Defaults to METADATA_ONLY.
12755//
12756// Possible values:
12757//   "METADATA_ONLY"
12758func (c *ProjectsTemplatesGetCall) View(view string) *ProjectsTemplatesGetCall {
12759	c.urlParams_.Set("view", view)
12760	return c
12761}
12762
12763// Fields allows partial responses to be retrieved. See
12764// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12765// for more information.
12766func (c *ProjectsTemplatesGetCall) Fields(s ...googleapi.Field) *ProjectsTemplatesGetCall {
12767	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12768	return c
12769}
12770
12771// IfNoneMatch sets the optional parameter which makes the operation
12772// fail if the object's ETag matches the given value. This is useful for
12773// getting updates only after the object has changed since the last
12774// request. Use googleapi.IsNotModified to check whether the response
12775// error from Do is the result of In-None-Match.
12776func (c *ProjectsTemplatesGetCall) IfNoneMatch(entityTag string) *ProjectsTemplatesGetCall {
12777	c.ifNoneMatch_ = entityTag
12778	return c
12779}
12780
12781// Context sets the context to be used in this call's Do method. Any
12782// pending HTTP request will be aborted if the provided context is
12783// canceled.
12784func (c *ProjectsTemplatesGetCall) Context(ctx context.Context) *ProjectsTemplatesGetCall {
12785	c.ctx_ = ctx
12786	return c
12787}
12788
12789// Header returns an http.Header that can be modified by the caller to
12790// add HTTP headers to the request.
12791func (c *ProjectsTemplatesGetCall) Header() http.Header {
12792	if c.header_ == nil {
12793		c.header_ = make(http.Header)
12794	}
12795	return c.header_
12796}
12797
12798func (c *ProjectsTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
12799	reqHeaders := make(http.Header)
12800	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
12801	for k, v := range c.header_ {
12802		reqHeaders[k] = v
12803	}
12804	reqHeaders.Set("User-Agent", c.s.userAgent())
12805	if c.ifNoneMatch_ != "" {
12806		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12807	}
12808	var body io.Reader = nil
12809	c.urlParams_.Set("alt", alt)
12810	c.urlParams_.Set("prettyPrint", "false")
12811	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/templates:get")
12812	urls += "?" + c.urlParams_.Encode()
12813	req, err := http.NewRequest("GET", urls, body)
12814	if err != nil {
12815		return nil, err
12816	}
12817	req.Header = reqHeaders
12818	googleapi.Expand(req.URL, map[string]string{
12819		"projectId": c.projectId,
12820	})
12821	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12822}
12823
12824// Do executes the "dataflow.projects.templates.get" call.
12825// Exactly one of *GetTemplateResponse or error will be non-nil. Any
12826// non-2xx status code is an error. Response headers are in either
12827// *GetTemplateResponse.ServerResponse.Header or (if a response was
12828// returned at all) in error.(*googleapi.Error).Header. Use
12829// googleapi.IsNotModified to check whether the returned error was
12830// because http.StatusNotModified was returned.
12831func (c *ProjectsTemplatesGetCall) Do(opts ...googleapi.CallOption) (*GetTemplateResponse, error) {
12832	gensupport.SetOptions(c.urlParams_, opts...)
12833	res, err := c.doRequest("json")
12834	if res != nil && res.StatusCode == http.StatusNotModified {
12835		if res.Body != nil {
12836			res.Body.Close()
12837		}
12838		return nil, &googleapi.Error{
12839			Code:   res.StatusCode,
12840			Header: res.Header,
12841		}
12842	}
12843	if err != nil {
12844		return nil, err
12845	}
12846	defer googleapi.CloseBody(res)
12847	if err := googleapi.CheckResponse(res); err != nil {
12848		return nil, err
12849	}
12850	ret := &GetTemplateResponse{
12851		ServerResponse: googleapi.ServerResponse{
12852			Header:         res.Header,
12853			HTTPStatusCode: res.StatusCode,
12854		},
12855	}
12856	target := &ret
12857	if err := gensupport.DecodeResponse(target, res); err != nil {
12858		return nil, err
12859	}
12860	return ret, nil
12861	// {
12862	//   "description": "Get the template associated with a template.",
12863	//   "flatPath": "v1b3/projects/{projectId}/templates:get",
12864	//   "httpMethod": "GET",
12865	//   "id": "dataflow.projects.templates.get",
12866	//   "parameterOrder": [
12867	//     "projectId"
12868	//   ],
12869	//   "parameters": {
12870	//     "gcsPath": {
12871	//       "description": "Required. A Cloud Storage path to the template from which to\ncreate the job.\nMust be valid Cloud Storage URL, beginning with 'gs://'.",
12872	//       "location": "query",
12873	//       "type": "string"
12874	//     },
12875	//     "location": {
12876	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to\nwhich to direct the request.",
12877	//       "location": "query",
12878	//       "type": "string"
12879	//     },
12880	//     "projectId": {
12881	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
12882	//       "location": "path",
12883	//       "required": true,
12884	//       "type": "string"
12885	//     },
12886	//     "view": {
12887	//       "description": "The view to retrieve. Defaults to METADATA_ONLY.",
12888	//       "enum": [
12889	//         "METADATA_ONLY"
12890	//       ],
12891	//       "location": "query",
12892	//       "type": "string"
12893	//     }
12894	//   },
12895	//   "path": "v1b3/projects/{projectId}/templates:get",
12896	//   "response": {
12897	//     "$ref": "GetTemplateResponse"
12898	//   },
12899	//   "scopes": [
12900	//     "https://www.googleapis.com/auth/cloud-platform",
12901	//     "https://www.googleapis.com/auth/compute",
12902	//     "https://www.googleapis.com/auth/compute.readonly",
12903	//     "https://www.googleapis.com/auth/userinfo.email"
12904	//   ]
12905	// }
12906
12907}
12908
12909// method id "dataflow.projects.templates.launch":
12910
12911type ProjectsTemplatesLaunchCall struct {
12912	s                        *Service
12913	projectId                string
12914	launchtemplateparameters *LaunchTemplateParameters
12915	urlParams_               gensupport.URLParams
12916	ctx_                     context.Context
12917	header_                  http.Header
12918}
12919
12920// Launch: Launch a template.
12921func (r *ProjectsTemplatesService) Launch(projectId string, launchtemplateparameters *LaunchTemplateParameters) *ProjectsTemplatesLaunchCall {
12922	c := &ProjectsTemplatesLaunchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12923	c.projectId = projectId
12924	c.launchtemplateparameters = launchtemplateparameters
12925	return c
12926}
12927
12928// DynamicTemplateGcsPath sets the optional parameter
12929// "dynamicTemplate.gcsPath": Path to dynamic template spec file on
12930// GCS.
12931// The file must be a Json serialized DynamicTemplateFieSpec object.
12932func (c *ProjectsTemplatesLaunchCall) DynamicTemplateGcsPath(dynamicTemplateGcsPath string) *ProjectsTemplatesLaunchCall {
12933	c.urlParams_.Set("dynamicTemplate.gcsPath", dynamicTemplateGcsPath)
12934	return c
12935}
12936
12937// DynamicTemplateStagingLocation sets the optional parameter
12938// "dynamicTemplate.stagingLocation": Cloud Storage path for staging
12939// dependencies.
12940// Must be a valid Cloud Storage URL, beginning with `gs://`.
12941func (c *ProjectsTemplatesLaunchCall) DynamicTemplateStagingLocation(dynamicTemplateStagingLocation string) *ProjectsTemplatesLaunchCall {
12942	c.urlParams_.Set("dynamicTemplate.stagingLocation", dynamicTemplateStagingLocation)
12943	return c
12944}
12945
12946// GcsPath sets the optional parameter "gcsPath": A Cloud Storage path
12947// to the template from which to create
12948// the job.
12949// Must be valid Cloud Storage URL, beginning with 'gs://'.
12950func (c *ProjectsTemplatesLaunchCall) GcsPath(gcsPath string) *ProjectsTemplatesLaunchCall {
12951	c.urlParams_.Set("gcsPath", gcsPath)
12952	return c
12953}
12954
12955// Location sets the optional parameter "location": The [regional
12956// endpoint]
12957// (https://cloud.google.com/dataflow/docs/concepts/regional-en
12958// dpoints) to
12959// which to direct the request.
12960func (c *ProjectsTemplatesLaunchCall) Location(location string) *ProjectsTemplatesLaunchCall {
12961	c.urlParams_.Set("location", location)
12962	return c
12963}
12964
12965// ValidateOnly sets the optional parameter "validateOnly": If true, the
12966// request is validated but not actually executed.
12967// Defaults to false.
12968func (c *ProjectsTemplatesLaunchCall) ValidateOnly(validateOnly bool) *ProjectsTemplatesLaunchCall {
12969	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
12970	return c
12971}
12972
12973// Fields allows partial responses to be retrieved. See
12974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12975// for more information.
12976func (c *ProjectsTemplatesLaunchCall) Fields(s ...googleapi.Field) *ProjectsTemplatesLaunchCall {
12977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12978	return c
12979}
12980
12981// Context sets the context to be used in this call's Do method. Any
12982// pending HTTP request will be aborted if the provided context is
12983// canceled.
12984func (c *ProjectsTemplatesLaunchCall) Context(ctx context.Context) *ProjectsTemplatesLaunchCall {
12985	c.ctx_ = ctx
12986	return c
12987}
12988
12989// Header returns an http.Header that can be modified by the caller to
12990// add HTTP headers to the request.
12991func (c *ProjectsTemplatesLaunchCall) Header() http.Header {
12992	if c.header_ == nil {
12993		c.header_ = make(http.Header)
12994	}
12995	return c.header_
12996}
12997
12998func (c *ProjectsTemplatesLaunchCall) doRequest(alt string) (*http.Response, error) {
12999	reqHeaders := make(http.Header)
13000	reqHeaders.Set("x-goog-api-client", "gl-go/1.13.4 gdcl/20191114")
13001	for k, v := range c.header_ {
13002		reqHeaders[k] = v
13003	}
13004	reqHeaders.Set("User-Agent", c.s.userAgent())
13005	var body io.Reader = nil
13006	body, err := googleapi.WithoutDataWrapper.JSONReader(c.launchtemplateparameters)
13007	if err != nil {
13008		return nil, err
13009	}
13010	reqHeaders.Set("Content-Type", "application/json")
13011	c.urlParams_.Set("alt", alt)
13012	c.urlParams_.Set("prettyPrint", "false")
13013	urls := googleapi.ResolveRelative(c.s.BasePath, "v1b3/projects/{projectId}/templates:launch")
13014	urls += "?" + c.urlParams_.Encode()
13015	req, err := http.NewRequest("POST", urls, body)
13016	if err != nil {
13017		return nil, err
13018	}
13019	req.Header = reqHeaders
13020	googleapi.Expand(req.URL, map[string]string{
13021		"projectId": c.projectId,
13022	})
13023	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13024}
13025
13026// Do executes the "dataflow.projects.templates.launch" call.
13027// Exactly one of *LaunchTemplateResponse or error will be non-nil. Any
13028// non-2xx status code is an error. Response headers are in either
13029// *LaunchTemplateResponse.ServerResponse.Header or (if a response was
13030// returned at all) in error.(*googleapi.Error).Header. Use
13031// googleapi.IsNotModified to check whether the returned error was
13032// because http.StatusNotModified was returned.
13033func (c *ProjectsTemplatesLaunchCall) Do(opts ...googleapi.CallOption) (*LaunchTemplateResponse, error) {
13034	gensupport.SetOptions(c.urlParams_, opts...)
13035	res, err := c.doRequest("json")
13036	if res != nil && res.StatusCode == http.StatusNotModified {
13037		if res.Body != nil {
13038			res.Body.Close()
13039		}
13040		return nil, &googleapi.Error{
13041			Code:   res.StatusCode,
13042			Header: res.Header,
13043		}
13044	}
13045	if err != nil {
13046		return nil, err
13047	}
13048	defer googleapi.CloseBody(res)
13049	if err := googleapi.CheckResponse(res); err != nil {
13050		return nil, err
13051	}
13052	ret := &LaunchTemplateResponse{
13053		ServerResponse: googleapi.ServerResponse{
13054			Header:         res.Header,
13055			HTTPStatusCode: res.StatusCode,
13056		},
13057	}
13058	target := &ret
13059	if err := gensupport.DecodeResponse(target, res); err != nil {
13060		return nil, err
13061	}
13062	return ret, nil
13063	// {
13064	//   "description": "Launch a template.",
13065	//   "flatPath": "v1b3/projects/{projectId}/templates:launch",
13066	//   "httpMethod": "POST",
13067	//   "id": "dataflow.projects.templates.launch",
13068	//   "parameterOrder": [
13069	//     "projectId"
13070	//   ],
13071	//   "parameters": {
13072	//     "dynamicTemplate.gcsPath": {
13073	//       "description": "Path to dynamic template spec file on GCS.\nThe file must be a Json serialized DynamicTemplateFieSpec object.",
13074	//       "location": "query",
13075	//       "type": "string"
13076	//     },
13077	//     "dynamicTemplate.stagingLocation": {
13078	//       "description": "Cloud Storage path for staging dependencies.\nMust be a valid Cloud Storage URL, beginning with `gs://`.",
13079	//       "location": "query",
13080	//       "type": "string"
13081	//     },
13082	//     "gcsPath": {
13083	//       "description": "A Cloud Storage path to the template from which to create\nthe job.\nMust be valid Cloud Storage URL, beginning with 'gs://'.",
13084	//       "location": "query",
13085	//       "type": "string"
13086	//     },
13087	//     "location": {
13088	//       "description": "The [regional endpoint]\n(https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to\nwhich to direct the request.",
13089	//       "location": "query",
13090	//       "type": "string"
13091	//     },
13092	//     "projectId": {
13093	//       "description": "Required. The ID of the Cloud Platform project that the job belongs to.",
13094	//       "location": "path",
13095	//       "required": true,
13096	//       "type": "string"
13097	//     },
13098	//     "validateOnly": {
13099	//       "description": "If true, the request is validated but not actually executed.\nDefaults to false.",
13100	//       "location": "query",
13101	//       "type": "boolean"
13102	//     }
13103	//   },
13104	//   "path": "v1b3/projects/{projectId}/templates:launch",
13105	//   "request": {
13106	//     "$ref": "LaunchTemplateParameters"
13107	//   },
13108	//   "response": {
13109	//     "$ref": "LaunchTemplateResponse"
13110	//   },
13111	//   "scopes": [
13112	//     "https://www.googleapis.com/auth/cloud-platform",
13113	//     "https://www.googleapis.com/auth/compute",
13114	//     "https://www.googleapis.com/auth/compute.readonly",
13115	//     "https://www.googleapis.com/auth/userinfo.email"
13116	//   ]
13117	// }
13118
13119}
13120