...

Source file src/google.golang.org/api/genomics/v2alpha1/genomics-gen.go

Documentation: google.golang.org/api/genomics/v2alpha1

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

View as plain text