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 genomics provides access to the Genomics API.
8//
9// For product documentation, see: https://cloud.google.com/genomics
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/genomics/v2alpha1"
16//   ...
17//   ctx := context.Background()
18//   genomicsService, err := genomics.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//   genomicsService, err := genomics.NewService(ctx, option.WithScopes(genomics.GenomicsScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   genomicsService, err := genomics.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//   genomicsService, err := genomics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package genomics // import "google.golang.org/api/genomics/v2alpha1"
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	gensupport "google.golang.org/api/gensupport"
57	googleapi "google.golang.org/api/googleapi"
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 = "genomics:v2alpha1"
77const apiName = "genomics"
78const apiVersion = "v2alpha1"
79const basePath = "https://genomics.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 Genomics data
87	GenomicsScope = "https://www.googleapis.com/auth/genomics"
88)
89
90// NewService creates a new Service.
91func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
92	scopesOption := option.WithScopes(
93		"https://www.googleapis.com/auth/cloud-platform",
94		"https://www.googleapis.com/auth/genomics",
95	)
96	// NOTE: prepend, so we don't override user-specified scopes.
97	opts = append([]option.ClientOption{scopesOption}, opts...)
98	client, endpoint, err := htransport.NewClient(ctx, opts...)
99	if err != nil {
100		return nil, err
101	}
102	s, err := New(client)
103	if err != nil {
104		return nil, err
105	}
106	if endpoint != "" {
107		s.BasePath = endpoint
108	}
109	return s, nil
110}
111
112// New creates a new Service. It uses the provided http.Client for requests.
113//
114// Deprecated: please use NewService instead.
115// To provide a custom HTTP client, use option.WithHTTPClient.
116// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
117func New(client *http.Client) (*Service, error) {
118	if client == nil {
119		return nil, errors.New("client is nil")
120	}
121	s := &Service{client: client, BasePath: basePath}
122	s.Pipelines = NewPipelinesService(s)
123	s.Projects = NewProjectsService(s)
124	s.Workers = NewWorkersService(s)
125	return s, nil
126}
127
128type Service struct {
129	client    *http.Client
130	BasePath  string // API endpoint base URL
131	UserAgent string // optional additional User-Agent fragment
132
133	Pipelines *PipelinesService
134
135	Projects *ProjectsService
136
137	Workers *WorkersService
138}
139
140func (s *Service) userAgent() string {
141	if s.UserAgent == "" {
142		return googleapi.UserAgent
143	}
144	return googleapi.UserAgent + " " + s.UserAgent
145}
146
147func NewPipelinesService(s *Service) *PipelinesService {
148	rs := &PipelinesService{s: s}
149	return rs
150}
151
152type PipelinesService struct {
153	s *Service
154}
155
156func NewProjectsService(s *Service) *ProjectsService {
157	rs := &ProjectsService{s: s}
158	rs.Operations = NewProjectsOperationsService(s)
159	return rs
160}
161
162type ProjectsService struct {
163	s *Service
164
165	Operations *ProjectsOperationsService
166}
167
168func NewProjectsOperationsService(s *Service) *ProjectsOperationsService {
169	rs := &ProjectsOperationsService{s: s}
170	return rs
171}
172
173type ProjectsOperationsService struct {
174	s *Service
175}
176
177func NewWorkersService(s *Service) *WorkersService {
178	rs := &WorkersService{s: s}
179	return rs
180}
181
182type WorkersService struct {
183	s *Service
184}
185
186// Accelerator: Carries information about an accelerator that can be
187// attached to a VM.
188type Accelerator struct {
189	// Count: How many accelerators of this type to attach.
190	Count int64 `json:"count,omitempty,string"`
191
192	// Type: The accelerator type string (for example,
193	// "nvidia-tesla-k80").
194	//
195	// Only NVIDIA GPU accelerators are currently supported. If an NVIDIA
196	// GPU is
197	// attached, the required runtime libraries will be made available to
198	// all
199	// containers under `/usr/local/nvidia`. The driver version to install
200	// must
201	// be specified using the NVIDIA driver version parameter on the
202	// virtual
203	// machine specification. Note that attaching a GPU increases the worker
204	// VM
205	// startup time by a few minutes.
206	Type string `json:"type,omitempty"`
207
208	// ForceSendFields is a list of field names (e.g. "Count") to
209	// unconditionally include in API requests. By default, fields with
210	// empty values are omitted from API requests. However, any non-pointer,
211	// non-interface field appearing in ForceSendFields will be sent to the
212	// server regardless of whether the field is empty or not. This may be
213	// used to include empty fields in Patch requests.
214	ForceSendFields []string `json:"-"`
215
216	// NullFields is a list of field names (e.g. "Count") to include in API
217	// requests with the JSON null value. By default, fields with empty
218	// values are omitted from API requests. However, any field with an
219	// empty value appearing in NullFields will be sent to the server as
220	// null. It is an error if a field in this list has a non-empty value.
221	// This may be used to include null fields in Patch requests.
222	NullFields []string `json:"-"`
223}
224
225func (s *Accelerator) MarshalJSON() ([]byte, error) {
226	type NoMethod Accelerator
227	raw := NoMethod(*s)
228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
229}
230
231// Action: Specifies a single action that runs a Docker container.
232type Action struct {
233	// Commands: If specified, overrides the `CMD` specified in the
234	// container. If the
235	// container also has an `ENTRYPOINT` the values are used as
236	// entrypoint
237	// arguments. Otherwise, they are used as a command and arguments to
238	// run
239	// inside the container.
240	Commands []string `json:"commands,omitempty"`
241
242	// Credentials: If the specified image is hosted on a private registry
243	// other than Google
244	// Container Registry, the credentials required to pull the image must
245	// be
246	// specified here as an encrypted secret.
247	//
248	// The secret must decrypt to a JSON-encoded dictionary containing
249	// both
250	// `username` and `password` keys.
251	Credentials *Secret `json:"credentials,omitempty"`
252
253	// Entrypoint: If specified, overrides the `ENTRYPOINT` specified in the
254	// container.
255	Entrypoint string `json:"entrypoint,omitempty"`
256
257	// Environment: The environment to pass into the container. This
258	// environment is merged
259	// with any values specified in the `Pipeline` message. These
260	// values
261	// overwrite any in the `Pipeline` message.
262	//
263	// In addition to the values passed here, a few other values
264	// are
265	// automatically injected into the environment. These cannot be hidden
266	// or
267	// overwritten.
268	//
269	// `GOOGLE_PIPELINE_FAILED` will be set to "1" if the pipeline
270	// failed
271	// because an action has exited with a non-zero status (and did not have
272	// the
273	// `IGNORE_EXIT_STATUS` flag set). This can be used to determine if
274	// additional
275	// debug or logging actions should execute.
276	//
277	// `GOOGLE_LAST_EXIT_STATUS` will be set to the exit status of the
278	// last
279	// non-background action that executed. This can be used by workflow
280	// engine
281	// authors to determine whether an individual action has succeeded or
282	// failed.
283	Environment map[string]string `json:"environment,omitempty"`
284
285	// Flags: The set of flags to apply to this action.
286	//
287	// Possible values:
288	//   "FLAG_UNSPECIFIED" - Unspecified flag.
289	//   "IGNORE_EXIT_STATUS" - Normally, a non-zero exit status causes the
290	// pipeline to fail. This flag
291	// allows execution of other actions to continue instead.
292	//   "RUN_IN_BACKGROUND" - This flag allows an action to continue
293	// running in the background while
294	// executing subsequent actions. This is useful to provide services
295	// to
296	// other actions (or to provide debugging support tools like SSH
297	// servers).
298	//   "ALWAYS_RUN" - By default, after an action fails, no further
299	// actions are run. This flag
300	// indicates that this action must be run even if the pipeline has
301	// already
302	// failed. This is useful for actions that copy output files off of the
303	// VM
304	// or for debugging.
305	//   "ENABLE_FUSE" - Enable access to the FUSE device for this action.
306	// Filesystems can then
307	// be mounted into disks shared with other actions. The other actions
308	// do
309	// not need the `ENABLE_FUSE` flag to access the mounted
310	// filesystem.
311	//
312	// This has the effect of causing the container to be executed
313	// with
314	// `CAP_SYS_ADMIN` and exposes `/dev/fuse` to the container, so use it
315	// only
316	// for containers you trust.
317	//   "PUBLISH_EXPOSED_PORTS" - Exposes all ports specified by `EXPOSE`
318	// statements in the container. To
319	// discover the host side port numbers, consult the `ACTION_STARTED`
320	// event
321	// in the operation metadata.
322	//   "DISABLE_IMAGE_PREFETCH" - All container images are typically
323	// downloaded before any actions are
324	// executed. This helps prevent typos in URIs or issues like lack of
325	// disk
326	// space from wasting large amounts of compute resources.
327	//
328	// If set, this flag prevents the worker from downloading the image
329	// until
330	// just before the action is executed.
331	//   "DISABLE_STANDARD_ERROR_CAPTURE" - A small portion of the
332	// container's standard error stream is typically
333	// captured and returned inside the `ContainerStoppedEvent`. Setting
334	// this
335	// flag disables this functionality.
336	Flags []string `json:"flags,omitempty"`
337
338	// ImageUri: The URI to pull the container image from. Note that all
339	// images referenced
340	// by actions in the pipeline are pulled before the first action runs.
341	// If
342	// multiple actions reference the same image, it is only pulled
343	// once,
344	// ensuring that the same image is used for all actions in a single
345	// pipeline.
346	ImageUri string `json:"imageUri,omitempty"`
347
348	// Labels: Labels to associate with the action. This field is provided
349	// to assist
350	// workflow engine authors in identifying actions (for example, to
351	// indicate
352	// what sort of action they perform, such as localization or
353	// debugging).
354	// They are returned in the operation metadata, but are otherwise
355	// ignored.
356	Labels map[string]string `json:"labels,omitempty"`
357
358	// Mounts: A list of mounts to make available to the action.
359	//
360	// In addition to the values specified here, every action has a
361	// special
362	// virtual disk mounted under `/google` that contains log files and
363	// other
364	// operational components.
365	//
366	// <ul>
367	//   <li><code>/google/logs</code> All logs written during the pipeline
368	//   execution.</li>
369	//   <li><code>/google/logs/output</code> The combined standard output
370	// and
371	//   standard error of all actions run as part of the pipeline
372	//   execution.</li>
373	//   <li><code>/google/logs/action/*/stdout</code> The complete contents
374	// of
375	//   each individual action's standard output.</li>
376	//   <li><code>/google/logs/action/*/stderr</code> The complete contents
377	// of
378	//   each individual action's standard error output.</li>
379	// </ul>
380	Mounts []*Mount `json:"mounts,omitempty"`
381
382	// Name: An optional name for the container. The container hostname will
383	// be set to
384	// this name, making it useful for inter-container communication. The
385	// name
386	// must contain only upper and lowercase alphanumeric characters and
387	// hypens
388	// and cannot start with a hyphen.
389	Name string `json:"name,omitempty"`
390
391	// PidNamespace: An optional identifier for a PID namespace to run the
392	// action inside.
393	// Multiple actions should use the same string to share a namespace.
394	// If
395	// unspecified, a separate isolated namespace is used.
396	PidNamespace string `json:"pidNamespace,omitempty"`
397
398	// PortMappings: A map of containers to host port mappings for this
399	// container. If the
400	// container already specifies exposed ports, use
401	// the
402	// `PUBLISH_EXPOSED_PORTS` flag instead.
403	//
404	// The host port number must be less than 65536. If it is zero, an
405	// unused
406	// random port is assigned. To determine the resulting port number,
407	// consult
408	// the `ContainerStartedEvent` in the operation metadata.
409	PortMappings map[string]int64 `json:"portMappings,omitempty"`
410
411	// Timeout: The maximum amount of time to give the action to complete.
412	// If the action
413	// fails to complete before the timeout, it will be terminated and the
414	// exit
415	// status will be non-zero. The pipeline will continue or terminate
416	// based
417	// on the rules defined by the `ALWAYS_RUN` and `IGNORE_EXIT_STATUS`
418	// flags.
419	Timeout string `json:"timeout,omitempty"`
420
421	// ForceSendFields is a list of field names (e.g. "Commands") to
422	// unconditionally include in API requests. By default, fields with
423	// empty values are omitted from API requests. However, any non-pointer,
424	// non-interface field appearing in ForceSendFields will be sent to the
425	// server regardless of whether the field is empty or not. This may be
426	// used to include empty fields in Patch requests.
427	ForceSendFields []string `json:"-"`
428
429	// NullFields is a list of field names (e.g. "Commands") to include in
430	// API requests with the JSON null value. By default, fields with empty
431	// values are omitted from API requests. However, any field with an
432	// empty value appearing in NullFields will be sent to the server as
433	// null. It is an error if a field in this list has a non-empty value.
434	// This may be used to include null fields in Patch requests.
435	NullFields []string `json:"-"`
436}
437
438func (s *Action) MarshalJSON() ([]byte, error) {
439	type NoMethod Action
440	raw := NoMethod(*s)
441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
442}
443
444// CancelOperationRequest: The request message for
445// Operations.CancelOperation.
446type CancelOperationRequest struct {
447}
448
449// CheckInRequest: The parameters to the CheckIn method.
450type CheckInRequest struct {
451	// DeadlineExpired: The deadline has expired and the worker needs more
452	// time.
453	DeadlineExpired *Empty `json:"deadlineExpired,omitempty"`
454
455	// Event: A workflow specific event occurred.
456	Event googleapi.RawMessage `json:"event,omitempty"`
457
458	// Result: The operation has finished with the given result.
459	Result *Status `json:"result,omitempty"`
460
461	// WorkerStatus: Data about the status of the worker VM.
462	WorkerStatus *WorkerStatus `json:"workerStatus,omitempty"`
463
464	// ForceSendFields is a list of field names (e.g. "DeadlineExpired") to
465	// unconditionally include in API requests. By default, fields with
466	// empty values are omitted from API requests. However, any non-pointer,
467	// non-interface field appearing in ForceSendFields will be sent to the
468	// server regardless of whether the field is empty or not. This may be
469	// used to include empty fields in Patch requests.
470	ForceSendFields []string `json:"-"`
471
472	// NullFields is a list of field names (e.g. "DeadlineExpired") to
473	// include in API requests with the JSON null value. By default, fields
474	// with empty values are omitted from API requests. However, any field
475	// with an empty value appearing in NullFields will be sent to the
476	// server as null. It is an error if a field in this list has a
477	// non-empty value. This may be used to include null fields in Patch
478	// requests.
479	NullFields []string `json:"-"`
480}
481
482func (s *CheckInRequest) MarshalJSON() ([]byte, error) {
483	type NoMethod CheckInRequest
484	raw := NoMethod(*s)
485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
486}
487
488// CheckInResponse: The response to the CheckIn method.
489type CheckInResponse struct {
490	// Deadline: The deadline by which the worker must request an extension.
491	//  The backend
492	// will allow for network transmission time and other delays, but the
493	// worker
494	// must attempt to transmit the extension request no later than the
495	// deadline.
496	Deadline string `json:"deadline,omitempty"`
497
498	// Metadata: The metadata that describes the operation assigned to the
499	// worker.
500	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
501
502	// ServerResponse contains the HTTP response code and headers from the
503	// server.
504	googleapi.ServerResponse `json:"-"`
505
506	// ForceSendFields is a list of field names (e.g. "Deadline") to
507	// unconditionally include in API requests. By default, fields with
508	// empty values are omitted from API requests. However, any non-pointer,
509	// non-interface field appearing in ForceSendFields will be sent to the
510	// server regardless of whether the field is empty or not. This may be
511	// used to include empty fields in Patch requests.
512	ForceSendFields []string `json:"-"`
513
514	// NullFields is a list of field names (e.g. "Deadline") to include in
515	// API requests with the JSON null value. By default, fields with empty
516	// values are omitted from API requests. However, any field with an
517	// empty value appearing in NullFields will be sent to the server as
518	// null. It is an error if a field in this list has a non-empty value.
519	// This may be used to include null fields in Patch requests.
520	NullFields []string `json:"-"`
521}
522
523func (s *CheckInResponse) MarshalJSON() ([]byte, error) {
524	type NoMethod CheckInResponse
525	raw := NoMethod(*s)
526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
527}
528
529// ComputeEngine: Describes a Compute Engine resource that is being
530// managed by a running
531// pipeline.
532type ComputeEngine struct {
533	// DiskNames: The names of the disks that were created for this
534	// pipeline.
535	DiskNames []string `json:"diskNames,omitempty"`
536
537	// InstanceName: The instance on which the operation is running.
538	InstanceName string `json:"instanceName,omitempty"`
539
540	// MachineType: The machine type of the instance.
541	MachineType string `json:"machineType,omitempty"`
542
543	// Zone: The availability zone in which the instance resides.
544	Zone string `json:"zone,omitempty"`
545
546	// ForceSendFields is a list of field names (e.g. "DiskNames") to
547	// unconditionally include in API requests. By default, fields with
548	// empty values are omitted from API requests. However, any non-pointer,
549	// non-interface field appearing in ForceSendFields will be sent to the
550	// server regardless of whether the field is empty or not. This may be
551	// used to include empty fields in Patch requests.
552	ForceSendFields []string `json:"-"`
553
554	// NullFields is a list of field names (e.g. "DiskNames") to include in
555	// API requests with the JSON null value. By default, fields with empty
556	// values are omitted from API requests. However, any field with an
557	// empty value appearing in NullFields will be sent to the server as
558	// null. It is an error if a field in this list has a non-empty value.
559	// This may be used to include null fields in Patch requests.
560	NullFields []string `json:"-"`
561}
562
563func (s *ComputeEngine) MarshalJSON() ([]byte, error) {
564	type NoMethod ComputeEngine
565	raw := NoMethod(*s)
566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
567}
568
569// ContainerKilledEvent: An event generated when a container is forcibly
570// terminated by the
571// worker. Currently, this only occurs when the container outlives
572// the
573// timeout specified by the user.
574type ContainerKilledEvent struct {
575	// ActionId: The numeric ID of the action that started the container.
576	ActionId int64 `json:"actionId,omitempty"`
577
578	// ForceSendFields is a list of field names (e.g. "ActionId") to
579	// unconditionally include in API requests. By default, fields with
580	// empty values are omitted from API requests. However, any non-pointer,
581	// non-interface field appearing in ForceSendFields will be sent to the
582	// server regardless of whether the field is empty or not. This may be
583	// used to include empty fields in Patch requests.
584	ForceSendFields []string `json:"-"`
585
586	// NullFields is a list of field names (e.g. "ActionId") to include in
587	// API requests with the JSON null value. By default, fields with empty
588	// values are omitted from API requests. However, any field with an
589	// empty value appearing in NullFields will be sent to the server as
590	// null. It is an error if a field in this list has a non-empty value.
591	// This may be used to include null fields in Patch requests.
592	NullFields []string `json:"-"`
593}
594
595func (s *ContainerKilledEvent) MarshalJSON() ([]byte, error) {
596	type NoMethod ContainerKilledEvent
597	raw := NoMethod(*s)
598	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
599}
600
601// ContainerStartedEvent: An event generated when a container starts.
602type ContainerStartedEvent struct {
603	// ActionId: The numeric ID of the action that started this container.
604	ActionId int64 `json:"actionId,omitempty"`
605
606	// IpAddress: The public IP address that can be used to connect to the
607	// container. This
608	// field is only populated when at least one port mapping is present. If
609	// the
610	// instance was created with a private address, this field will be empty
611	// even
612	// if port mappings exist.
613	IpAddress string `json:"ipAddress,omitempty"`
614
615	// PortMappings: The container-to-host port mappings installed for this
616	// container. This
617	// set will contain any ports exposed using the `PUBLISH_EXPOSED_PORTS`
618	// flag
619	// as well as any specified in the `Action` definition.
620	PortMappings map[string]int64 `json:"portMappings,omitempty"`
621
622	// ForceSendFields is a list of field names (e.g. "ActionId") to
623	// unconditionally include in API requests. By default, fields with
624	// empty values are omitted from API requests. However, any non-pointer,
625	// non-interface field appearing in ForceSendFields will be sent to the
626	// server regardless of whether the field is empty or not. This may be
627	// used to include empty fields in Patch requests.
628	ForceSendFields []string `json:"-"`
629
630	// NullFields is a list of field names (e.g. "ActionId") to include in
631	// API requests with the JSON null value. By default, fields with empty
632	// values are omitted from API requests. However, any field with an
633	// empty value appearing in NullFields will be sent to the server as
634	// null. It is an error if a field in this list has a non-empty value.
635	// This may be used to include null fields in Patch requests.
636	NullFields []string `json:"-"`
637}
638
639func (s *ContainerStartedEvent) MarshalJSON() ([]byte, error) {
640	type NoMethod ContainerStartedEvent
641	raw := NoMethod(*s)
642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
643}
644
645// ContainerStoppedEvent: An event generated when a container exits.
646type ContainerStoppedEvent struct {
647	// ActionId: The numeric ID of the action that started this container.
648	ActionId int64 `json:"actionId,omitempty"`
649
650	// ExitStatus: The exit status of the container.
651	ExitStatus int64 `json:"exitStatus,omitempty"`
652
653	// Stderr: The tail end of any content written to standard error by the
654	// container.
655	// If the content emits large amounts of debugging noise or
656	// contains
657	// sensitive information, you can prevent the content from being printed
658	// by
659	// setting the `DISABLE_STANDARD_ERROR_CAPTURE` flag.
660	//
661	// Note that only a small amount of the end of the stream is captured
662	// here.
663	// The entire stream is stored in the `/google/logs` directory mounted
664	// into
665	// each action, and can be copied off the machine as described
666	// elsewhere.
667	Stderr string `json:"stderr,omitempty"`
668
669	// ForceSendFields is a list of field names (e.g. "ActionId") to
670	// unconditionally include in API requests. By default, fields with
671	// empty values are omitted from API requests. However, any non-pointer,
672	// non-interface field appearing in ForceSendFields will be sent to the
673	// server regardless of whether the field is empty or not. This may be
674	// used to include empty fields in Patch requests.
675	ForceSendFields []string `json:"-"`
676
677	// NullFields is a list of field names (e.g. "ActionId") to include in
678	// API requests with the JSON null value. By default, fields with empty
679	// values are omitted from API requests. However, any field with an
680	// empty value appearing in NullFields will be sent to the server as
681	// null. It is an error if a field in this list has a non-empty value.
682	// This may be used to include null fields in Patch requests.
683	NullFields []string `json:"-"`
684}
685
686func (s *ContainerStoppedEvent) MarshalJSON() ([]byte, error) {
687	type NoMethod ContainerStoppedEvent
688	raw := NoMethod(*s)
689	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
690}
691
692// DelayedEvent: An event generated whenever a resource limitation or
693// transient error
694// delays execution of a pipeline that was otherwise ready to run.
695type DelayedEvent struct {
696	// Cause: A textual description of the cause of the delay. The string
697	// can change
698	// without notice because it is often generated by another service (such
699	// as
700	// Compute Engine).
701	Cause string `json:"cause,omitempty"`
702
703	// Metrics: If the delay was caused by a resource shortage, this field
704	// lists the
705	// Compute Engine metrics that are preventing this operation from
706	// running
707	// (for example, `CPUS` or `INSTANCES`). If the particular metric is
708	// not
709	// known, a single `UNKNOWN` metric will be present.
710	Metrics []string `json:"metrics,omitempty"`
711
712	// ForceSendFields is a list of field names (e.g. "Cause") to
713	// unconditionally include in API requests. By default, fields with
714	// empty values are omitted from API requests. However, any non-pointer,
715	// non-interface field appearing in ForceSendFields will be sent to the
716	// server regardless of whether the field is empty or not. This may be
717	// used to include empty fields in Patch requests.
718	ForceSendFields []string `json:"-"`
719
720	// NullFields is a list of field names (e.g. "Cause") to include in API
721	// requests with the JSON null value. By default, fields with empty
722	// values are omitted from API requests. However, any field with an
723	// empty value appearing in NullFields will be sent to the server as
724	// null. It is an error if a field in this list has a non-empty value.
725	// This may be used to include null fields in Patch requests.
726	NullFields []string `json:"-"`
727}
728
729func (s *DelayedEvent) MarshalJSON() ([]byte, error) {
730	type NoMethod DelayedEvent
731	raw := NoMethod(*s)
732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
733}
734
735// Disk: Carries information about a disk that can be attached to a
736// VM.
737//
738// See https://cloud.google.com/compute/docs/disks/performance for
739// more
740// information about disk type, size, and performance considerations.
741type Disk struct {
742	// Name: A user-supplied name for the disk. Used when mounting the disk
743	// into
744	// actions. The name must contain only upper and lowercase
745	// alphanumeric
746	// characters and hypens and cannot start with a hyphen.
747	Name string `json:"name,omitempty"`
748
749	// SizeGb: The size, in GB, of the disk to attach. If the size is
750	// not
751	// specified, a default is chosen to ensure reasonable I/O
752	// performance.
753	//
754	// If the disk type is specified as `local-ssd`, multiple local drives
755	// are
756	// automatically combined to provide the requested size. Note, however,
757	// that
758	// each physical SSD is 375GB in size, and no more than 8 drives can
759	// be
760	// attached to a single instance.
761	SizeGb int64 `json:"sizeGb,omitempty"`
762
763	// SourceImage: An optional image to put on the disk before attaching it
764	// to the VM.
765	SourceImage string `json:"sourceImage,omitempty"`
766
767	// Type: The Compute Engine disk type. If unspecified, `pd-standard` is
768	// used.
769	Type string `json:"type,omitempty"`
770
771	// ForceSendFields is a list of field names (e.g. "Name") to
772	// unconditionally include in API requests. By default, fields with
773	// empty values are omitted from API requests. However, any non-pointer,
774	// non-interface field appearing in ForceSendFields will be sent to the
775	// server regardless of whether the field is empty or not. This may be
776	// used to include empty fields in Patch requests.
777	ForceSendFields []string `json:"-"`
778
779	// NullFields is a list of field names (e.g. "Name") to include in API
780	// requests with the JSON null value. By default, fields with empty
781	// values are omitted from API requests. However, any field with an
782	// empty value appearing in NullFields will be sent to the server as
783	// null. It is an error if a field in this list has a non-empty value.
784	// This may be used to include null fields in Patch requests.
785	NullFields []string `json:"-"`
786}
787
788func (s *Disk) MarshalJSON() ([]byte, error) {
789	type NoMethod Disk
790	raw := NoMethod(*s)
791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
792}
793
794// DiskStatus: The status of a disk on a VM.
795type DiskStatus struct {
796	// FreeSpaceBytes: Free disk space.
797	FreeSpaceBytes uint64 `json:"freeSpaceBytes,omitempty,string"`
798
799	// TotalSpaceBytes: Total disk space.
800	TotalSpaceBytes uint64 `json:"totalSpaceBytes,omitempty,string"`
801
802	// ForceSendFields is a list of field names (e.g. "FreeSpaceBytes") to
803	// unconditionally include in API requests. By default, fields with
804	// empty values are omitted from API requests. However, any non-pointer,
805	// non-interface field appearing in ForceSendFields will be sent to the
806	// server regardless of whether the field is empty or not. This may be
807	// used to include empty fields in Patch requests.
808	ForceSendFields []string `json:"-"`
809
810	// NullFields is a list of field names (e.g. "FreeSpaceBytes") to
811	// include in API requests with the JSON null value. By default, fields
812	// with empty values are omitted from API requests. However, any field
813	// with an empty value appearing in NullFields will be sent to the
814	// server as null. It is an error if a field in this list has a
815	// non-empty value. This may be used to include null fields in Patch
816	// requests.
817	NullFields []string `json:"-"`
818}
819
820func (s *DiskStatus) MarshalJSON() ([]byte, error) {
821	type NoMethod DiskStatus
822	raw := NoMethod(*s)
823	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
824}
825
826// Empty: A generic empty message that you can re-use to avoid defining
827// duplicated
828// empty messages in your APIs. A typical example is to use it as the
829// request
830// or the response type of an API method. For instance:
831//
832//     service Foo {
833//       rpc Bar(google.protobuf.Empty) returns
834// (google.protobuf.Empty);
835//     }
836//
837// The JSON representation for `Empty` is empty JSON object `{}`.
838type Empty struct {
839	// ServerResponse contains the HTTP response code and headers from the
840	// server.
841	googleapi.ServerResponse `json:"-"`
842}
843
844// Event: Carries information about events that occur during pipeline
845// execution.
846type Event struct {
847	// Description: A human-readable description of the event. Note that
848	// these strings can
849	// change at any time without notice. Any application logic must use
850	// the
851	// information in the `details` field.
852	Description string `json:"description,omitempty"`
853
854	// Details: Machine-readable details about the event.
855	Details googleapi.RawMessage `json:"details,omitempty"`
856
857	// Timestamp: The time at which the event occurred.
858	Timestamp string `json:"timestamp,omitempty"`
859
860	// ForceSendFields is a list of field names (e.g. "Description") to
861	// unconditionally include in API requests. By default, fields with
862	// empty values are omitted from API requests. However, any non-pointer,
863	// non-interface field appearing in ForceSendFields will be sent to the
864	// server regardless of whether the field is empty or not. This may be
865	// used to include empty fields in Patch requests.
866	ForceSendFields []string `json:"-"`
867
868	// NullFields is a list of field names (e.g. "Description") to include
869	// in API requests with the JSON null value. By default, fields with
870	// empty values are omitted from API requests. However, any field with
871	// an empty value appearing in NullFields will be sent to the server as
872	// null. It is an error if a field in this list has a non-empty value.
873	// This may be used to include null fields in Patch requests.
874	NullFields []string `json:"-"`
875}
876
877func (s *Event) MarshalJSON() ([]byte, error) {
878	type NoMethod Event
879	raw := NoMethod(*s)
880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
881}
882
883// FailedEvent: An event generated when the execution of a pipeline has
884// failed. Note
885// that other events can continue to occur after this event.
886type FailedEvent struct {
887	// Cause: The human-readable description of the cause of the failure.
888	Cause string `json:"cause,omitempty"`
889
890	// Code: The Google standard error code that best describes this
891	// failure.
892	//
893	// Possible values:
894	//   "OK" - Not an error; returned on success
895	//
896	// HTTP Mapping: 200 OK
897	//   "CANCELLED" - The operation was cancelled, typically by the
898	// caller.
899	//
900	// HTTP Mapping: 499 Client Closed Request
901	//   "UNKNOWN" - Unknown error.  For example, this error may be returned
902	// when
903	// a `Status` value received from another address space belongs to
904	// an error space that is not known in this address space.  Also
905	// errors raised by APIs that do not return enough error information
906	// may be converted to this error.
907	//
908	// HTTP Mapping: 500 Internal Server Error
909	//   "INVALID_ARGUMENT" - The client specified an invalid argument.
910	// Note that this differs
911	// from `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates
912	// arguments
913	// that are problematic regardless of the state of the system
914	// (e.g., a malformed file name).
915	//
916	// HTTP Mapping: 400 Bad Request
917	//   "DEADLINE_EXCEEDED" - The deadline expired before the operation
918	// could complete. For operations
919	// that change the state of the system, this error may be returned
920	// even if the operation has completed successfully.  For example,
921	// a
922	// successful response from a server could have been delayed long
923	// enough for the deadline to expire.
924	//
925	// HTTP Mapping: 504 Gateway Timeout
926	//   "NOT_FOUND" - Some requested entity (e.g., file or directory) was
927	// not found.
928	//
929	// Note to server developers: if a request is denied for an entire
930	// class
931	// of users, such as gradual feature rollout or undocumented
932	// whitelist,
933	// `NOT_FOUND` may be used. If a request is denied for some users
934	// within
935	// a class of users, such as user-based access control,
936	// `PERMISSION_DENIED`
937	// must be used.
938	//
939	// HTTP Mapping: 404 Not Found
940	//   "ALREADY_EXISTS" - The entity that a client attempted to create
941	// (e.g., file or directory)
942	// already exists.
943	//
944	// HTTP Mapping: 409 Conflict
945	//   "PERMISSION_DENIED" - The caller does not have permission to
946	// execute the specified
947	// operation. `PERMISSION_DENIED` must not be used for rejections
948	// caused by exhausting some resource (use `RESOURCE_EXHAUSTED`
949	// instead for those errors). `PERMISSION_DENIED` must not be
950	// used if the caller can not be identified (use
951	// `UNAUTHENTICATED`
952	// instead for those errors). This error code does not imply the
953	// request is valid or the requested entity exists or satisfies
954	// other pre-conditions.
955	//
956	// HTTP Mapping: 403 Forbidden
957	//   "UNAUTHENTICATED" - The request does not have valid authentication
958	// credentials for the
959	// operation.
960	//
961	// HTTP Mapping: 401 Unauthorized
962	//   "RESOURCE_EXHAUSTED" - Some resource has been exhausted, perhaps a
963	// per-user quota, or
964	// perhaps the entire file system is out of space.
965	//
966	// HTTP Mapping: 429 Too Many Requests
967	//   "FAILED_PRECONDITION" - The operation was rejected because the
968	// system is not in a state
969	// required for the operation's execution.  For example, the
970	// directory
971	// to be deleted is non-empty, an rmdir operation is applied to
972	// a non-directory, etc.
973	//
974	// Service implementors can use the following guidelines to
975	// decide
976	// between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:
977	//  (a) Use `UNAVAILABLE` if the client can retry just the failing
978	// call.
979	//  (b) Use `ABORTED` if the client should retry at a higher level
980	//      (e.g., when a client-specified test-and-set fails, indicating
981	// the
982	//      client should restart a read-modify-write sequence).
983	//  (c) Use `FAILED_PRECONDITION` if the client should not retry until
984	//      the system state has been explicitly fixed.  E.g., if an
985	// "rmdir"
986	//      fails because the directory is non-empty, `FAILED_PRECONDITION`
987	//      should be returned since the client should not retry unless
988	//      the files are deleted from the directory.
989	//
990	// HTTP Mapping: 400 Bad Request
991	//   "ABORTED" - The operation was aborted, typically due to a
992	// concurrency issue such as
993	// a sequencer check failure or transaction abort.
994	//
995	// See the guidelines above for deciding between
996	// `FAILED_PRECONDITION`,
997	// `ABORTED`, and `UNAVAILABLE`.
998	//
999	// HTTP Mapping: 409 Conflict
1000	//   "OUT_OF_RANGE" - The operation was attempted past the valid range.
1001	// E.g., seeking or
1002	// reading past end-of-file.
1003	//
1004	// Unlike `INVALID_ARGUMENT`, this error indicates a problem that may
1005	// be fixed if the system state changes. For example, a 32-bit
1006	// file
1007	// system will generate `INVALID_ARGUMENT` if asked to read at an
1008	// offset that is not in the range [0,2^32-1], but it will
1009	// generate
1010	// `OUT_OF_RANGE` if asked to read from an offset past the current
1011	// file size.
1012	//
1013	// There is a fair bit of overlap between `FAILED_PRECONDITION`
1014	// and
1015	// `OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more
1016	// specific
1017	// error) when it applies so that callers who are iterating through
1018	// a space can easily look for an `OUT_OF_RANGE` error to detect
1019	// when
1020	// they are done.
1021	//
1022	// HTTP Mapping: 400 Bad Request
1023	//   "UNIMPLEMENTED" - The operation is not implemented or is not
1024	// supported/enabled in this
1025	// service.
1026	//
1027	// HTTP Mapping: 501 Not Implemented
1028	//   "INTERNAL" - Internal errors.  This means that some invariants
1029	// expected by the
1030	// underlying system have been broken.  This error code is reserved
1031	// for serious errors.
1032	//
1033	// HTTP Mapping: 500 Internal Server Error
1034	//   "UNAVAILABLE" - The service is currently unavailable.  This is most
1035	// likely a
1036	// transient condition, which can be corrected by retrying with
1037	// a backoff. Note that it is not always safe to retry
1038	// non-idempotent operations.
1039	//
1040	// See the guidelines above for deciding between
1041	// `FAILED_PRECONDITION`,
1042	// `ABORTED`, and `UNAVAILABLE`.
1043	//
1044	// HTTP Mapping: 503 Service Unavailable
1045	//   "DATA_LOSS" - Unrecoverable data loss or corruption.
1046	//
1047	// HTTP Mapping: 500 Internal Server Error
1048	Code string `json:"code,omitempty"`
1049
1050	// ForceSendFields is a list of field names (e.g. "Cause") to
1051	// unconditionally include in API requests. By default, fields with
1052	// empty values are omitted from API requests. However, any non-pointer,
1053	// non-interface field appearing in ForceSendFields will be sent to the
1054	// server regardless of whether the field is empty or not. This may be
1055	// used to include empty fields in Patch requests.
1056	ForceSendFields []string `json:"-"`
1057
1058	// NullFields is a list of field names (e.g. "Cause") to include in API
1059	// requests with the JSON null value. By default, fields with empty
1060	// values are omitted from API requests. However, any field with an
1061	// empty value appearing in NullFields will be sent to the server as
1062	// null. It is an error if a field in this list has a non-empty value.
1063	// This may be used to include null fields in Patch requests.
1064	NullFields []string `json:"-"`
1065}
1066
1067func (s *FailedEvent) MarshalJSON() ([]byte, error) {
1068	type NoMethod FailedEvent
1069	raw := NoMethod(*s)
1070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1071}
1072
1073// ListOperationsResponse: The response message for
1074// Operations.ListOperations.
1075type ListOperationsResponse struct {
1076	// NextPageToken: The standard List next-page token.
1077	NextPageToken string `json:"nextPageToken,omitempty"`
1078
1079	// Operations: A list of operations that matches the specified filter in
1080	// the request.
1081	Operations []*Operation `json:"operations,omitempty"`
1082
1083	// ServerResponse contains the HTTP response code and headers from the
1084	// server.
1085	googleapi.ServerResponse `json:"-"`
1086
1087	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1088	// unconditionally include in API requests. By default, fields with
1089	// empty values are omitted from API requests. However, any non-pointer,
1090	// non-interface field appearing in ForceSendFields will be sent to the
1091	// server regardless of whether the field is empty or not. This may be
1092	// used to include empty fields in Patch requests.
1093	ForceSendFields []string `json:"-"`
1094
1095	// NullFields is a list of field names (e.g. "NextPageToken") to include
1096	// in API requests with the JSON null value. By default, fields with
1097	// empty values are omitted from API requests. However, any field with
1098	// an empty value appearing in NullFields will be sent to the server as
1099	// null. It is an error if a field in this list has a non-empty value.
1100	// This may be used to include null fields in Patch requests.
1101	NullFields []string `json:"-"`
1102}
1103
1104func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
1105	type NoMethod ListOperationsResponse
1106	raw := NoMethod(*s)
1107	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1108}
1109
1110// Metadata: Carries information about the pipeline execution that is
1111// returned
1112// in the long running operation's metadata field.
1113type Metadata struct {
1114	// CreateTime: The time at which the operation was created by the API.
1115	CreateTime string `json:"createTime,omitempty"`
1116
1117	// EndTime: The time at which execution was completed and resources were
1118	// cleaned up.
1119	EndTime string `json:"endTime,omitempty"`
1120
1121	// Events: The list of events that have happened so far during the
1122	// execution of this
1123	// operation.
1124	Events []*Event `json:"events,omitempty"`
1125
1126	// Labels: The user-defined labels associated with this operation.
1127	Labels map[string]string `json:"labels,omitempty"`
1128
1129	// Pipeline: The pipeline this operation represents.
1130	Pipeline *Pipeline `json:"pipeline,omitempty"`
1131
1132	// StartTime: The first time at which resources were allocated to
1133	// execute the pipeline.
1134	StartTime string `json:"startTime,omitempty"`
1135
1136	// ForceSendFields is a list of field names (e.g. "CreateTime") to
1137	// unconditionally include in API requests. By default, fields with
1138	// empty values are omitted from API requests. However, any non-pointer,
1139	// non-interface field appearing in ForceSendFields will be sent to the
1140	// server regardless of whether the field is empty or not. This may be
1141	// used to include empty fields in Patch requests.
1142	ForceSendFields []string `json:"-"`
1143
1144	// NullFields is a list of field names (e.g. "CreateTime") to include in
1145	// API requests with the JSON null value. By default, fields with empty
1146	// values are omitted from API requests. However, any field with an
1147	// empty value appearing in NullFields will be sent to the server as
1148	// null. It is an error if a field in this list has a non-empty value.
1149	// This may be used to include null fields in Patch requests.
1150	NullFields []string `json:"-"`
1151}
1152
1153func (s *Metadata) MarshalJSON() ([]byte, error) {
1154	type NoMethod Metadata
1155	raw := NoMethod(*s)
1156	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1157}
1158
1159// Mount: Carries information about a particular disk mount inside a
1160// container.
1161type Mount struct {
1162	// Disk: The name of the disk to mount, as specified in the resources
1163	// section.
1164	Disk string `json:"disk,omitempty"`
1165
1166	// Path: The path to mount the disk inside the container.
1167	Path string `json:"path,omitempty"`
1168
1169	// ReadOnly: If true, the disk is mounted read-only inside the
1170	// container.
1171	ReadOnly bool `json:"readOnly,omitempty"`
1172
1173	// ForceSendFields is a list of field names (e.g. "Disk") to
1174	// unconditionally include in API requests. By default, fields with
1175	// empty values are omitted from API requests. However, any non-pointer,
1176	// non-interface field appearing in ForceSendFields will be sent to the
1177	// server regardless of whether the field is empty or not. This may be
1178	// used to include empty fields in Patch requests.
1179	ForceSendFields []string `json:"-"`
1180
1181	// NullFields is a list of field names (e.g. "Disk") to include in API
1182	// requests with the JSON null value. By default, fields with empty
1183	// values are omitted from API requests. However, any field with an
1184	// empty value appearing in NullFields will be sent to the server as
1185	// null. It is an error if a field in this list has a non-empty value.
1186	// This may be used to include null fields in Patch requests.
1187	NullFields []string `json:"-"`
1188}
1189
1190func (s *Mount) MarshalJSON() ([]byte, error) {
1191	type NoMethod Mount
1192	raw := NoMethod(*s)
1193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1194}
1195
1196// Network: VM networking options.
1197type Network struct {
1198	// Name: The network name to attach the VM's network interface to. The
1199	// value will
1200	// be prefixed with `global/networks/` unless it contains a `/`, in
1201	// which
1202	// case it is assumed to be a fully specified network resource URL.
1203	//
1204	// If unspecified, the global default network is used.
1205	Name string `json:"name,omitempty"`
1206
1207	// Subnetwork: If the specified network is configured for custom subnet
1208	// creation, the
1209	// name of the subnetwork to attach the instance to must be specified
1210	// here.
1211	//
1212	// The value is prefixed with `regions/*/subnetworks/` unless it
1213	// contains a
1214	// `/`, in which case it is assumed to be a fully specified
1215	// subnetwork
1216	// resource URL.
1217	//
1218	// If the `*` character appears in the value, it is replaced with the
1219	// region
1220	// that the virtual machine has been allocated in.
1221	Subnetwork string `json:"subnetwork,omitempty"`
1222
1223	// UsePrivateAddress: If set to true, do not attach a public IP address
1224	// to the VM. Note that
1225	// without a public IP address, additional configuration is required
1226	// to
1227	// allow the VM to access Google services.
1228	//
1229	// See
1230	// https://cloud.google.com/vpc/docs/configure-private-google-access
1231	// for more information.
1232	UsePrivateAddress bool `json:"usePrivateAddress,omitempty"`
1233
1234	// ForceSendFields is a list of field names (e.g. "Name") to
1235	// unconditionally include in API requests. By default, fields with
1236	// empty values are omitted from API requests. However, any non-pointer,
1237	// non-interface field appearing in ForceSendFields will be sent to the
1238	// server regardless of whether the field is empty or not. This may be
1239	// used to include empty fields in Patch requests.
1240	ForceSendFields []string `json:"-"`
1241
1242	// NullFields is a list of field names (e.g. "Name") to include in API
1243	// requests with the JSON null value. By default, fields with empty
1244	// values are omitted from API requests. However, any field with an
1245	// empty value appearing in NullFields will be sent to the server as
1246	// null. It is an error if a field in this list has a non-empty value.
1247	// This may be used to include null fields in Patch requests.
1248	NullFields []string `json:"-"`
1249}
1250
1251func (s *Network) MarshalJSON() ([]byte, error) {
1252	type NoMethod Network
1253	raw := NoMethod(*s)
1254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1255}
1256
1257// Operation: This resource represents a long-running operation that is
1258// the result of a
1259// network API call.
1260type Operation struct {
1261	// Done: If the value is `false`, it means the operation is still in
1262	// progress.
1263	// If `true`, the operation is completed, and either `error` or
1264	// `response` is
1265	// available.
1266	Done bool `json:"done,omitempty"`
1267
1268	// Error: The error result of the operation in case of failure or
1269	// cancellation.
1270	Error *Status `json:"error,omitempty"`
1271
1272	// Metadata: An OperationMetadata or Metadata object. This will always
1273	// be returned with the Operation.
1274	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
1275
1276	// Name: The server-assigned name, which is only unique within the same
1277	// service that originally returns it. For example&#58;
1278	// `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
1279	Name string `json:"name,omitempty"`
1280
1281	// Response: An Empty object.
1282	Response googleapi.RawMessage `json:"response,omitempty"`
1283
1284	// ServerResponse contains the HTTP response code and headers from the
1285	// server.
1286	googleapi.ServerResponse `json:"-"`
1287
1288	// ForceSendFields is a list of field names (e.g. "Done") to
1289	// unconditionally include in API requests. By default, fields with
1290	// empty values are omitted from API requests. However, any non-pointer,
1291	// non-interface field appearing in ForceSendFields will be sent to the
1292	// server regardless of whether the field is empty or not. This may be
1293	// used to include empty fields in Patch requests.
1294	ForceSendFields []string `json:"-"`
1295
1296	// NullFields is a list of field names (e.g. "Done") to include in API
1297	// requests with the JSON null value. By default, fields with empty
1298	// values are omitted from API requests. However, any field with an
1299	// empty value appearing in NullFields will be sent to the server as
1300	// null. It is an error if a field in this list has a non-empty value.
1301	// This may be used to include null fields in Patch requests.
1302	NullFields []string `json:"-"`
1303}
1304
1305func (s *Operation) MarshalJSON() ([]byte, error) {
1306	type NoMethod Operation
1307	raw := NoMethod(*s)
1308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1309}
1310
1311// OperationEvent: An event that occurred during an Operation.
1312type OperationEvent struct {
1313	// Description: Required description of event.
1314	Description string `json:"description,omitempty"`
1315
1316	// EndTime: Optional time of when event finished. An event can have a
1317	// start time and no
1318	// finish time. If an event has a finish time, there must be a start
1319	// time.
1320	EndTime string `json:"endTime,omitempty"`
1321
1322	// StartTime: Optional time of when event started.
1323	StartTime string `json:"startTime,omitempty"`
1324
1325	// ForceSendFields is a list of field names (e.g. "Description") to
1326	// unconditionally include in API requests. By default, fields with
1327	// empty values are omitted from API requests. However, any non-pointer,
1328	// non-interface field appearing in ForceSendFields will be sent to the
1329	// server regardless of whether the field is empty or not. This may be
1330	// used to include empty fields in Patch requests.
1331	ForceSendFields []string `json:"-"`
1332
1333	// NullFields is a list of field names (e.g. "Description") to include
1334	// in API requests with the JSON null value. By default, fields with
1335	// empty values are omitted from API requests. However, any field with
1336	// an empty value appearing in NullFields will be sent to the server as
1337	// null. It is an error if a field in this list has a non-empty value.
1338	// This may be used to include null fields in Patch requests.
1339	NullFields []string `json:"-"`
1340}
1341
1342func (s *OperationEvent) MarshalJSON() ([]byte, error) {
1343	type NoMethod OperationEvent
1344	raw := NoMethod(*s)
1345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1346}
1347
1348// OperationMetadata: Metadata describing an Operation.
1349type OperationMetadata struct {
1350	// ClientId: This field is deprecated. Use `labels` instead. Optionally
1351	// provided by the
1352	// caller when submitting the request that creates the operation.
1353	ClientId string `json:"clientId,omitempty"`
1354
1355	// CreateTime: The time at which the job was submitted to the Genomics
1356	// service.
1357	CreateTime string `json:"createTime,omitempty"`
1358
1359	// EndTime: The time at which the job stopped running.
1360	EndTime string `json:"endTime,omitempty"`
1361
1362	// Events: Optional event messages that were generated during the job's
1363	// execution.
1364	// This also contains any warnings that were generated during import
1365	// or export.
1366	Events []*OperationEvent `json:"events,omitempty"`
1367
1368	// Labels: Optionally provided by the caller when submitting the request
1369	// that creates
1370	// the operation.
1371	Labels map[string]string `json:"labels,omitempty"`
1372
1373	// ProjectId: The Google Cloud Project in which the job is scoped.
1374	ProjectId string `json:"projectId,omitempty"`
1375
1376	// Request: The original request that started the operation. Note that
1377	// this will be in
1378	// current version of the API. If the operation was started with v1beta2
1379	// API
1380	// and a GetOperation is performed on v1 API, a v1 request will be
1381	// returned.
1382	Request googleapi.RawMessage `json:"request,omitempty"`
1383
1384	// RuntimeMetadata: Runtime metadata on this Operation.
1385	RuntimeMetadata googleapi.RawMessage `json:"runtimeMetadata,omitempty"`
1386
1387	// StartTime: The time at which the job began to run.
1388	StartTime string `json:"startTime,omitempty"`
1389
1390	// ForceSendFields is a list of field names (e.g. "ClientId") to
1391	// unconditionally include in API requests. By default, fields with
1392	// empty values are omitted from API requests. However, any non-pointer,
1393	// non-interface field appearing in ForceSendFields will be sent to the
1394	// server regardless of whether the field is empty or not. This may be
1395	// used to include empty fields in Patch requests.
1396	ForceSendFields []string `json:"-"`
1397
1398	// NullFields is a list of field names (e.g. "ClientId") to include in
1399	// API requests with the JSON null value. By default, fields with empty
1400	// values are omitted from API requests. However, any field with an
1401	// empty value appearing in NullFields will be sent to the server as
1402	// null. It is an error if a field in this list has a non-empty value.
1403	// This may be used to include null fields in Patch requests.
1404	NullFields []string `json:"-"`
1405}
1406
1407func (s *OperationMetadata) MarshalJSON() ([]byte, error) {
1408	type NoMethod OperationMetadata
1409	raw := NoMethod(*s)
1410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1411}
1412
1413// Pipeline: Specifies a series of actions to execute, expressed as
1414// Docker containers.
1415type Pipeline struct {
1416	// Actions: The list of actions to execute, in the order they are
1417	// specified.
1418	Actions []*Action `json:"actions,omitempty"`
1419
1420	// Environment: The environment to pass into every action. Each action
1421	// can also specify
1422	// additional environment variables but cannot delete an entry from this
1423	// map
1424	// (though they can overwrite it with a different value).
1425	Environment map[string]string `json:"environment,omitempty"`
1426
1427	// Resources: The resources required for execution.
1428	Resources *Resources `json:"resources,omitempty"`
1429
1430	// Timeout: The maximum amount of time to give the pipeline to complete.
1431	//  This includes
1432	// the time spent waiting for a worker to be allocated.  If the pipeline
1433	// fails
1434	// to complete before the timeout, it will be cancelled and the error
1435	// code
1436	// will be set to DEADLINE_EXCEEDED.
1437	//
1438	// If unspecified, it will default to 7 days.
1439	Timeout string `json:"timeout,omitempty"`
1440
1441	// ForceSendFields is a list of field names (e.g. "Actions") to
1442	// unconditionally include in API requests. By default, fields with
1443	// empty values are omitted from API requests. However, any non-pointer,
1444	// non-interface field appearing in ForceSendFields will be sent to the
1445	// server regardless of whether the field is empty or not. This may be
1446	// used to include empty fields in Patch requests.
1447	ForceSendFields []string `json:"-"`
1448
1449	// NullFields is a list of field names (e.g. "Actions") to include in
1450	// API requests with the JSON null value. By default, fields with empty
1451	// values are omitted from API requests. However, any field with an
1452	// empty value appearing in NullFields will be sent to the server as
1453	// null. It is an error if a field in this list has a non-empty value.
1454	// This may be used to include null fields in Patch requests.
1455	NullFields []string `json:"-"`
1456}
1457
1458func (s *Pipeline) MarshalJSON() ([]byte, error) {
1459	type NoMethod Pipeline
1460	raw := NoMethod(*s)
1461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1462}
1463
1464// PullStartedEvent: An event generated when the worker starts pulling
1465// an image.
1466type PullStartedEvent struct {
1467	// ImageUri: The URI of the image that was pulled.
1468	ImageUri string `json:"imageUri,omitempty"`
1469
1470	// ForceSendFields is a list of field names (e.g. "ImageUri") to
1471	// unconditionally include in API requests. By default, fields with
1472	// empty values are omitted from API requests. However, any non-pointer,
1473	// non-interface field appearing in ForceSendFields will be sent to the
1474	// server regardless of whether the field is empty or not. This may be
1475	// used to include empty fields in Patch requests.
1476	ForceSendFields []string `json:"-"`
1477
1478	// NullFields is a list of field names (e.g. "ImageUri") to include in
1479	// API requests with the JSON null value. By default, fields with empty
1480	// values are omitted from API requests. However, any field with an
1481	// empty value appearing in NullFields will be sent to the server as
1482	// null. It is an error if a field in this list has a non-empty value.
1483	// This may be used to include null fields in Patch requests.
1484	NullFields []string `json:"-"`
1485}
1486
1487func (s *PullStartedEvent) MarshalJSON() ([]byte, error) {
1488	type NoMethod PullStartedEvent
1489	raw := NoMethod(*s)
1490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1491}
1492
1493// PullStoppedEvent: An event generated when the worker stops pulling an
1494// image.
1495type PullStoppedEvent struct {
1496	// ImageUri: The URI of the image that was pulled.
1497	ImageUri string `json:"imageUri,omitempty"`
1498
1499	// ForceSendFields is a list of field names (e.g. "ImageUri") to
1500	// unconditionally include in API requests. By default, fields with
1501	// empty values are omitted from API requests. However, any non-pointer,
1502	// non-interface field appearing in ForceSendFields will be sent to the
1503	// server regardless of whether the field is empty or not. This may be
1504	// used to include empty fields in Patch requests.
1505	ForceSendFields []string `json:"-"`
1506
1507	// NullFields is a list of field names (e.g. "ImageUri") to include in
1508	// API requests with the JSON null value. By default, fields with empty
1509	// values are omitted from API requests. However, any field with an
1510	// empty value appearing in NullFields will be sent to the server as
1511	// null. It is an error if a field in this list has a non-empty value.
1512	// This may be used to include null fields in Patch requests.
1513	NullFields []string `json:"-"`
1514}
1515
1516func (s *PullStoppedEvent) MarshalJSON() ([]byte, error) {
1517	type NoMethod PullStoppedEvent
1518	raw := NoMethod(*s)
1519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1520}
1521
1522// Resources: The system resources for the pipeline run.
1523//
1524// At least one zone or region must be specified or the pipeline run
1525// will fail.
1526type Resources struct {
1527	// ProjectId: The project ID to allocate resources in.
1528	ProjectId string `json:"projectId,omitempty"`
1529
1530	// Regions: The list of regions allowed for VM allocation. If set, the
1531	// `zones` field
1532	// must not be set.
1533	Regions []string `json:"regions,omitempty"`
1534
1535	// VirtualMachine: The virtual machine specification.
1536	VirtualMachine *VirtualMachine `json:"virtualMachine,omitempty"`
1537
1538	// Zones: The list of zones allowed for VM allocation. If set, the
1539	// `regions` field
1540	// must not be set.
1541	Zones []string `json:"zones,omitempty"`
1542
1543	// ForceSendFields is a list of field names (e.g. "ProjectId") to
1544	// unconditionally include in API requests. By default, fields with
1545	// empty values are omitted from API requests. However, any non-pointer,
1546	// non-interface field appearing in ForceSendFields will be sent to the
1547	// server regardless of whether the field is empty or not. This may be
1548	// used to include empty fields in Patch requests.
1549	ForceSendFields []string `json:"-"`
1550
1551	// NullFields is a list of field names (e.g. "ProjectId") to include in
1552	// API requests with the JSON null value. By default, fields with empty
1553	// values are omitted from API requests. However, any field with an
1554	// empty value appearing in NullFields will be sent to the server as
1555	// null. It is an error if a field in this list has a non-empty value.
1556	// This may be used to include null fields in Patch requests.
1557	NullFields []string `json:"-"`
1558}
1559
1560func (s *Resources) MarshalJSON() ([]byte, error) {
1561	type NoMethod Resources
1562	raw := NoMethod(*s)
1563	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1564}
1565
1566// RunPipelineRequest: The arguments to the `RunPipeline` method. The
1567// requesting user must have
1568// the `iam.serviceAccounts.actAs` permission for the Cloud Genomics
1569// service
1570// account or the request will fail.
1571type RunPipelineRequest struct {
1572	// Labels: User-defined labels to associate with the returned operation.
1573	// These
1574	// labels are not propagated to any Google Cloud Platform resources used
1575	// by
1576	// the operation, and can be modified at any time.
1577	//
1578	// To associate labels with resources created while executing the
1579	// operation,
1580	// see the appropriate resource message (for example, `VirtualMachine`).
1581	Labels map[string]string `json:"labels,omitempty"`
1582
1583	// Pipeline: The description of the pipeline to run.
1584	Pipeline *Pipeline `json:"pipeline,omitempty"`
1585
1586	// ForceSendFields is a list of field names (e.g. "Labels") to
1587	// unconditionally include in API requests. By default, fields with
1588	// empty values are omitted from API requests. However, any non-pointer,
1589	// non-interface field appearing in ForceSendFields will be sent to the
1590	// server regardless of whether the field is empty or not. This may be
1591	// used to include empty fields in Patch requests.
1592	ForceSendFields []string `json:"-"`
1593
1594	// NullFields is a list of field names (e.g. "Labels") to include in API
1595	// requests with the JSON null value. By default, fields with empty
1596	// values are omitted from API requests. However, any field with an
1597	// empty value appearing in NullFields will be sent to the server as
1598	// null. It is an error if a field in this list has a non-empty value.
1599	// This may be used to include null fields in Patch requests.
1600	NullFields []string `json:"-"`
1601}
1602
1603func (s *RunPipelineRequest) MarshalJSON() ([]byte, error) {
1604	type NoMethod RunPipelineRequest
1605	raw := NoMethod(*s)
1606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1607}
1608
1609// RunPipelineResponse: The response to the RunPipeline method, returned
1610// in the operation's result
1611// field on success.
1612type RunPipelineResponse struct {
1613}
1614
1615// RuntimeMetadata: Runtime metadata that will be populated in
1616// the
1617// runtimeMetadata
1618// field of the Operation associated with a RunPipeline execution.
1619type RuntimeMetadata struct {
1620	// ComputeEngine: Execution information specific to Google Compute
1621	// Engine.
1622	ComputeEngine *ComputeEngine `json:"computeEngine,omitempty"`
1623
1624	// ForceSendFields is a list of field names (e.g. "ComputeEngine") to
1625	// unconditionally include in API requests. By default, fields with
1626	// empty values are omitted from API requests. However, any non-pointer,
1627	// non-interface field appearing in ForceSendFields will be sent to the
1628	// server regardless of whether the field is empty or not. This may be
1629	// used to include empty fields in Patch requests.
1630	ForceSendFields []string `json:"-"`
1631
1632	// NullFields is a list of field names (e.g. "ComputeEngine") to include
1633	// in API requests with the JSON null value. By default, fields with
1634	// empty values are omitted from API requests. However, any field with
1635	// an empty value appearing in NullFields will be sent to the server as
1636	// null. It is an error if a field in this list has a non-empty value.
1637	// This may be used to include null fields in Patch requests.
1638	NullFields []string `json:"-"`
1639}
1640
1641func (s *RuntimeMetadata) MarshalJSON() ([]byte, error) {
1642	type NoMethod RuntimeMetadata
1643	raw := NoMethod(*s)
1644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1645}
1646
1647// Secret: Holds encrypted information that is only decrypted and stored
1648// in RAM
1649// by the worker VM when running the pipeline.
1650type Secret struct {
1651	// CipherText: The value of the cipherText response from the `encrypt`
1652	// method. This field
1653	// is intentionally unaudited.
1654	CipherText string `json:"cipherText,omitempty"`
1655
1656	// KeyName: The name of the Cloud KMS key that will be used to decrypt
1657	// the secret
1658	// value. The VM service account must have the required permissions
1659	// and
1660	// authentication scopes to invoke the `decrypt` method on the specified
1661	// key.
1662	KeyName string `json:"keyName,omitempty"`
1663
1664	// ForceSendFields is a list of field names (e.g. "CipherText") to
1665	// unconditionally include in API requests. By default, fields with
1666	// empty values are omitted from API requests. However, any non-pointer,
1667	// non-interface field appearing in ForceSendFields will be sent to the
1668	// server regardless of whether the field is empty or not. This may be
1669	// used to include empty fields in Patch requests.
1670	ForceSendFields []string `json:"-"`
1671
1672	// NullFields is a list of field names (e.g. "CipherText") to include in
1673	// API requests with the JSON null value. By default, fields with empty
1674	// values are omitted from API requests. However, any field with an
1675	// empty value appearing in NullFields will be sent to the server as
1676	// null. It is an error if a field in this list has a non-empty value.
1677	// This may be used to include null fields in Patch requests.
1678	NullFields []string `json:"-"`
1679}
1680
1681func (s *Secret) MarshalJSON() ([]byte, error) {
1682	type NoMethod Secret
1683	raw := NoMethod(*s)
1684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1685}
1686
1687// ServiceAccount: Carries information about a Google Cloud service
1688// account.
1689type ServiceAccount struct {
1690	// Email: Email address of the service account. If not specified, the
1691	// default
1692	// Compute Engine service account for the project will be used.
1693	Email string `json:"email,omitempty"`
1694
1695	// Scopes: List of scopes to be enabled for this service account on the
1696	// VM, in
1697	// addition to the Cloud Genomics API scope.
1698	Scopes []string `json:"scopes,omitempty"`
1699
1700	// ForceSendFields is a list of field names (e.g. "Email") to
1701	// unconditionally include in API requests. By default, fields with
1702	// empty values are omitted from API requests. However, any non-pointer,
1703	// non-interface field appearing in ForceSendFields will be sent to the
1704	// server regardless of whether the field is empty or not. This may be
1705	// used to include empty fields in Patch requests.
1706	ForceSendFields []string `json:"-"`
1707
1708	// NullFields is a list of field names (e.g. "Email") to include in API
1709	// requests with the JSON null value. By default, fields with empty
1710	// values are omitted from API requests. However, any field with an
1711	// empty value appearing in NullFields will be sent to the server as
1712	// null. It is an error if a field in this list has a non-empty value.
1713	// This may be used to include null fields in Patch requests.
1714	NullFields []string `json:"-"`
1715}
1716
1717func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
1718	type NoMethod ServiceAccount
1719	raw := NoMethod(*s)
1720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1721}
1722
1723// Status: The `Status` type defines a logical error model that is
1724// suitable for
1725// different programming environments, including REST APIs and RPC APIs.
1726// It is
1727// used by [gRPC](https://github.com/grpc). Each `Status` message
1728// contains
1729// three pieces of data: error code, error message, and error
1730// details.
1731//
1732// You can find out more about this error model and how to work with it
1733// in the
1734// [API Design Guide](https://cloud.google.com/apis/design/errors).
1735type Status struct {
1736	// Code: The status code, which should be an enum value of
1737	// google.rpc.Code.
1738	Code int64 `json:"code,omitempty"`
1739
1740	// Details: A list of messages that carry the error details.  There is a
1741	// common set of
1742	// message types for APIs to use.
1743	Details []googleapi.RawMessage `json:"details,omitempty"`
1744
1745	// Message: A developer-facing error message, which should be in
1746	// English. Any
1747	// user-facing error message should be localized and sent in
1748	// the
1749	// google.rpc.Status.details field, or localized by the client.
1750	Message string `json:"message,omitempty"`
1751
1752	// ForceSendFields is a list of field names (e.g. "Code") to
1753	// unconditionally include in API requests. By default, fields with
1754	// empty values are omitted from API requests. However, any non-pointer,
1755	// non-interface field appearing in ForceSendFields will be sent to the
1756	// server regardless of whether the field is empty or not. This may be
1757	// used to include empty fields in Patch requests.
1758	ForceSendFields []string `json:"-"`
1759
1760	// NullFields is a list of field names (e.g. "Code") to include in API
1761	// requests with the JSON null value. By default, fields with empty
1762	// values are omitted from API requests. However, any field with an
1763	// empty value appearing in NullFields will be sent to the server as
1764	// null. It is an error if a field in this list has a non-empty value.
1765	// This may be used to include null fields in Patch requests.
1766	NullFields []string `json:"-"`
1767}
1768
1769func (s *Status) MarshalJSON() ([]byte, error) {
1770	type NoMethod Status
1771	raw := NoMethod(*s)
1772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1773}
1774
1775// UnexpectedExitStatusEvent: An event generated when the execution of a
1776// container results in a
1777// non-zero exit status that was not otherwise ignored. Execution
1778// will
1779// continue, but only actions that are flagged as `ALWAYS_RUN` will
1780// be
1781// executed. Other actions will be skipped.
1782type UnexpectedExitStatusEvent struct {
1783	// ActionId: The numeric ID of the action that started the container.
1784	ActionId int64 `json:"actionId,omitempty"`
1785
1786	// ExitStatus: The exit status of the container.
1787	ExitStatus int64 `json:"exitStatus,omitempty"`
1788
1789	// ForceSendFields is a list of field names (e.g. "ActionId") to
1790	// unconditionally include in API requests. By default, fields with
1791	// empty values are omitted from API requests. However, any non-pointer,
1792	// non-interface field appearing in ForceSendFields will be sent to the
1793	// server regardless of whether the field is empty or not. This may be
1794	// used to include empty fields in Patch requests.
1795	ForceSendFields []string `json:"-"`
1796
1797	// NullFields is a list of field names (e.g. "ActionId") to include in
1798	// API requests with the JSON null value. By default, fields with empty
1799	// values are omitted from API requests. However, any field with an
1800	// empty value appearing in NullFields will be sent to the server as
1801	// null. It is an error if a field in this list has a non-empty value.
1802	// This may be used to include null fields in Patch requests.
1803	NullFields []string `json:"-"`
1804}
1805
1806func (s *UnexpectedExitStatusEvent) MarshalJSON() ([]byte, error) {
1807	type NoMethod UnexpectedExitStatusEvent
1808	raw := NoMethod(*s)
1809	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1810}
1811
1812// VirtualMachine: Carries information about a Compute Engine VM
1813// resource.
1814type VirtualMachine struct {
1815	// Accelerators: The list of accelerators to attach to the VM.
1816	Accelerators []*Accelerator `json:"accelerators,omitempty"`
1817
1818	// BootDiskSizeGb: The size of the boot disk, in GB. The boot disk must
1819	// be large
1820	// enough to accommodate all of the Docker images from each action in
1821	// the
1822	// pipeline at the same time. If not specified, a small but
1823	// reasonable
1824	// default value is used.
1825	BootDiskSizeGb int64 `json:"bootDiskSizeGb,omitempty"`
1826
1827	// BootImage: The host operating system image to use.
1828	//
1829	// Currently, only Container-Optimized OS images can be used.
1830	//
1831	// The default value is
1832	// `projects/cos-cloud/global/images/family/cos-stable`,
1833	// which selects the latest stable release of Container-Optimized
1834	// OS.
1835	//
1836	// This option is provided to allow testing against the beta release of
1837	// the
1838	// operating system to ensure that the new version does not
1839	// interact
1840	// negatively with production pipelines.
1841	//
1842	// To test a pipeline against the beta release of Container-Optimized
1843	// OS,
1844	// use the value `projects/cos-cloud/global/images/family/cos-beta`.
1845	BootImage string `json:"bootImage,omitempty"`
1846
1847	// CpuPlatform: The CPU platform to request. An instance based on a
1848	// newer platform can be
1849	// allocated, but never one with fewer capabilities. The value of
1850	// this
1851	// parameter must be a valid Compute Engine CPU platform name (such as
1852	// "Intel
1853	// Skylake"). This parameter is only useful for carefully optimized
1854	// work
1855	// loads where the CPU platform has a significant impact.
1856	//
1857	// For more information about the effect of this parameter,
1858	// see
1859	// https://cloud.google.com/compute/docs/instances/specify-min-cpu-pl
1860	// atform.
1861	CpuPlatform string `json:"cpuPlatform,omitempty"`
1862
1863	// Disks: The list of disks to create and attach to the VM.
1864	Disks []*Disk `json:"disks,omitempty"`
1865
1866	// EnableStackdriverMonitoring: Whether Stackdriver monitoring should be
1867	// enabled on the VM.
1868	EnableStackdriverMonitoring bool `json:"enableStackdriverMonitoring,omitempty"`
1869
1870	// Labels: Optional set of labels to apply to the VM and any attached
1871	// disk resources.
1872	// These labels must adhere to the name and value restrictions on VM
1873	// labels
1874	// imposed by Compute Engine.
1875	//
1876	// Labels applied at creation time to the VM. Applied on a best-effort
1877	// basis
1878	// to attached disk resources shortly after VM creation.
1879	Labels map[string]string `json:"labels,omitempty"`
1880
1881	// MachineType: The machine type of the virtual machine to create. Must
1882	// be the short name
1883	// of a standard machine type (such as "n1-standard-1") or a custom
1884	// machine
1885	// type (such as "custom-1-4096", where "1" indicates the number of
1886	// vCPUs and
1887	// "4096" indicates the memory in MB). See
1888	// [Creating an instance with a custom
1889	// machine
1890	// type](https://cloud.google.com/compute/docs/instances/creating
1891	// -instance-with-custom-machine-type#create)
1892	// for more specifications on creating a custom machine type.
1893	MachineType string `json:"machineType,omitempty"`
1894
1895	// Network: The VM network configuration.
1896	Network *Network `json:"network,omitempty"`
1897
1898	// NvidiaDriverVersion: The NVIDIA driver version to use when attaching
1899	// an NVIDIA GPU accelerator.
1900	// The version specified here must be compatible with the GPU
1901	// libraries
1902	// contained in the container being executed, and must be one of the
1903	// drivers
1904	// hosted in the `nvidia-drivers-us-public` bucket on Google Cloud
1905	// Storage.
1906	NvidiaDriverVersion string `json:"nvidiaDriverVersion,omitempty"`
1907
1908	// Preemptible: If true, allocate a preemptible VM.
1909	Preemptible bool `json:"preemptible,omitempty"`
1910
1911	// ServiceAccount: The service account to install on the VM. This
1912	// account does not need
1913	// any permissions other than those required by the pipeline.
1914	ServiceAccount *ServiceAccount `json:"serviceAccount,omitempty"`
1915
1916	// ForceSendFields is a list of field names (e.g. "Accelerators") to
1917	// unconditionally include in API requests. By default, fields with
1918	// empty values are omitted from API requests. However, any non-pointer,
1919	// non-interface field appearing in ForceSendFields will be sent to the
1920	// server regardless of whether the field is empty or not. This may be
1921	// used to include empty fields in Patch requests.
1922	ForceSendFields []string `json:"-"`
1923
1924	// NullFields is a list of field names (e.g. "Accelerators") to include
1925	// in API requests with the JSON null value. By default, fields with
1926	// empty values are omitted from API requests. However, any field with
1927	// an empty value appearing in NullFields will be sent to the server as
1928	// null. It is an error if a field in this list has a non-empty value.
1929	// This may be used to include null fields in Patch requests.
1930	NullFields []string `json:"-"`
1931}
1932
1933func (s *VirtualMachine) MarshalJSON() ([]byte, error) {
1934	type NoMethod VirtualMachine
1935	raw := NoMethod(*s)
1936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1937}
1938
1939// WorkerAssignedEvent: An event generated after a worker VM has been
1940// assigned to run the
1941// pipeline.
1942type WorkerAssignedEvent struct {
1943	// Instance: The worker's instance name.
1944	Instance string `json:"instance,omitempty"`
1945
1946	// Zone: The zone the worker is running in.
1947	Zone string `json:"zone,omitempty"`
1948
1949	// ForceSendFields is a list of field names (e.g. "Instance") to
1950	// unconditionally include in API requests. By default, fields with
1951	// empty values are omitted from API requests. However, any non-pointer,
1952	// non-interface field appearing in ForceSendFields will be sent to the
1953	// server regardless of whether the field is empty or not. This may be
1954	// used to include empty fields in Patch requests.
1955	ForceSendFields []string `json:"-"`
1956
1957	// NullFields is a list of field names (e.g. "Instance") to include in
1958	// API requests with the JSON null value. By default, fields with empty
1959	// values are omitted from API requests. However, any field with an
1960	// empty value appearing in NullFields will be sent to the server as
1961	// null. It is an error if a field in this list has a non-empty value.
1962	// This may be used to include null fields in Patch requests.
1963	NullFields []string `json:"-"`
1964}
1965
1966func (s *WorkerAssignedEvent) MarshalJSON() ([]byte, error) {
1967	type NoMethod WorkerAssignedEvent
1968	raw := NoMethod(*s)
1969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1970}
1971
1972// WorkerReleasedEvent: An event generated when the worker VM that was
1973// assigned to the pipeline
1974// has been released (deleted).
1975type WorkerReleasedEvent struct {
1976	// Instance: The worker's instance name.
1977	Instance string `json:"instance,omitempty"`
1978
1979	// Zone: The zone the worker was running in.
1980	Zone string `json:"zone,omitempty"`
1981
1982	// ForceSendFields is a list of field names (e.g. "Instance") to
1983	// unconditionally include in API requests. By default, fields with
1984	// empty values are omitted from API requests. However, any non-pointer,
1985	// non-interface field appearing in ForceSendFields will be sent to the
1986	// server regardless of whether the field is empty or not. This may be
1987	// used to include empty fields in Patch requests.
1988	ForceSendFields []string `json:"-"`
1989
1990	// NullFields is a list of field names (e.g. "Instance") to include in
1991	// API requests with the JSON null value. By default, fields with empty
1992	// values are omitted from API requests. However, any field with an
1993	// empty value appearing in NullFields will be sent to the server as
1994	// null. It is an error if a field in this list has a non-empty value.
1995	// This may be used to include null fields in Patch requests.
1996	NullFields []string `json:"-"`
1997}
1998
1999func (s *WorkerReleasedEvent) MarshalJSON() ([]byte, error) {
2000	type NoMethod WorkerReleasedEvent
2001	raw := NoMethod(*s)
2002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2003}
2004
2005// WorkerStatus: The status of the worker VM.
2006type WorkerStatus struct {
2007	// AttachedDisks: Status of attached disks.
2008	AttachedDisks map[string]DiskStatus `json:"attachedDisks,omitempty"`
2009
2010	// BootDisk: Status of the boot disk.
2011	BootDisk *DiskStatus `json:"bootDisk,omitempty"`
2012
2013	// FreeRamBytes: Free RAM.
2014	FreeRamBytes uint64 `json:"freeRamBytes,omitempty,string"`
2015
2016	// TotalRamBytes: Total RAM.
2017	TotalRamBytes uint64 `json:"totalRamBytes,omitempty,string"`
2018
2019	// UptimeSeconds: System uptime.
2020	UptimeSeconds int64 `json:"uptimeSeconds,omitempty,string"`
2021
2022	// ForceSendFields is a list of field names (e.g. "AttachedDisks") to
2023	// unconditionally include in API requests. By default, fields with
2024	// empty values are omitted from API requests. However, any non-pointer,
2025	// non-interface field appearing in ForceSendFields will be sent to the
2026	// server regardless of whether the field is empty or not. This may be
2027	// used to include empty fields in Patch requests.
2028	ForceSendFields []string `json:"-"`
2029
2030	// NullFields is a list of field names (e.g. "AttachedDisks") to include
2031	// in API requests with the JSON null value. By default, fields with
2032	// empty values are omitted from API requests. However, any field with
2033	// an empty value appearing in NullFields will be sent to the server as
2034	// null. It is an error if a field in this list has a non-empty value.
2035	// This may be used to include null fields in Patch requests.
2036	NullFields []string `json:"-"`
2037}
2038
2039func (s *WorkerStatus) MarshalJSON() ([]byte, error) {
2040	type NoMethod WorkerStatus
2041	raw := NoMethod(*s)
2042	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2043}
2044
2045// method id "genomics.pipelines.run":
2046
2047type PipelinesRunCall struct {
2048	s                  *Service
2049	runpipelinerequest *RunPipelineRequest
2050	urlParams_         gensupport.URLParams
2051	ctx_               context.Context
2052	header_            http.Header
2053}
2054
2055// Run: Runs a pipeline.
2056//
2057// **Note:** Before you can use this method, the Genomics Service
2058// Agent
2059// must have access to your project. This is done automatically when
2060// the
2061// Cloud Genomics API is first enabled, but if you delete this
2062// permission,
2063// or if you enabled the Cloud Genomics API before the v2alpha1
2064// API
2065// launch, you must disable and re-enable the API to grant the
2066// Genomics
2067// Service Agent the required permissions.
2068// Authorization requires the following
2069// [Google
2070// IAM](https://cloud.google.com/iam/) permission:
2071//
2072// * `genomics.operations.create`
2073//
2074// [1]: /genomics/gsa
2075func (r *PipelinesService) Run(runpipelinerequest *RunPipelineRequest) *PipelinesRunCall {
2076	c := &PipelinesRunCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2077	c.runpipelinerequest = runpipelinerequest
2078	return c
2079}
2080
2081// Fields allows partial responses to be retrieved. See
2082// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2083// for more information.
2084func (c *PipelinesRunCall) Fields(s ...googleapi.Field) *PipelinesRunCall {
2085	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2086	return c
2087}
2088
2089// Context sets the context to be used in this call's Do method. Any
2090// pending HTTP request will be aborted if the provided context is
2091// canceled.
2092func (c *PipelinesRunCall) Context(ctx context.Context) *PipelinesRunCall {
2093	c.ctx_ = ctx
2094	return c
2095}
2096
2097// Header returns an http.Header that can be modified by the caller to
2098// add HTTP headers to the request.
2099func (c *PipelinesRunCall) Header() http.Header {
2100	if c.header_ == nil {
2101		c.header_ = make(http.Header)
2102	}
2103	return c.header_
2104}
2105
2106func (c *PipelinesRunCall) doRequest(alt string) (*http.Response, error) {
2107	reqHeaders := make(http.Header)
2108	for k, v := range c.header_ {
2109		reqHeaders[k] = v
2110	}
2111	reqHeaders.Set("User-Agent", c.s.userAgent())
2112	var body io.Reader = nil
2113	body, err := googleapi.WithoutDataWrapper.JSONReader(c.runpipelinerequest)
2114	if err != nil {
2115		return nil, err
2116	}
2117	reqHeaders.Set("Content-Type", "application/json")
2118	c.urlParams_.Set("alt", alt)
2119	c.urlParams_.Set("prettyPrint", "false")
2120	urls := googleapi.ResolveRelative(c.s.BasePath, "v2alpha1/pipelines:run")
2121	urls += "?" + c.urlParams_.Encode()
2122	req, err := http.NewRequest("POST", urls, body)
2123	if err != nil {
2124		return nil, err
2125	}
2126	req.Header = reqHeaders
2127	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2128}
2129
2130// Do executes the "genomics.pipelines.run" call.
2131// Exactly one of *Operation or error will be non-nil. Any non-2xx
2132// status code is an error. Response headers are in either
2133// *Operation.ServerResponse.Header or (if a response was returned at
2134// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
2135// to check whether the returned error was because
2136// http.StatusNotModified was returned.
2137func (c *PipelinesRunCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
2138	gensupport.SetOptions(c.urlParams_, opts...)
2139	res, err := c.doRequest("json")
2140	if res != nil && res.StatusCode == http.StatusNotModified {
2141		if res.Body != nil {
2142			res.Body.Close()
2143		}
2144		return nil, &googleapi.Error{
2145			Code:   res.StatusCode,
2146			Header: res.Header,
2147		}
2148	}
2149	if err != nil {
2150		return nil, err
2151	}
2152	defer googleapi.CloseBody(res)
2153	if err := googleapi.CheckResponse(res); err != nil {
2154		return nil, err
2155	}
2156	ret := &Operation{
2157		ServerResponse: googleapi.ServerResponse{
2158			Header:         res.Header,
2159			HTTPStatusCode: res.StatusCode,
2160		},
2161	}
2162	target := &ret
2163	if err := gensupport.DecodeResponse(target, res); err != nil {
2164		return nil, err
2165	}
2166	return ret, nil
2167	// {
2168	//   "description": "Runs a pipeline.\n\n**Note:** Before you can use this method, the Genomics Service Agent\nmust have access to your project. This is done automatically when the\nCloud Genomics API is first enabled, but if you delete this permission,\nor if you enabled the Cloud Genomics API before the v2alpha1 API\nlaunch, you must disable and re-enable the API to grant the Genomics\nService Agent the required permissions.\nAuthorization requires the following [Google\nIAM](https://cloud.google.com/iam/) permission:\n\n* `genomics.operations.create`\n\n[1]: /genomics/gsa",
2169	//   "flatPath": "v2alpha1/pipelines:run",
2170	//   "httpMethod": "POST",
2171	//   "id": "genomics.pipelines.run",
2172	//   "parameterOrder": [],
2173	//   "parameters": {},
2174	//   "path": "v2alpha1/pipelines:run",
2175	//   "request": {
2176	//     "$ref": "RunPipelineRequest"
2177	//   },
2178	//   "response": {
2179	//     "$ref": "Operation"
2180	//   },
2181	//   "scopes": [
2182	//     "https://www.googleapis.com/auth/cloud-platform",
2183	//     "https://www.googleapis.com/auth/genomics"
2184	//   ]
2185	// }
2186
2187}
2188
2189// method id "genomics.projects.operations.cancel":
2190
2191type ProjectsOperationsCancelCall struct {
2192	s                      *Service
2193	name                   string
2194	canceloperationrequest *CancelOperationRequest
2195	urlParams_             gensupport.URLParams
2196	ctx_                   context.Context
2197	header_                http.Header
2198}
2199
2200// Cancel: Starts asynchronous cancellation on a long-running
2201// operation.
2202// The server makes a best effort to cancel the operation, but success
2203// is not
2204// guaranteed. Clients may use Operations.GetOperation
2205// or Operations.ListOperations
2206// to check whether the cancellation succeeded or the operation
2207// completed
2208// despite cancellation.
2209// Authorization requires the following [Google
2210// IAM](https://cloud.google.com/iam) permission&#58;
2211//
2212// * `genomics.operations.cancel`
2213func (r *ProjectsOperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *ProjectsOperationsCancelCall {
2214	c := &ProjectsOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2215	c.name = name
2216	c.canceloperationrequest = canceloperationrequest
2217	return c
2218}
2219
2220// Fields allows partial responses to be retrieved. See
2221// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2222// for more information.
2223func (c *ProjectsOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsOperationsCancelCall {
2224	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2225	return c
2226}
2227
2228// Context sets the context to be used in this call's Do method. Any
2229// pending HTTP request will be aborted if the provided context is
2230// canceled.
2231func (c *ProjectsOperationsCancelCall) Context(ctx context.Context) *ProjectsOperationsCancelCall {
2232	c.ctx_ = ctx
2233	return c
2234}
2235
2236// Header returns an http.Header that can be modified by the caller to
2237// add HTTP headers to the request.
2238func (c *ProjectsOperationsCancelCall) Header() http.Header {
2239	if c.header_ == nil {
2240		c.header_ = make(http.Header)
2241	}
2242	return c.header_
2243}
2244
2245func (c *ProjectsOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
2246	reqHeaders := make(http.Header)
2247	for k, v := range c.header_ {
2248		reqHeaders[k] = v
2249	}
2250	reqHeaders.Set("User-Agent", c.s.userAgent())
2251	var body io.Reader = nil
2252	body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest)
2253	if err != nil {
2254		return nil, err
2255	}
2256	reqHeaders.Set("Content-Type", "application/json")
2257	c.urlParams_.Set("alt", alt)
2258	c.urlParams_.Set("prettyPrint", "false")
2259	urls := googleapi.ResolveRelative(c.s.BasePath, "v2alpha1/{+name}:cancel")
2260	urls += "?" + c.urlParams_.Encode()
2261	req, err := http.NewRequest("POST", urls, body)
2262	if err != nil {
2263		return nil, err
2264	}
2265	req.Header = reqHeaders
2266	googleapi.Expand(req.URL, map[string]string{
2267		"name": c.name,
2268	})
2269	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2270}
2271
2272// Do executes the "genomics.projects.operations.cancel" call.
2273// Exactly one of *Empty or error will be non-nil. Any non-2xx status
2274// code is an error. Response headers are in either
2275// *Empty.ServerResponse.Header or (if a response was returned at all)
2276// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
2277// check whether the returned error was because http.StatusNotModified
2278// was returned.
2279func (c *ProjectsOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
2280	gensupport.SetOptions(c.urlParams_, opts...)
2281	res, err := c.doRequest("json")
2282	if res != nil && res.StatusCode == http.StatusNotModified {
2283		if res.Body != nil {
2284			res.Body.Close()
2285		}
2286		return nil, &googleapi.Error{
2287			Code:   res.StatusCode,
2288			Header: res.Header,
2289		}
2290	}
2291	if err != nil {
2292		return nil, err
2293	}
2294	defer googleapi.CloseBody(res)
2295	if err := googleapi.CheckResponse(res); err != nil {
2296		return nil, err
2297	}
2298	ret := &Empty{
2299		ServerResponse: googleapi.ServerResponse{
2300			Header:         res.Header,
2301			HTTPStatusCode: res.StatusCode,
2302		},
2303	}
2304	target := &ret
2305	if err := gensupport.DecodeResponse(target, res); err != nil {
2306		return nil, err
2307	}
2308	return ret, nil
2309	// {
2310	//   "description": "Starts asynchronous cancellation on a long-running operation.\nThe server makes a best effort to cancel the operation, but success is not\nguaranteed. Clients may use Operations.GetOperation\nor Operations.ListOperations\nto check whether the cancellation succeeded or the operation completed\ndespite cancellation.\nAuthorization requires the following [Google IAM](https://cloud.google.com/iam) permission\u0026#58;\n\n* `genomics.operations.cancel`",
2311	//   "flatPath": "v2alpha1/projects/{projectsId}/operations/{operationsId}:cancel",
2312	//   "httpMethod": "POST",
2313	//   "id": "genomics.projects.operations.cancel",
2314	//   "parameterOrder": [
2315	//     "name"
2316	//   ],
2317	//   "parameters": {
2318	//     "name": {
2319	//       "description": "The name of the operation resource to be cancelled.",
2320	//       "location": "path",
2321	//       "pattern": "^projects/[^/]+/operations/[^/]+$",
2322	//       "required": true,
2323	//       "type": "string"
2324	//     }
2325	//   },
2326	//   "path": "v2alpha1/{+name}:cancel",
2327	//   "request": {
2328	//     "$ref": "CancelOperationRequest"
2329	//   },
2330	//   "response": {
2331	//     "$ref": "Empty"
2332	//   },
2333	//   "scopes": [
2334	//     "https://www.googleapis.com/auth/cloud-platform",
2335	//     "https://www.googleapis.com/auth/genomics"
2336	//   ]
2337	// }
2338
2339}
2340
2341// method id "genomics.projects.operations.get":
2342
2343type ProjectsOperationsGetCall struct {
2344	s            *Service
2345	name         string
2346	urlParams_   gensupport.URLParams
2347	ifNoneMatch_ string
2348	ctx_         context.Context
2349	header_      http.Header
2350}
2351
2352// Get: Gets the latest state of a long-running operation.
2353// Clients can use this method to poll the operation result at intervals
2354// as
2355// recommended by the API service.
2356// Authorization requires the following [Google
2357// IAM](https://cloud.google.com/iam) permission&#58;
2358//
2359// * `genomics.operations.get`
2360func (r *ProjectsOperationsService) Get(name string) *ProjectsOperationsGetCall {
2361	c := &ProjectsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2362	c.name = name
2363	return c
2364}
2365
2366// Fields allows partial responses to be retrieved. See
2367// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2368// for more information.
2369func (c *ProjectsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsOperationsGetCall {
2370	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2371	return c
2372}
2373
2374// IfNoneMatch sets the optional parameter which makes the operation
2375// fail if the object's ETag matches the given value. This is useful for
2376// getting updates only after the object has changed since the last
2377// request. Use googleapi.IsNotModified to check whether the response
2378// error from Do is the result of In-None-Match.
2379func (c *ProjectsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsOperationsGetCall {
2380	c.ifNoneMatch_ = entityTag
2381	return c
2382}
2383
2384// Context sets the context to be used in this call's Do method. Any
2385// pending HTTP request will be aborted if the provided context is
2386// canceled.
2387func (c *ProjectsOperationsGetCall) Context(ctx context.Context) *ProjectsOperationsGetCall {
2388	c.ctx_ = ctx
2389	return c
2390}
2391
2392// Header returns an http.Header that can be modified by the caller to
2393// add HTTP headers to the request.
2394func (c *ProjectsOperationsGetCall) Header() http.Header {
2395	if c.header_ == nil {
2396		c.header_ = make(http.Header)
2397	}
2398	return c.header_
2399}
2400
2401func (c *ProjectsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
2402	reqHeaders := make(http.Header)
2403	for k, v := range c.header_ {
2404		reqHeaders[k] = v
2405	}
2406	reqHeaders.Set("User-Agent", c.s.userAgent())
2407	if c.ifNoneMatch_ != "" {
2408		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2409	}
2410	var body io.Reader = nil
2411	c.urlParams_.Set("alt", alt)
2412	c.urlParams_.Set("prettyPrint", "false")
2413	urls := googleapi.ResolveRelative(c.s.BasePath, "v2alpha1/{+name}")
2414	urls += "?" + c.urlParams_.Encode()
2415	req, err := http.NewRequest("GET", urls, body)
2416	if err != nil {
2417		return nil, err
2418	}
2419	req.Header = reqHeaders
2420	googleapi.Expand(req.URL, map[string]string{
2421		"name": c.name,
2422	})
2423	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2424}
2425
2426// Do executes the "genomics.projects.operations.get" call.
2427// Exactly one of *Operation or error will be non-nil. Any non-2xx
2428// status code is an error. Response headers are in either
2429// *Operation.ServerResponse.Header or (if a response was returned at
2430// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
2431// to check whether the returned error was because
2432// http.StatusNotModified was returned.
2433func (c *ProjectsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
2434	gensupport.SetOptions(c.urlParams_, opts...)
2435	res, err := c.doRequest("json")
2436	if res != nil && res.StatusCode == http.StatusNotModified {
2437		if res.Body != nil {
2438			res.Body.Close()
2439		}
2440		return nil, &googleapi.Error{
2441			Code:   res.StatusCode,
2442			Header: res.Header,
2443		}
2444	}
2445	if err != nil {
2446		return nil, err
2447	}
2448	defer googleapi.CloseBody(res)
2449	if err := googleapi.CheckResponse(res); err != nil {
2450		return nil, err
2451	}
2452	ret := &Operation{
2453		ServerResponse: googleapi.ServerResponse{
2454			Header:         res.Header,
2455			HTTPStatusCode: res.StatusCode,
2456		},
2457	}
2458	target := &ret
2459	if err := gensupport.DecodeResponse(target, res); err != nil {
2460		return nil, err
2461	}
2462	return ret, nil
2463	// {
2464	//   "description": "Gets the latest state of a long-running operation.\nClients can use this method to poll the operation result at intervals as\nrecommended by the API service.\nAuthorization requires the following [Google IAM](https://cloud.google.com/iam) permission\u0026#58;\n\n* `genomics.operations.get`",
2465	//   "flatPath": "v2alpha1/projects/{projectsId}/operations/{operationsId}",
2466	//   "httpMethod": "GET",
2467	//   "id": "genomics.projects.operations.get",
2468	//   "parameterOrder": [
2469	//     "name"
2470	//   ],
2471	//   "parameters": {
2472	//     "name": {
2473	//       "description": "The name of the operation resource.",
2474	//       "location": "path",
2475	//       "pattern": "^projects/[^/]+/operations/[^/]+$",
2476	//       "required": true,
2477	//       "type": "string"
2478	//     }
2479	//   },
2480	//   "path": "v2alpha1/{+name}",
2481	//   "response": {
2482	//     "$ref": "Operation"
2483	//   },
2484	//   "scopes": [
2485	//     "https://www.googleapis.com/auth/cloud-platform",
2486	//     "https://www.googleapis.com/auth/genomics"
2487	//   ]
2488	// }
2489
2490}
2491
2492// method id "genomics.projects.operations.list":
2493
2494type ProjectsOperationsListCall struct {
2495	s            *Service
2496	name         string
2497	urlParams_   gensupport.URLParams
2498	ifNoneMatch_ string
2499	ctx_         context.Context
2500	header_      http.Header
2501}
2502
2503// List: Lists operations that match the specified filter in the
2504// request.
2505// Authorization requires the following [Google
2506// IAM](https://cloud.google.com/iam) permission&#58;
2507//
2508// * `genomics.operations.list`
2509func (r *ProjectsOperationsService) List(name string) *ProjectsOperationsListCall {
2510	c := &ProjectsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2511	c.name = name
2512	return c
2513}
2514
2515// Filter sets the optional parameter "filter": A string for filtering
2516// Operations.
2517// In v2alpha1, the following filter fields are supported&#58;
2518//
2519// * createTime&#58; The time this job was created
2520// * events&#58; The set of event (names) that have occurred while
2521// running
2522//   the pipeline.  The &#58; operator can be used to determine if a
2523//   particular event has occurred.
2524// * error&#58; If the pipeline is running, this value is NULL.  Once
2525// the
2526//   pipeline finishes, the value is the standard Google error code.
2527// * labels.key or labels."key with space" where key is a label key.
2528// * done&#58; If the pipeline is running, this value is false. Once
2529// the
2530//   pipeline finishes, the value is true.
2531//
2532// In v1 and v1alpha2, the following filter fields are supported&#58;
2533//
2534// * projectId&#58; Required. Corresponds to
2535//   OperationMetadata.projectId.
2536// * createTime&#58; The time this job was created, in seconds from the
2537//   [epoch](http://en.wikipedia.org/wiki/Unix_time). Can use `>=`
2538// and/or `<=`
2539//   operators.
2540// * status&#58; Can be `RUNNING`, `SUCCESS`, `FAILURE`, or `CANCELED`.
2541// Only
2542//   one status may be specified.
2543// * labels.key where key is a label key.
2544//
2545// Examples&#58;
2546//
2547// * `projectId = my-project AND createTime >= 1432140000`
2548// * `projectId = my-project AND createTime >= 1432140000 AND createTime
2549// <= 1432150000 AND status = RUNNING`
2550// * `projectId = my-project AND labels.color = *`
2551// * `projectId = my-project AND labels.color = red`
2552func (c *ProjectsOperationsListCall) Filter(filter string) *ProjectsOperationsListCall {
2553	c.urlParams_.Set("filter", filter)
2554	return c
2555}
2556
2557// PageSize sets the optional parameter "pageSize": The maximum number
2558// of results to return. The maximum value is 256.
2559func (c *ProjectsOperationsListCall) PageSize(pageSize int64) *ProjectsOperationsListCall {
2560	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
2561	return c
2562}
2563
2564// PageToken sets the optional parameter "pageToken": The standard list
2565// page token.
2566func (c *ProjectsOperationsListCall) PageToken(pageToken string) *ProjectsOperationsListCall {
2567	c.urlParams_.Set("pageToken", pageToken)
2568	return c
2569}
2570
2571// Fields allows partial responses to be retrieved. See
2572// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2573// for more information.
2574func (c *ProjectsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsOperationsListCall {
2575	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2576	return c
2577}
2578
2579// IfNoneMatch sets the optional parameter which makes the operation
2580// fail if the object's ETag matches the given value. This is useful for
2581// getting updates only after the object has changed since the last
2582// request. Use googleapi.IsNotModified to check whether the response
2583// error from Do is the result of In-None-Match.
2584func (c *ProjectsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsOperationsListCall {
2585	c.ifNoneMatch_ = entityTag
2586	return c
2587}
2588
2589// Context sets the context to be used in this call's Do method. Any
2590// pending HTTP request will be aborted if the provided context is
2591// canceled.
2592func (c *ProjectsOperationsListCall) Context(ctx context.Context) *ProjectsOperationsListCall {
2593	c.ctx_ = ctx
2594	return c
2595}
2596
2597// Header returns an http.Header that can be modified by the caller to
2598// add HTTP headers to the request.
2599func (c *ProjectsOperationsListCall) Header() http.Header {
2600	if c.header_ == nil {
2601		c.header_ = make(http.Header)
2602	}
2603	return c.header_
2604}
2605
2606func (c *ProjectsOperationsListCall) doRequest(alt string) (*http.Response, error) {
2607	reqHeaders := make(http.Header)
2608	for k, v := range c.header_ {
2609		reqHeaders[k] = v
2610	}
2611	reqHeaders.Set("User-Agent", c.s.userAgent())
2612	if c.ifNoneMatch_ != "" {
2613		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2614	}
2615	var body io.Reader = nil
2616	c.urlParams_.Set("alt", alt)
2617	c.urlParams_.Set("prettyPrint", "false")
2618	urls := googleapi.ResolveRelative(c.s.BasePath, "v2alpha1/{+name}")
2619	urls += "?" + c.urlParams_.Encode()
2620	req, err := http.NewRequest("GET", urls, body)
2621	if err != nil {
2622		return nil, err
2623	}
2624	req.Header = reqHeaders
2625	googleapi.Expand(req.URL, map[string]string{
2626		"name": c.name,
2627	})
2628	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2629}
2630
2631// Do executes the "genomics.projects.operations.list" call.
2632// Exactly one of *ListOperationsResponse or error will be non-nil. Any
2633// non-2xx status code is an error. Response headers are in either
2634// *ListOperationsResponse.ServerResponse.Header or (if a response was
2635// returned at all) in error.(*googleapi.Error).Header. Use
2636// googleapi.IsNotModified to check whether the returned error was
2637// because http.StatusNotModified was returned.
2638func (c *ProjectsOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
2639	gensupport.SetOptions(c.urlParams_, opts...)
2640	res, err := c.doRequest("json")
2641	if res != nil && res.StatusCode == http.StatusNotModified {
2642		if res.Body != nil {
2643			res.Body.Close()
2644		}
2645		return nil, &googleapi.Error{
2646			Code:   res.StatusCode,
2647			Header: res.Header,
2648		}
2649	}
2650	if err != nil {
2651		return nil, err
2652	}
2653	defer googleapi.CloseBody(res)
2654	if err := googleapi.CheckResponse(res); err != nil {
2655		return nil, err
2656	}
2657	ret := &ListOperationsResponse{
2658		ServerResponse: googleapi.ServerResponse{
2659			Header:         res.Header,
2660			HTTPStatusCode: res.StatusCode,
2661		},
2662	}
2663	target := &ret
2664	if err := gensupport.DecodeResponse(target, res); err != nil {
2665		return nil, err
2666	}
2667	return ret, nil
2668	// {
2669	//   "description": "Lists operations that match the specified filter in the request.\nAuthorization requires the following [Google IAM](https://cloud.google.com/iam) permission\u0026#58;\n\n* `genomics.operations.list`",
2670	//   "flatPath": "v2alpha1/projects/{projectsId}/operations",
2671	//   "httpMethod": "GET",
2672	//   "id": "genomics.projects.operations.list",
2673	//   "parameterOrder": [
2674	//     "name"
2675	//   ],
2676	//   "parameters": {
2677	//     "filter": {
2678	//       "description": "A string for filtering Operations.\nIn v2alpha1, the following filter fields are supported\u0026#58;\n\n* createTime\u0026#58; The time this job was created\n* events\u0026#58; The set of event (names) that have occurred while running\n  the pipeline.  The \u0026#58; operator can be used to determine if a\n  particular event has occurred.\n* error\u0026#58; If the pipeline is running, this value is NULL.  Once the\n  pipeline finishes, the value is the standard Google error code.\n* labels.key or labels.\"key with space\" where key is a label key.\n* done\u0026#58; If the pipeline is running, this value is false. Once the\n  pipeline finishes, the value is true.\n\nIn v1 and v1alpha2, the following filter fields are supported\u0026#58;\n\n* projectId\u0026#58; Required. Corresponds to\n  OperationMetadata.projectId.\n* createTime\u0026#58; The time this job was created, in seconds from the\n  [epoch](http://en.wikipedia.org/wiki/Unix_time). Can use `\u003e=` and/or `\u003c=`\n  operators.\n* status\u0026#58; Can be `RUNNING`, `SUCCESS`, `FAILURE`, or `CANCELED`. Only\n  one status may be specified.\n* labels.key where key is a label key.\n\nExamples\u0026#58;\n\n* `projectId = my-project AND createTime \u003e= 1432140000`\n* `projectId = my-project AND createTime \u003e= 1432140000 AND createTime \u003c= 1432150000 AND status = RUNNING`\n* `projectId = my-project AND labels.color = *`\n* `projectId = my-project AND labels.color = red`",
2679	//       "location": "query",
2680	//       "type": "string"
2681	//     },
2682	//     "name": {
2683	//       "description": "The name of the operation's parent resource.",
2684	//       "location": "path",
2685	//       "pattern": "^projects/[^/]+/operations$",
2686	//       "required": true,
2687	//       "type": "string"
2688	//     },
2689	//     "pageSize": {
2690	//       "description": "The maximum number of results to return. The maximum value is 256.",
2691	//       "format": "int32",
2692	//       "location": "query",
2693	//       "type": "integer"
2694	//     },
2695	//     "pageToken": {
2696	//       "description": "The standard list page token.",
2697	//       "location": "query",
2698	//       "type": "string"
2699	//     }
2700	//   },
2701	//   "path": "v2alpha1/{+name}",
2702	//   "response": {
2703	//     "$ref": "ListOperationsResponse"
2704	//   },
2705	//   "scopes": [
2706	//     "https://www.googleapis.com/auth/cloud-platform",
2707	//     "https://www.googleapis.com/auth/genomics"
2708	//   ]
2709	// }
2710
2711}
2712
2713// Pages invokes f for each page of results.
2714// A non-nil error returned from f will halt the iteration.
2715// The provided context supersedes any context provided to the Context method.
2716func (c *ProjectsOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
2717	c.ctx_ = ctx
2718	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
2719	for {
2720		x, err := c.Do()
2721		if err != nil {
2722			return err
2723		}
2724		if err := f(x); err != nil {
2725			return err
2726		}
2727		if x.NextPageToken == "" {
2728			return nil
2729		}
2730		c.PageToken(x.NextPageToken)
2731	}
2732}
2733
2734// method id "genomics.workers.checkIn":
2735
2736type WorkersCheckInCall struct {
2737	s              *Service
2738	id             string
2739	checkinrequest *CheckInRequest
2740	urlParams_     gensupport.URLParams
2741	ctx_           context.Context
2742	header_        http.Header
2743}
2744
2745// CheckIn: The worker uses this method to retrieve the assigned
2746// operation and
2747// provide periodic status updates.
2748func (r *WorkersService) CheckIn(id string, checkinrequest *CheckInRequest) *WorkersCheckInCall {
2749	c := &WorkersCheckInCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2750	c.id = id
2751	c.checkinrequest = checkinrequest
2752	return c
2753}
2754
2755// Fields allows partial responses to be retrieved. See
2756// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2757// for more information.
2758func (c *WorkersCheckInCall) Fields(s ...googleapi.Field) *WorkersCheckInCall {
2759	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2760	return c
2761}
2762
2763// Context sets the context to be used in this call's Do method. Any
2764// pending HTTP request will be aborted if the provided context is
2765// canceled.
2766func (c *WorkersCheckInCall) Context(ctx context.Context) *WorkersCheckInCall {
2767	c.ctx_ = ctx
2768	return c
2769}
2770
2771// Header returns an http.Header that can be modified by the caller to
2772// add HTTP headers to the request.
2773func (c *WorkersCheckInCall) Header() http.Header {
2774	if c.header_ == nil {
2775		c.header_ = make(http.Header)
2776	}
2777	return c.header_
2778}
2779
2780func (c *WorkersCheckInCall) doRequest(alt string) (*http.Response, error) {
2781	reqHeaders := make(http.Header)
2782	for k, v := range c.header_ {
2783		reqHeaders[k] = v
2784	}
2785	reqHeaders.Set("User-Agent", c.s.userAgent())
2786	var body io.Reader = nil
2787	body, err := googleapi.WithoutDataWrapper.JSONReader(c.checkinrequest)
2788	if err != nil {
2789		return nil, err
2790	}
2791	reqHeaders.Set("Content-Type", "application/json")
2792	c.urlParams_.Set("alt", alt)
2793	c.urlParams_.Set("prettyPrint", "false")
2794	urls := googleapi.ResolveRelative(c.s.BasePath, "v2alpha1/workers/{id}:checkIn")
2795	urls += "?" + c.urlParams_.Encode()
2796	req, err := http.NewRequest("POST", urls, body)
2797	if err != nil {
2798		return nil, err
2799	}
2800	req.Header = reqHeaders
2801	googleapi.Expand(req.URL, map[string]string{
2802		"id": c.id,
2803	})
2804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2805}
2806
2807// Do executes the "genomics.workers.checkIn" call.
2808// Exactly one of *CheckInResponse or error will be non-nil. Any non-2xx
2809// status code is an error. Response headers are in either
2810// *CheckInResponse.ServerResponse.Header or (if a response was returned
2811// at all) in error.(*googleapi.Error).Header. Use
2812// googleapi.IsNotModified to check whether the returned error was
2813// because http.StatusNotModified was returned.
2814func (c *WorkersCheckInCall) Do(opts ...googleapi.CallOption) (*CheckInResponse, error) {
2815	gensupport.SetOptions(c.urlParams_, opts...)
2816	res, err := c.doRequest("json")
2817	if res != nil && res.StatusCode == http.StatusNotModified {
2818		if res.Body != nil {
2819			res.Body.Close()
2820		}
2821		return nil, &googleapi.Error{
2822			Code:   res.StatusCode,
2823			Header: res.Header,
2824		}
2825	}
2826	if err != nil {
2827		return nil, err
2828	}
2829	defer googleapi.CloseBody(res)
2830	if err := googleapi.CheckResponse(res); err != nil {
2831		return nil, err
2832	}
2833	ret := &CheckInResponse{
2834		ServerResponse: googleapi.ServerResponse{
2835			Header:         res.Header,
2836			HTTPStatusCode: res.StatusCode,
2837		},
2838	}
2839	target := &ret
2840	if err := gensupport.DecodeResponse(target, res); err != nil {
2841		return nil, err
2842	}
2843	return ret, nil
2844	// {
2845	//   "description": "The worker uses this method to retrieve the assigned operation and\nprovide periodic status updates.",
2846	//   "flatPath": "v2alpha1/workers/{id}:checkIn",
2847	//   "httpMethod": "POST",
2848	//   "id": "genomics.workers.checkIn",
2849	//   "parameterOrder": [
2850	//     "id"
2851	//   ],
2852	//   "parameters": {
2853	//     "id": {
2854	//       "description": "The worker id, assigned when it was created.",
2855	//       "location": "path",
2856	//       "required": true,
2857	//       "type": "string"
2858	//     }
2859	//   },
2860	//   "path": "v2alpha1/workers/{id}:checkIn",
2861	//   "request": {
2862	//     "$ref": "CheckInRequest"
2863	//   },
2864	//   "response": {
2865	//     "$ref": "CheckInResponse"
2866	//   },
2867	//   "scopes": [
2868	//     "https://www.googleapis.com/auth/cloud-platform",
2869	//     "https://www.googleapis.com/auth/genomics"
2870	//   ]
2871	// }
2872
2873}
2874