...

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

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

     1  // Copyright 2021 Google LLC.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Code generated file. DO NOT EDIT.
     6  
     7  // Package 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/v1"
    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  // To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
    27  //
    28  //	genomicsService, err := genomics.NewService(ctx, option.WithAPIKey("AIza..."))
    29  //
    30  // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
    31  //
    32  //	config := &oauth2.Config{...}
    33  //	// ...
    34  //	token, err := config.Exchange(ctx, ...)
    35  //	genomicsService, err := genomics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
    36  //
    37  // See https://godoc.org/google.golang.org/api/option/ for details on options.
    38  package genomics // import "google.golang.org/api/genomics/v1"
    39  
    40  import (
    41  	"bytes"
    42  	"context"
    43  	"encoding/json"
    44  	"errors"
    45  	"fmt"
    46  	"io"
    47  	"net/http"
    48  	"net/url"
    49  	"strconv"
    50  	"strings"
    51  
    52  	googleapi "google.golang.org/api/googleapi"
    53  	gensupport "google.golang.org/api/internal/gensupport"
    54  	option "google.golang.org/api/option"
    55  	internaloption "google.golang.org/api/option/internaloption"
    56  	htransport "google.golang.org/api/transport/http"
    57  )
    58  
    59  // Always reference these packages, just in case the auto-generated code
    60  // below doesn't.
    61  var _ = bytes.NewBuffer
    62  var _ = strconv.Itoa
    63  var _ = fmt.Sprintf
    64  var _ = json.NewDecoder
    65  var _ = io.Copy
    66  var _ = url.Parse
    67  var _ = gensupport.MarshalJSON
    68  var _ = googleapi.Version
    69  var _ = errors.New
    70  var _ = strings.Replace
    71  var _ = context.Canceled
    72  var _ = internaloption.WithDefaultEndpoint
    73  
    74  const apiId = "genomics:v1"
    75  const apiName = "genomics"
    76  const apiVersion = "v1"
    77  const basePath = "https://genomics.googleapis.com/"
    78  const mtlsBasePath = "https://genomics.mtls.googleapis.com/"
    79  
    80  // NewService creates a new Service.
    81  func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
    82  	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
    83  	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
    84  	client, endpoint, err := htransport.NewClient(ctx, opts...)
    85  	if err != nil {
    86  		return nil, err
    87  	}
    88  	s, err := New(client)
    89  	if err != nil {
    90  		return nil, err
    91  	}
    92  	if endpoint != "" {
    93  		s.BasePath = endpoint
    94  	}
    95  	return s, nil
    96  }
    97  
    98  // New creates a new Service. It uses the provided http.Client for requests.
    99  //
   100  // Deprecated: please use NewService instead.
   101  // To provide a custom HTTP client, use option.WithHTTPClient.
   102  // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
   103  func New(client *http.Client) (*Service, error) {
   104  	if client == nil {
   105  		return nil, errors.New("client is nil")
   106  	}
   107  	s := &Service{client: client, BasePath: basePath}
   108  	return s, nil
   109  }
   110  
   111  type Service struct {
   112  	client    *http.Client
   113  	BasePath  string // API endpoint base URL
   114  	UserAgent string // optional additional User-Agent fragment
   115  }
   116  
   117  func (s *Service) userAgent() string {
   118  	if s.UserAgent == "" {
   119  		return googleapi.UserAgent
   120  	}
   121  	return googleapi.UserAgent + " " + s.UserAgent
   122  }
   123  
   124  // Accelerator: Carries information about an accelerator that can be
   125  // attached to a VM.
   126  type Accelerator struct {
   127  	// Count: How many accelerators of this type to attach.
   128  	Count int64 `json:"count,omitempty,string"`
   129  
   130  	// Type: The accelerator type string (for example, "nvidia-tesla-k80").
   131  	// Only NVIDIA GPU accelerators are currently supported. If an NVIDIA
   132  	// GPU is attached, the required runtime libraries will be made
   133  	// available to all containers under `/usr/local/nvidia`. The driver
   134  	// version to install must be specified using the NVIDIA driver version
   135  	// parameter on the virtual machine specification. Note that attaching a
   136  	// GPU increases the worker VM startup time by a few minutes.
   137  	Type string `json:"type,omitempty"`
   138  
   139  	// ForceSendFields is a list of field names (e.g. "Count") to
   140  	// unconditionally include in API requests. By default, fields with
   141  	// empty values are omitted from API requests. However, any non-pointer,
   142  	// non-interface field appearing in ForceSendFields will be sent to the
   143  	// server regardless of whether the field is empty or not. This may be
   144  	// used to include empty fields in Patch requests.
   145  	ForceSendFields []string `json:"-"`
   146  
   147  	// NullFields is a list of field names (e.g. "Count") to include in API
   148  	// requests with the JSON null value. By default, fields with empty
   149  	// values are omitted from API requests. However, any field with an
   150  	// empty value appearing in NullFields will be sent to the server as
   151  	// null. It is an error if a field in this list has a non-empty value.
   152  	// This may be used to include null fields in Patch requests.
   153  	NullFields []string `json:"-"`
   154  }
   155  
   156  func (s *Accelerator) MarshalJSON() ([]byte, error) {
   157  	type NoMethod Accelerator
   158  	raw := NoMethod(*s)
   159  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   160  }
   161  
   162  // Action: Specifies a single action that runs a Docker container.
   163  type Action struct {
   164  	// Commands: If specified, overrides the `CMD` specified in the
   165  	// container. If the container also has an `ENTRYPOINT` the values are
   166  	// used as entrypoint arguments. Otherwise, they are used as a command
   167  	// and arguments to run inside the container.
   168  	Commands []string `json:"commands,omitempty"`
   169  
   170  	// Credentials: If the specified image is hosted on a private registry
   171  	// other than Google Container Registry, the credentials required to
   172  	// pull the image must be specified here as an encrypted secret. The
   173  	// secret must decrypt to a JSON-encoded dictionary containing both
   174  	// `username` and `password` keys.
   175  	Credentials *Secret `json:"credentials,omitempty"`
   176  
   177  	// EncryptedEnvironment: The encrypted environment to pass into the
   178  	// container. This environment is merged with values specified in the
   179  	// google.genomics.v2alpha1.Pipeline message, overwriting any duplicate
   180  	// values. The secret must decrypt to a JSON-encoded dictionary where
   181  	// key-value pairs serve as environment variable names and their values.
   182  	// The decoded environment variables can overwrite the values specified
   183  	// by the `environment` field.
   184  	EncryptedEnvironment *Secret `json:"encryptedEnvironment,omitempty"`
   185  
   186  	// Entrypoint: If specified, overrides the `ENTRYPOINT` specified in the
   187  	// container.
   188  	Entrypoint string `json:"entrypoint,omitempty"`
   189  
   190  	// Environment: The environment to pass into the container. This
   191  	// environment is merged with values specified in the
   192  	// google.genomics.v2alpha1.Pipeline message, overwriting any duplicate
   193  	// values. In addition to the values passed here, a few other values are
   194  	// automatically injected into the environment. These cannot be hidden
   195  	// or overwritten. `GOOGLE_PIPELINE_FAILED` will be set to "1" if the
   196  	// pipeline failed because an action has exited with a non-zero status
   197  	// (and did not have the `IGNORE_EXIT_STATUS` flag set). This can be
   198  	// used to determine if additional debug or logging actions should
   199  	// execute. `GOOGLE_LAST_EXIT_STATUS` will be set to the exit status of
   200  	// the last non-background action that executed. This can be used by
   201  	// workflow engine authors to determine whether an individual action has
   202  	// succeeded or failed.
   203  	Environment map[string]string `json:"environment,omitempty"`
   204  
   205  	// Flags: The set of flags to apply to this action.
   206  	//
   207  	// Possible values:
   208  	//   "FLAG_UNSPECIFIED" - Unspecified flag.
   209  	//   "IGNORE_EXIT_STATUS" - Normally, a non-zero exit status causes the
   210  	// pipeline to fail. This flag allows execution of other actions to
   211  	// continue instead.
   212  	//   "RUN_IN_BACKGROUND" - This flag allows an action to continue
   213  	// running in the background while executing subsequent actions. This is
   214  	// useful to provide services to other actions (or to provide debugging
   215  	// support tools like SSH servers).
   216  	//   "ALWAYS_RUN" - By default, after an action fails, no further
   217  	// actions are run. This flag indicates that this action must be run
   218  	// even if the pipeline has already failed. This is useful for actions
   219  	// that copy output files off of the VM or for debugging. Note that no
   220  	// actions will be run if image prefetching fails.
   221  	//   "ENABLE_FUSE" - Enable access to the FUSE device for this action.
   222  	// Filesystems can then be mounted into disks shared with other actions.
   223  	// The other actions do not need the `ENABLE_FUSE` flag to access the
   224  	// mounted filesystem. This has the effect of causing the container to
   225  	// be executed with `CAP_SYS_ADMIN` and exposes `/dev/fuse` to the
   226  	// container, so use it only for containers you trust.
   227  	//   "PUBLISH_EXPOSED_PORTS" - Exposes all ports specified by `EXPOSE`
   228  	// statements in the container. To discover the host side port numbers,
   229  	// consult the `ACTION_STARTED` event in the operation metadata.
   230  	//   "DISABLE_IMAGE_PREFETCH" - All container images are typically
   231  	// downloaded before any actions are executed. This helps prevent typos
   232  	// in URIs or issues like lack of disk space from wasting large amounts
   233  	// of compute resources. If set, this flag prevents the worker from
   234  	// downloading the image until just before the action is executed.
   235  	//   "DISABLE_STANDARD_ERROR_CAPTURE" - A small portion of the
   236  	// container's standard error stream is typically captured and returned
   237  	// inside the `ContainerStoppedEvent`. Setting this flag disables this
   238  	// functionality.
   239  	//   "BLOCK_EXTERNAL_NETWORK" - Prevents the container from accessing
   240  	// the external network.
   241  	Flags []string `json:"flags,omitempty"`
   242  
   243  	// ImageUri: Required. The URI to pull the container image from. Note
   244  	// that all images referenced by actions in the pipeline are pulled
   245  	// before the first action runs. If multiple actions reference the same
   246  	// image, it is only pulled once, ensuring that the same image is used
   247  	// for all actions in a single pipeline. The image URI can be either a
   248  	// complete host and image specification (e.g.,
   249  	// quay.io/biocontainers/samtools), a library and image name (e.g.,
   250  	// google/cloud-sdk) or a bare image name ('bash') to pull from the
   251  	// default library. No schema is required in any of these cases. If the
   252  	// specified image is not public, the service account specified for the
   253  	// Virtual Machine must have access to pull the images from GCR, or
   254  	// appropriate credentials must be specified in the
   255  	// google.genomics.v2alpha1.Action.credentials field.
   256  	ImageUri string `json:"imageUri,omitempty"`
   257  
   258  	// Labels: Labels to associate with the action. This field is provided
   259  	// to assist workflow engine authors in identifying actions (for
   260  	// example, to indicate what sort of action they perform, such as
   261  	// localization or debugging). They are returned in the operation
   262  	// metadata, but are otherwise ignored.
   263  	Labels map[string]string `json:"labels,omitempty"`
   264  
   265  	// Mounts: A list of mounts to make available to the action. In addition
   266  	// to the values specified here, every action has a special virtual disk
   267  	// mounted under `/google` that contains log files and other operational
   268  	// components. - /google/logs All logs written during the pipeline
   269  	// execution. - /google/logs/output The combined standard output and
   270  	// standard error of all actions run as part of the pipeline execution.
   271  	// - /google/logs/action/*/stdout The complete contents of each
   272  	// individual action's standard output. - /google/logs/action/*/stderr
   273  	// The complete contents of each individual action's standard error
   274  	// output.
   275  	Mounts []*Mount `json:"mounts,omitempty"`
   276  
   277  	// Name: An optional name for the container. The container hostname will
   278  	// be set to this name, making it useful for inter-container
   279  	// communication. The name must contain only upper and lowercase
   280  	// alphanumeric characters and hyphens and cannot start with a hyphen.
   281  	Name string `json:"name,omitempty"`
   282  
   283  	// PidNamespace: An optional identifier for a PID namespace to run the
   284  	// action inside. Multiple actions should use the same string to share a
   285  	// namespace. If unspecified, a separate isolated namespace is used.
   286  	PidNamespace string `json:"pidNamespace,omitempty"`
   287  
   288  	// PortMappings: A map of containers to host port mappings for this
   289  	// container. If the container already specifies exposed ports, use the
   290  	// `PUBLISH_EXPOSED_PORTS` flag instead. The host port number must be
   291  	// less than 65536. If it is zero, an unused random port is assigned. To
   292  	// determine the resulting port number, consult the
   293  	// `ContainerStartedEvent` in the operation metadata.
   294  	PortMappings map[string]int64 `json:"portMappings,omitempty"`
   295  
   296  	// Timeout: The maximum amount of time to give the action to complete.
   297  	// If the action fails to complete before the timeout, it will be
   298  	// terminated and the exit status will be non-zero. The pipeline will
   299  	// continue or terminate based on the rules defined by the `ALWAYS_RUN`
   300  	// and `IGNORE_EXIT_STATUS` flags.
   301  	Timeout string `json:"timeout,omitempty"`
   302  
   303  	// ForceSendFields is a list of field names (e.g. "Commands") to
   304  	// unconditionally include in API requests. By default, fields with
   305  	// empty values are omitted from API requests. However, any non-pointer,
   306  	// non-interface field appearing in ForceSendFields will be sent to the
   307  	// server regardless of whether the field is empty or not. This may be
   308  	// used to include empty fields in Patch requests.
   309  	ForceSendFields []string `json:"-"`
   310  
   311  	// NullFields is a list of field names (e.g. "Commands") to include in
   312  	// API requests with the JSON null value. By default, fields with empty
   313  	// values are omitted from API requests. However, any field with an
   314  	// empty value appearing in NullFields will be sent to the server as
   315  	// null. It is an error if a field in this list has a non-empty value.
   316  	// This may be used to include null fields in Patch requests.
   317  	NullFields []string `json:"-"`
   318  }
   319  
   320  func (s *Action) MarshalJSON() ([]byte, error) {
   321  	type NoMethod Action
   322  	raw := NoMethod(*s)
   323  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   324  }
   325  
   326  // ContainerKilledEvent: An event generated when a container is forcibly
   327  // terminated by the worker. Currently, this only occurs when the
   328  // container outlives the timeout specified by the user.
   329  type ContainerKilledEvent struct {
   330  	// ActionId: The numeric ID of the action that started the container.
   331  	ActionId int64 `json:"actionId,omitempty"`
   332  
   333  	// ForceSendFields is a list of field names (e.g. "ActionId") to
   334  	// unconditionally include in API requests. By default, fields with
   335  	// empty values are omitted from API requests. However, any non-pointer,
   336  	// non-interface field appearing in ForceSendFields will be sent to the
   337  	// server regardless of whether the field is empty or not. This may be
   338  	// used to include empty fields in Patch requests.
   339  	ForceSendFields []string `json:"-"`
   340  
   341  	// NullFields is a list of field names (e.g. "ActionId") to include in
   342  	// API requests with the JSON null value. By default, fields with empty
   343  	// values are omitted from API requests. However, any field with an
   344  	// empty value appearing in NullFields will be sent to the server as
   345  	// null. It is an error if a field in this list has a non-empty value.
   346  	// This may be used to include null fields in Patch requests.
   347  	NullFields []string `json:"-"`
   348  }
   349  
   350  func (s *ContainerKilledEvent) MarshalJSON() ([]byte, error) {
   351  	type NoMethod ContainerKilledEvent
   352  	raw := NoMethod(*s)
   353  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   354  }
   355  
   356  // ContainerStartedEvent: An event generated when a container starts.
   357  type ContainerStartedEvent struct {
   358  	// ActionId: The numeric ID of the action that started this container.
   359  	ActionId int64 `json:"actionId,omitempty"`
   360  
   361  	// IpAddress: The public IP address that can be used to connect to the
   362  	// container. This field is only populated when at least one port
   363  	// mapping is present. If the instance was created with a private
   364  	// address, this field will be empty even if port mappings exist.
   365  	IpAddress string `json:"ipAddress,omitempty"`
   366  
   367  	// PortMappings: The container-to-host port mappings installed for this
   368  	// container. This set will contain any ports exposed using the
   369  	// `PUBLISH_EXPOSED_PORTS` flag as well as any specified in the `Action`
   370  	// definition.
   371  	PortMappings map[string]int64 `json:"portMappings,omitempty"`
   372  
   373  	// ForceSendFields is a list of field names (e.g. "ActionId") to
   374  	// unconditionally include in API requests. By default, fields with
   375  	// empty values are omitted from API requests. However, any non-pointer,
   376  	// non-interface field appearing in ForceSendFields will be sent to the
   377  	// server regardless of whether the field is empty or not. This may be
   378  	// used to include empty fields in Patch requests.
   379  	ForceSendFields []string `json:"-"`
   380  
   381  	// NullFields is a list of field names (e.g. "ActionId") to include in
   382  	// API requests with the JSON null value. By default, fields with empty
   383  	// values are omitted from API requests. However, any field with an
   384  	// empty value appearing in NullFields will be sent to the server as
   385  	// null. It is an error if a field in this list has a non-empty value.
   386  	// This may be used to include null fields in Patch requests.
   387  	NullFields []string `json:"-"`
   388  }
   389  
   390  func (s *ContainerStartedEvent) MarshalJSON() ([]byte, error) {
   391  	type NoMethod ContainerStartedEvent
   392  	raw := NoMethod(*s)
   393  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   394  }
   395  
   396  // ContainerStoppedEvent: An event generated when a container exits.
   397  type ContainerStoppedEvent struct {
   398  	// ActionId: The numeric ID of the action that started this container.
   399  	ActionId int64 `json:"actionId,omitempty"`
   400  
   401  	// ExitStatus: The exit status of the container.
   402  	ExitStatus int64 `json:"exitStatus,omitempty"`
   403  
   404  	// Stderr: The tail end of any content written to standard error by the
   405  	// container. If the content emits large amounts of debugging noise or
   406  	// contains sensitive information, you can prevent the content from
   407  	// being printed by setting the `DISABLE_STANDARD_ERROR_CAPTURE` flag.
   408  	// Note that only a small amount of the end of the stream is captured
   409  	// here. The entire stream is stored in the `/google/logs` directory
   410  	// mounted into each action, and can be copied off the machine as
   411  	// described elsewhere.
   412  	Stderr string `json:"stderr,omitempty"`
   413  
   414  	// ForceSendFields is a list of field names (e.g. "ActionId") to
   415  	// unconditionally include in API requests. By default, fields with
   416  	// empty values are omitted from API requests. However, any non-pointer,
   417  	// non-interface field appearing in ForceSendFields will be sent to the
   418  	// server regardless of whether the field is empty or not. This may be
   419  	// used to include empty fields in Patch requests.
   420  	ForceSendFields []string `json:"-"`
   421  
   422  	// NullFields is a list of field names (e.g. "ActionId") to include in
   423  	// API requests with the JSON null value. By default, fields with empty
   424  	// values are omitted from API requests. However, any field with an
   425  	// empty value appearing in NullFields will be sent to the server as
   426  	// null. It is an error if a field in this list has a non-empty value.
   427  	// This may be used to include null fields in Patch requests.
   428  	NullFields []string `json:"-"`
   429  }
   430  
   431  func (s *ContainerStoppedEvent) MarshalJSON() ([]byte, error) {
   432  	type NoMethod ContainerStoppedEvent
   433  	raw := NoMethod(*s)
   434  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   435  }
   436  
   437  // DelayedEvent: An event generated whenever a resource limitation or
   438  // transient error delays execution of a pipeline that was otherwise
   439  // ready to run.
   440  type DelayedEvent struct {
   441  	// Cause: A textual description of the cause of the delay. The string
   442  	// can change without notice because it is often generated by another
   443  	// service (such as Compute Engine).
   444  	Cause string `json:"cause,omitempty"`
   445  
   446  	// Metrics: If the delay was caused by a resource shortage, this field
   447  	// lists the Compute Engine metrics that are preventing this operation
   448  	// from running (for example, `CPUS` or `INSTANCES`). If the particular
   449  	// metric is not known, a single `UNKNOWN` metric will be present.
   450  	Metrics []string `json:"metrics,omitempty"`
   451  
   452  	// ForceSendFields is a list of field names (e.g. "Cause") to
   453  	// unconditionally include in API requests. By default, fields with
   454  	// empty values are omitted from API requests. However, any non-pointer,
   455  	// non-interface field appearing in ForceSendFields will be sent to the
   456  	// server regardless of whether the field is empty or not. This may be
   457  	// used to include empty fields in Patch requests.
   458  	ForceSendFields []string `json:"-"`
   459  
   460  	// NullFields is a list of field names (e.g. "Cause") to include in API
   461  	// requests with the JSON null value. By default, fields with empty
   462  	// values are omitted from API requests. However, any field with an
   463  	// empty value appearing in NullFields will be sent to the server as
   464  	// null. It is an error if a field in this list has a non-empty value.
   465  	// This may be used to include null fields in Patch requests.
   466  	NullFields []string `json:"-"`
   467  }
   468  
   469  func (s *DelayedEvent) MarshalJSON() ([]byte, error) {
   470  	type NoMethod DelayedEvent
   471  	raw := NoMethod(*s)
   472  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   473  }
   474  
   475  // Disk: Carries information about a disk that can be attached to a VM.
   476  // See https://cloud.google.com/compute/docs/disks/performance for more
   477  // information about disk type, size, and performance considerations.
   478  // Specify either `Volume` or `Disk`, but not both.
   479  type Disk struct {
   480  	// Name: A user-supplied name for the disk. Used when mounting the disk
   481  	// into actions. The name must contain only upper and lowercase
   482  	// alphanumeric characters and hyphens and cannot start with a hyphen.
   483  	Name string `json:"name,omitempty"`
   484  
   485  	// SizeGb: The size, in GB, of the disk to attach. If the size is not
   486  	// specified, a default is chosen to ensure reasonable I/O performance.
   487  	// If the disk type is specified as `local-ssd`, multiple local drives
   488  	// are automatically combined to provide the requested size. Note,
   489  	// however, that each physical SSD is 375GB in size, and no more than 8
   490  	// drives can be attached to a single instance.
   491  	SizeGb int64 `json:"sizeGb,omitempty"`
   492  
   493  	// SourceImage: An optional image to put on the disk before attaching it
   494  	// to the VM.
   495  	SourceImage string `json:"sourceImage,omitempty"`
   496  
   497  	// Type: The Compute Engine disk type. If unspecified, `pd-standard` is
   498  	// used.
   499  	Type string `json:"type,omitempty"`
   500  
   501  	// ForceSendFields is a list of field names (e.g. "Name") to
   502  	// unconditionally include in API requests. By default, fields with
   503  	// empty values are omitted from API requests. However, any non-pointer,
   504  	// non-interface field appearing in ForceSendFields will be sent to the
   505  	// server regardless of whether the field is empty or not. This may be
   506  	// used to include empty fields in Patch requests.
   507  	ForceSendFields []string `json:"-"`
   508  
   509  	// NullFields is a list of field names (e.g. "Name") to include in API
   510  	// requests with the JSON null value. By default, fields with empty
   511  	// values are omitted from API requests. However, any field with an
   512  	// empty value appearing in NullFields will be sent to the server as
   513  	// null. It is an error if a field in this list has a non-empty value.
   514  	// This may be used to include null fields in Patch requests.
   515  	NullFields []string `json:"-"`
   516  }
   517  
   518  func (s *Disk) MarshalJSON() ([]byte, error) {
   519  	type NoMethod Disk
   520  	raw := NoMethod(*s)
   521  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   522  }
   523  
   524  // Event: Carries information about events that occur during pipeline
   525  // execution.
   526  type Event struct {
   527  	// Description: A human-readable description of the event. Note that
   528  	// these strings can change at any time without notice. Any application
   529  	// logic must use the information in the `details` field.
   530  	Description string `json:"description,omitempty"`
   531  
   532  	// Details: Machine-readable details about the event.
   533  	Details googleapi.RawMessage `json:"details,omitempty"`
   534  
   535  	// Timestamp: The time at which the event occurred.
   536  	Timestamp string `json:"timestamp,omitempty"`
   537  
   538  	// ForceSendFields is a list of field names (e.g. "Description") to
   539  	// unconditionally include in API requests. By default, fields with
   540  	// empty values are omitted from API requests. However, any non-pointer,
   541  	// non-interface field appearing in ForceSendFields will be sent to the
   542  	// server regardless of whether the field is empty or not. This may be
   543  	// used to include empty fields in Patch requests.
   544  	ForceSendFields []string `json:"-"`
   545  
   546  	// NullFields is a list of field names (e.g. "Description") to include
   547  	// in API requests with the JSON null value. By default, fields with
   548  	// empty values are omitted from API requests. However, any field with
   549  	// an empty value appearing in NullFields will be sent to the server as
   550  	// null. It is an error if a field in this list has a non-empty value.
   551  	// This may be used to include null fields in Patch requests.
   552  	NullFields []string `json:"-"`
   553  }
   554  
   555  func (s *Event) MarshalJSON() ([]byte, error) {
   556  	type NoMethod Event
   557  	raw := NoMethod(*s)
   558  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   559  }
   560  
   561  // ExistingDisk: Configuration for an existing disk to be attached to
   562  // the VM.
   563  type ExistingDisk struct {
   564  	// Disk: If `disk` contains slashes, the Cloud Life Sciences API assumes
   565  	// that it is a complete URL for the disk. If `disk` does not contain
   566  	// slashes, the Cloud Life Sciences API assumes that the disk is a zonal
   567  	// disk and a URL will be generated of the form `zones//disks/`, where
   568  	// `` is the zone in which the instance is allocated. The disk must be
   569  	// ext4 formatted. If all `Mount` references to this disk have the
   570  	// `read_only` flag set to true, the disk will be attached in
   571  	// `read-only` mode and can be shared with other instances. Otherwise,
   572  	// the disk will be available for writing but cannot be shared.
   573  	Disk string `json:"disk,omitempty"`
   574  
   575  	// ForceSendFields is a list of field names (e.g. "Disk") to
   576  	// unconditionally include in API requests. By default, fields with
   577  	// empty values are omitted from API requests. However, any non-pointer,
   578  	// non-interface field appearing in ForceSendFields will be sent to the
   579  	// server regardless of whether the field is empty or not. This may be
   580  	// used to include empty fields in Patch requests.
   581  	ForceSendFields []string `json:"-"`
   582  
   583  	// NullFields is a list of field names (e.g. "Disk") to include in API
   584  	// requests with the JSON null value. By default, fields with empty
   585  	// values are omitted from API requests. However, any field with an
   586  	// empty value appearing in NullFields will be sent to the server as
   587  	// null. It is an error if a field in this list has a non-empty value.
   588  	// This may be used to include null fields in Patch requests.
   589  	NullFields []string `json:"-"`
   590  }
   591  
   592  func (s *ExistingDisk) MarshalJSON() ([]byte, error) {
   593  	type NoMethod ExistingDisk
   594  	raw := NoMethod(*s)
   595  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   596  }
   597  
   598  // FailedEvent: An event generated when the execution of a pipeline has
   599  // failed. Note that other events can continue to occur after this
   600  // event.
   601  type FailedEvent struct {
   602  	// Cause: The human-readable description of the cause of the failure.
   603  	Cause string `json:"cause,omitempty"`
   604  
   605  	// Code: The Google standard error code that best describes this
   606  	// failure.
   607  	//
   608  	// Possible values:
   609  	//   "OK" - Not an error; returned on success HTTP Mapping: 200 OK
   610  	//   "CANCELLED" - The operation was cancelled, typically by the caller.
   611  	// HTTP Mapping: 499 Client Closed Request
   612  	//   "UNKNOWN" - Unknown error. For example, this error may be returned
   613  	// when a `Status` value received from another address space belongs to
   614  	// an error space that is not known in this address space. Also errors
   615  	// raised by APIs that do not return enough error information may be
   616  	// converted to this error. HTTP Mapping: 500 Internal Server Error
   617  	//   "INVALID_ARGUMENT" - The client specified an invalid argument. Note
   618  	// that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT`
   619  	// indicates arguments that are problematic regardless of the state of
   620  	// the system (e.g., a malformed file name). HTTP Mapping: 400 Bad
   621  	// Request
   622  	//   "DEADLINE_EXCEEDED" - The deadline expired before the operation
   623  	// could complete. For operations that change the state of the system,
   624  	// this error may be returned even if the operation has completed
   625  	// successfully. For example, a successful response from a server could
   626  	// have been delayed long enough for the deadline to expire. HTTP
   627  	// Mapping: 504 Gateway Timeout
   628  	//   "NOT_FOUND" - Some requested entity (e.g., file or directory) was
   629  	// not found. Note to server developers: if a request is denied for an
   630  	// entire class of users, such as gradual feature rollout or
   631  	// undocumented allowlist, `NOT_FOUND` may be used. If a request is
   632  	// denied for some users within a class of users, such as user-based
   633  	// access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404
   634  	// Not Found
   635  	//   "ALREADY_EXISTS" - The entity that a client attempted to create
   636  	// (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict
   637  	//   "PERMISSION_DENIED" - The caller does not have permission to
   638  	// execute the specified operation. `PERMISSION_DENIED` must not be used
   639  	// for rejections caused by exhausting some resource (use
   640  	// `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED`
   641  	// must not be used if the caller can not be identified (use
   642  	// `UNAUTHENTICATED` instead for those errors). This error code does not
   643  	// imply the request is valid or the requested entity exists or
   644  	// satisfies other pre-conditions. HTTP Mapping: 403 Forbidden
   645  	//   "UNAUTHENTICATED" - The request does not have valid authentication
   646  	// credentials for the operation. HTTP Mapping: 401 Unauthorized
   647  	//   "RESOURCE_EXHAUSTED" - Some resource has been exhausted, perhaps a
   648  	// per-user quota, or perhaps the entire file system is out of space.
   649  	// HTTP Mapping: 429 Too Many Requests
   650  	//   "FAILED_PRECONDITION" - The operation was rejected because the
   651  	// system is not in a state required for the operation's execution. For
   652  	// example, the directory to be deleted is non-empty, an rmdir operation
   653  	// is applied to a non-directory, etc. Service implementors can use the
   654  	// following guidelines to decide between `FAILED_PRECONDITION`,
   655  	// `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can
   656  	// retry just the failing call. (b) Use `ABORTED` if the client should
   657  	// retry at a higher level. For example, when a client-specified
   658  	// test-and-set fails, indicating the client should restart a
   659  	// read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the
   660  	// client should not retry until the system state has been explicitly
   661  	// fixed. For example, if an "rmdir" fails because the directory is
   662  	// non-empty, `FAILED_PRECONDITION` should be returned since the client
   663  	// should not retry unless the files are deleted from the directory.
   664  	// HTTP Mapping: 400 Bad Request
   665  	//   "ABORTED" - The operation was aborted, typically due to a
   666  	// concurrency issue such as a sequencer check failure or transaction
   667  	// abort. See the guidelines above for deciding between
   668  	// `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping:
   669  	// 409 Conflict
   670  	//   "OUT_OF_RANGE" - The operation was attempted past the valid range.
   671  	// E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`,
   672  	// this error indicates a problem that may be fixed if the system state
   673  	// changes. For example, a 32-bit file system will generate
   674  	// `INVALID_ARGUMENT` if asked to read at an offset that is not in the
   675  	// range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to
   676  	// read from an offset past the current file size. There is a fair bit
   677  	// of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We
   678  	// recommend using `OUT_OF_RANGE` (the more specific error) when it
   679  	// applies so that callers who are iterating through a space can easily
   680  	// look for an `OUT_OF_RANGE` error to detect when they are done. HTTP
   681  	// Mapping: 400 Bad Request
   682  	//   "UNIMPLEMENTED" - The operation is not implemented or is not
   683  	// supported/enabled in this service. HTTP Mapping: 501 Not Implemented
   684  	//   "INTERNAL" - Internal errors. This means that some invariants
   685  	// expected by the underlying system have been broken. This error code
   686  	// is reserved for serious errors. HTTP Mapping: 500 Internal Server
   687  	// Error
   688  	//   "UNAVAILABLE" - The service is currently unavailable. This is most
   689  	// likely a transient condition, which can be corrected by retrying with
   690  	// a backoff. Note that it is not always safe to retry non-idempotent
   691  	// operations. See the guidelines above for deciding between
   692  	// `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping:
   693  	// 503 Service Unavailable
   694  	//   "DATA_LOSS" - Unrecoverable data loss or corruption. HTTP Mapping:
   695  	// 500 Internal Server Error
   696  	Code string `json:"code,omitempty"`
   697  
   698  	// ForceSendFields is a list of field names (e.g. "Cause") to
   699  	// unconditionally include in API requests. By default, fields with
   700  	// empty values are omitted from API requests. However, any non-pointer,
   701  	// non-interface field appearing in ForceSendFields will be sent to the
   702  	// server regardless of whether the field is empty or not. This may be
   703  	// used to include empty fields in Patch requests.
   704  	ForceSendFields []string `json:"-"`
   705  
   706  	// NullFields is a list of field names (e.g. "Cause") to include in API
   707  	// requests with the JSON null value. By default, fields with empty
   708  	// values are omitted from API requests. However, any field with an
   709  	// empty value appearing in NullFields will be sent to the server as
   710  	// null. It is an error if a field in this list has a non-empty value.
   711  	// This may be used to include null fields in Patch requests.
   712  	NullFields []string `json:"-"`
   713  }
   714  
   715  func (s *FailedEvent) MarshalJSON() ([]byte, error) {
   716  	type NoMethod FailedEvent
   717  	raw := NoMethod(*s)
   718  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   719  }
   720  
   721  // Metadata: Carries information about the pipeline execution that is
   722  // returned in the long running operation's metadata field.
   723  type Metadata struct {
   724  	// CreateTime: The time at which the operation was created by the API.
   725  	CreateTime string `json:"createTime,omitempty"`
   726  
   727  	// EndTime: The time at which execution was completed and resources were
   728  	// cleaned up.
   729  	EndTime string `json:"endTime,omitempty"`
   730  
   731  	// Events: The list of events that have happened so far during the
   732  	// execution of this operation.
   733  	Events []*Event `json:"events,omitempty"`
   734  
   735  	// Labels: The user-defined labels associated with this operation.
   736  	Labels map[string]string `json:"labels,omitempty"`
   737  
   738  	// Pipeline: The pipeline this operation represents.
   739  	Pipeline *Pipeline `json:"pipeline,omitempty"`
   740  
   741  	// StartTime: The first time at which resources were allocated to
   742  	// execute the pipeline.
   743  	StartTime string `json:"startTime,omitempty"`
   744  
   745  	// ForceSendFields is a list of field names (e.g. "CreateTime") to
   746  	// unconditionally include in API requests. By default, fields with
   747  	// empty values are omitted from API requests. However, any non-pointer,
   748  	// non-interface field appearing in ForceSendFields will be sent to the
   749  	// server regardless of whether the field is empty or not. This may be
   750  	// used to include empty fields in Patch requests.
   751  	ForceSendFields []string `json:"-"`
   752  
   753  	// NullFields is a list of field names (e.g. "CreateTime") to include in
   754  	// API requests with the JSON null value. By default, fields with empty
   755  	// values are omitted from API requests. However, any field with an
   756  	// empty value appearing in NullFields will be sent to the server as
   757  	// null. It is an error if a field in this list has a non-empty value.
   758  	// This may be used to include null fields in Patch requests.
   759  	NullFields []string `json:"-"`
   760  }
   761  
   762  func (s *Metadata) MarshalJSON() ([]byte, error) {
   763  	type NoMethod Metadata
   764  	raw := NoMethod(*s)
   765  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   766  }
   767  
   768  // Mount: Carries information about a particular disk mount inside a
   769  // container.
   770  type Mount struct {
   771  	// Disk: The name of the disk to mount, as specified in the resources
   772  	// section.
   773  	Disk string `json:"disk,omitempty"`
   774  
   775  	// Path: The path to mount the disk inside the container.
   776  	Path string `json:"path,omitempty"`
   777  
   778  	// ReadOnly: If true, the disk is mounted read-only inside the
   779  	// container.
   780  	ReadOnly bool `json:"readOnly,omitempty"`
   781  
   782  	// ForceSendFields is a list of field names (e.g. "Disk") to
   783  	// unconditionally include in API requests. By default, fields with
   784  	// empty values are omitted from API requests. However, any non-pointer,
   785  	// non-interface field appearing in ForceSendFields will be sent to the
   786  	// server regardless of whether the field is empty or not. This may be
   787  	// used to include empty fields in Patch requests.
   788  	ForceSendFields []string `json:"-"`
   789  
   790  	// NullFields is a list of field names (e.g. "Disk") to include in API
   791  	// requests with the JSON null value. By default, fields with empty
   792  	// values are omitted from API requests. However, any field with an
   793  	// empty value appearing in NullFields will be sent to the server as
   794  	// null. It is an error if a field in this list has a non-empty value.
   795  	// This may be used to include null fields in Patch requests.
   796  	NullFields []string `json:"-"`
   797  }
   798  
   799  func (s *Mount) MarshalJSON() ([]byte, error) {
   800  	type NoMethod Mount
   801  	raw := NoMethod(*s)
   802  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   803  }
   804  
   805  // NFSMount: Configuration for an `NFSMount` to be attached to the VM.
   806  type NFSMount struct {
   807  	// Target: A target NFS mount. The target must be specified as
   808  	// `address:/mount".
   809  	Target string `json:"target,omitempty"`
   810  
   811  	// ForceSendFields is a list of field names (e.g. "Target") to
   812  	// unconditionally include in API requests. By default, fields with
   813  	// empty values are omitted from API requests. However, any non-pointer,
   814  	// non-interface field appearing in ForceSendFields will be sent to the
   815  	// server regardless of whether the field is empty or not. This may be
   816  	// used to include empty fields in Patch requests.
   817  	ForceSendFields []string `json:"-"`
   818  
   819  	// NullFields is a list of field names (e.g. "Target") to include in API
   820  	// requests with the JSON null value. By default, fields with empty
   821  	// values are omitted from API requests. However, any field with an
   822  	// empty value appearing in NullFields will be sent to the server as
   823  	// null. It is an error if a field in this list has a non-empty value.
   824  	// This may be used to include null fields in Patch requests.
   825  	NullFields []string `json:"-"`
   826  }
   827  
   828  func (s *NFSMount) MarshalJSON() ([]byte, error) {
   829  	type NoMethod NFSMount
   830  	raw := NoMethod(*s)
   831  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   832  }
   833  
   834  // Network: VM networking options.
   835  type Network struct {
   836  	// Name: The network name to attach the VM's network interface to. The
   837  	// value will be prefixed with `global/networks/` unless it contains a
   838  	// `/`, in which case it is assumed to be a fully specified network
   839  	// resource URL. If unspecified, the global default network is used.
   840  	Name string `json:"name,omitempty"`
   841  
   842  	// Subnetwork: If the specified network is configured for custom subnet
   843  	// creation, the name of the subnetwork to attach the instance to must
   844  	// be specified here. The value is prefixed with
   845  	// `regions/*/subnetworks/` unless it contains a `/`, in which case it
   846  	// is assumed to be a fully specified subnetwork resource URL. If the
   847  	// `*` character appears in the value, it is replaced with the region
   848  	// that the virtual machine has been allocated in.
   849  	Subnetwork string `json:"subnetwork,omitempty"`
   850  
   851  	// UsePrivateAddress: If set to true, do not attach a public IP address
   852  	// to the VM. Note that without a public IP address, additional
   853  	// configuration is required to allow the VM to access Google services.
   854  	// See https://cloud.google.com/vpc/docs/configure-private-google-access
   855  	// for more information.
   856  	UsePrivateAddress bool `json:"usePrivateAddress,omitempty"`
   857  
   858  	// ForceSendFields is a list of field names (e.g. "Name") to
   859  	// unconditionally include in API requests. By default, fields with
   860  	// empty values are omitted from API requests. However, any non-pointer,
   861  	// non-interface field appearing in ForceSendFields will be sent to the
   862  	// server regardless of whether the field is empty or not. This may be
   863  	// used to include empty fields in Patch requests.
   864  	ForceSendFields []string `json:"-"`
   865  
   866  	// NullFields is a list of field names (e.g. "Name") to include in API
   867  	// requests with the JSON null value. By default, fields with empty
   868  	// values are omitted from API requests. However, any field with an
   869  	// empty value appearing in NullFields will be sent to the server as
   870  	// null. It is an error if a field in this list has a non-empty value.
   871  	// This may be used to include null fields in Patch requests.
   872  	NullFields []string `json:"-"`
   873  }
   874  
   875  func (s *Network) MarshalJSON() ([]byte, error) {
   876  	type NoMethod Network
   877  	raw := NoMethod(*s)
   878  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   879  }
   880  
   881  // PersistentDisk: Configuration for a persistent disk to be attached to
   882  // the VM. See https://cloud.google.com/compute/docs/disks/performance
   883  // for more information about disk type, size, and performance
   884  // considerations.
   885  type PersistentDisk struct {
   886  	// SizeGb: The size, in GB, of the disk to attach. If the size is not
   887  	// specified, a default is chosen to ensure reasonable I/O performance.
   888  	// If the disk type is specified as `local-ssd`, multiple local drives
   889  	// are automatically combined to provide the requested size. Note,
   890  	// however, that each physical SSD is 375GB in size, and no more than 8
   891  	// drives can be attached to a single instance.
   892  	SizeGb int64 `json:"sizeGb,omitempty"`
   893  
   894  	// SourceImage: An image to put on the disk before attaching it to the
   895  	// VM.
   896  	SourceImage string `json:"sourceImage,omitempty"`
   897  
   898  	// Type: The Compute Engine disk type. If unspecified, `pd-standard` is
   899  	// used.
   900  	Type string `json:"type,omitempty"`
   901  
   902  	// ForceSendFields is a list of field names (e.g. "SizeGb") to
   903  	// unconditionally include in API requests. By default, fields with
   904  	// empty values are omitted from API requests. However, any non-pointer,
   905  	// non-interface field appearing in ForceSendFields will be sent to the
   906  	// server regardless of whether the field is empty or not. This may be
   907  	// used to include empty fields in Patch requests.
   908  	ForceSendFields []string `json:"-"`
   909  
   910  	// NullFields is a list of field names (e.g. "SizeGb") to include in API
   911  	// requests with the JSON null value. By default, fields with empty
   912  	// values are omitted from API requests. However, any field with an
   913  	// empty value appearing in NullFields will be sent to the server as
   914  	// null. It is an error if a field in this list has a non-empty value.
   915  	// This may be used to include null fields in Patch requests.
   916  	NullFields []string `json:"-"`
   917  }
   918  
   919  func (s *PersistentDisk) MarshalJSON() ([]byte, error) {
   920  	type NoMethod PersistentDisk
   921  	raw := NoMethod(*s)
   922  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   923  }
   924  
   925  // Pipeline: Specifies a series of actions to execute, expressed as
   926  // Docker containers.
   927  type Pipeline struct {
   928  	// Actions: The list of actions to execute, in the order they are
   929  	// specified.
   930  	Actions []*Action `json:"actions,omitempty"`
   931  
   932  	// EncryptedEnvironment: The encrypted environment to pass into every
   933  	// action. Each action can also specify its own encrypted environment.
   934  	// The secret must decrypt to a JSON-encoded dictionary where key-value
   935  	// pairs serve as environment variable names and their values. The
   936  	// decoded environment variables can overwrite the values specified by
   937  	// the `environment` field.
   938  	EncryptedEnvironment *Secret `json:"encryptedEnvironment,omitempty"`
   939  
   940  	// Environment: The environment to pass into every action. Each action
   941  	// can also specify additional environment variables but cannot delete
   942  	// an entry from this map (though they can overwrite it with a different
   943  	// value).
   944  	Environment map[string]string `json:"environment,omitempty"`
   945  
   946  	// Resources: The resources required for execution.
   947  	Resources *Resources `json:"resources,omitempty"`
   948  
   949  	// Timeout: The maximum amount of time to give the pipeline to complete.
   950  	// This includes the time spent waiting for a worker to be allocated. If
   951  	// the pipeline fails to complete before the timeout, it will be
   952  	// cancelled and the error code will be set to DEADLINE_EXCEEDED. If
   953  	// unspecified, it will default to 7 days.
   954  	Timeout string `json:"timeout,omitempty"`
   955  
   956  	// ForceSendFields is a list of field names (e.g. "Actions") to
   957  	// unconditionally include in API requests. By default, fields with
   958  	// empty values are omitted from API requests. However, any non-pointer,
   959  	// non-interface field appearing in ForceSendFields will be sent to the
   960  	// server regardless of whether the field is empty or not. This may be
   961  	// used to include empty fields in Patch requests.
   962  	ForceSendFields []string `json:"-"`
   963  
   964  	// NullFields is a list of field names (e.g. "Actions") to include in
   965  	// API requests with the JSON null value. By default, fields with empty
   966  	// values are omitted from API requests. However, any field with an
   967  	// empty value appearing in NullFields will be sent to the server as
   968  	// null. It is an error if a field in this list has a non-empty value.
   969  	// This may be used to include null fields in Patch requests.
   970  	NullFields []string `json:"-"`
   971  }
   972  
   973  func (s *Pipeline) MarshalJSON() ([]byte, error) {
   974  	type NoMethod Pipeline
   975  	raw := NoMethod(*s)
   976  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   977  }
   978  
   979  // PullStartedEvent: An event generated when the worker starts pulling
   980  // an image.
   981  type PullStartedEvent struct {
   982  	// ImageUri: The URI of the image that was pulled.
   983  	ImageUri string `json:"imageUri,omitempty"`
   984  
   985  	// ForceSendFields is a list of field names (e.g. "ImageUri") to
   986  	// unconditionally include in API requests. By default, fields with
   987  	// empty values are omitted from API requests. However, any non-pointer,
   988  	// non-interface field appearing in ForceSendFields will be sent to the
   989  	// server regardless of whether the field is empty or not. This may be
   990  	// used to include empty fields in Patch requests.
   991  	ForceSendFields []string `json:"-"`
   992  
   993  	// NullFields is a list of field names (e.g. "ImageUri") to include in
   994  	// API requests with the JSON null value. By default, fields with empty
   995  	// values are omitted from API requests. However, any field with an
   996  	// empty value appearing in NullFields will be sent to the server as
   997  	// null. It is an error if a field in this list has a non-empty value.
   998  	// This may be used to include null fields in Patch requests.
   999  	NullFields []string `json:"-"`
  1000  }
  1001  
  1002  func (s *PullStartedEvent) MarshalJSON() ([]byte, error) {
  1003  	type NoMethod PullStartedEvent
  1004  	raw := NoMethod(*s)
  1005  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1006  }
  1007  
  1008  // PullStoppedEvent: An event generated when the worker stops pulling an
  1009  // image.
  1010  type PullStoppedEvent struct {
  1011  	// ImageUri: The URI of the image that was pulled.
  1012  	ImageUri string `json:"imageUri,omitempty"`
  1013  
  1014  	// ForceSendFields is a list of field names (e.g. "ImageUri") to
  1015  	// unconditionally include in API requests. By default, fields with
  1016  	// empty values are omitted from API requests. However, any non-pointer,
  1017  	// non-interface field appearing in ForceSendFields will be sent to the
  1018  	// server regardless of whether the field is empty or not. This may be
  1019  	// used to include empty fields in Patch requests.
  1020  	ForceSendFields []string `json:"-"`
  1021  
  1022  	// NullFields is a list of field names (e.g. "ImageUri") to include in
  1023  	// API requests with the JSON null value. By default, fields with empty
  1024  	// values are omitted from API requests. However, any field with an
  1025  	// empty value appearing in NullFields will be sent to the server as
  1026  	// null. It is an error if a field in this list has a non-empty value.
  1027  	// This may be used to include null fields in Patch requests.
  1028  	NullFields []string `json:"-"`
  1029  }
  1030  
  1031  func (s *PullStoppedEvent) MarshalJSON() ([]byte, error) {
  1032  	type NoMethod PullStoppedEvent
  1033  	raw := NoMethod(*s)
  1034  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1035  }
  1036  
  1037  // Resources: The system resources for the pipeline run. At least one
  1038  // zone or region must be specified or the pipeline run will fail.
  1039  type Resources struct {
  1040  	// ProjectId: The project ID to allocate resources in.
  1041  	ProjectId string `json:"projectId,omitempty"`
  1042  
  1043  	// Regions: The list of regions allowed for VM allocation. If set, the
  1044  	// `zones` field must not be set.
  1045  	Regions []string `json:"regions,omitempty"`
  1046  
  1047  	// VirtualMachine: The virtual machine specification.
  1048  	VirtualMachine *VirtualMachine `json:"virtualMachine,omitempty"`
  1049  
  1050  	// Zones: The list of zones allowed for VM allocation. If set, the
  1051  	// `regions` field must not be set.
  1052  	Zones []string `json:"zones,omitempty"`
  1053  
  1054  	// ForceSendFields is a list of field names (e.g. "ProjectId") to
  1055  	// unconditionally include in API requests. By default, fields with
  1056  	// empty values are omitted from API requests. However, any non-pointer,
  1057  	// non-interface field appearing in ForceSendFields will be sent to the
  1058  	// server regardless of whether the field is empty or not. This may be
  1059  	// used to include empty fields in Patch requests.
  1060  	ForceSendFields []string `json:"-"`
  1061  
  1062  	// NullFields is a list of field names (e.g. "ProjectId") to include in
  1063  	// API requests with the JSON null value. By default, fields with empty
  1064  	// values are omitted from API requests. However, any field with an
  1065  	// empty value appearing in NullFields will be sent to the server as
  1066  	// null. It is an error if a field in this list has a non-empty value.
  1067  	// This may be used to include null fields in Patch requests.
  1068  	NullFields []string `json:"-"`
  1069  }
  1070  
  1071  func (s *Resources) MarshalJSON() ([]byte, error) {
  1072  	type NoMethod Resources
  1073  	raw := NoMethod(*s)
  1074  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1075  }
  1076  
  1077  // RunPipelineResponse: The response to the RunPipeline method, returned
  1078  // in the operation's result field on success.
  1079  type RunPipelineResponse struct {
  1080  }
  1081  
  1082  // Secret: Holds encrypted information that is only decrypted and stored
  1083  // in RAM by the worker VM when running the pipeline.
  1084  type Secret struct {
  1085  	// CipherText: The value of the cipherText response from the `encrypt`
  1086  	// method. This field is intentionally unaudited.
  1087  	CipherText string `json:"cipherText,omitempty"`
  1088  
  1089  	// KeyName: The name of the Cloud KMS key that will be used to decrypt
  1090  	// the secret value. The VM service account must have the required
  1091  	// permissions and authentication scopes to invoke the `decrypt` method
  1092  	// on the specified key.
  1093  	KeyName string `json:"keyName,omitempty"`
  1094  
  1095  	// ForceSendFields is a list of field names (e.g. "CipherText") to
  1096  	// unconditionally include in API requests. By default, fields with
  1097  	// empty values are omitted from API requests. However, any non-pointer,
  1098  	// non-interface field appearing in ForceSendFields will be sent to the
  1099  	// server regardless of whether the field is empty or not. This may be
  1100  	// used to include empty fields in Patch requests.
  1101  	ForceSendFields []string `json:"-"`
  1102  
  1103  	// NullFields is a list of field names (e.g. "CipherText") to include in
  1104  	// API requests with the JSON null value. By default, fields with empty
  1105  	// values are omitted from API requests. However, any field with an
  1106  	// empty value appearing in NullFields will be sent to the server as
  1107  	// null. It is an error if a field in this list has a non-empty value.
  1108  	// This may be used to include null fields in Patch requests.
  1109  	NullFields []string `json:"-"`
  1110  }
  1111  
  1112  func (s *Secret) MarshalJSON() ([]byte, error) {
  1113  	type NoMethod Secret
  1114  	raw := NoMethod(*s)
  1115  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1116  }
  1117  
  1118  // ServiceAccount: Carries information about a Google Cloud service
  1119  // account.
  1120  type ServiceAccount struct {
  1121  	// Email: Email address of the service account. If not specified, the
  1122  	// default Compute Engine service account for the project will be used.
  1123  	Email string `json:"email,omitempty"`
  1124  
  1125  	// Scopes: List of scopes to be enabled for this service account on the
  1126  	// VM, in addition to the cloud-platform API scope that will be added by
  1127  	// default.
  1128  	Scopes []string `json:"scopes,omitempty"`
  1129  
  1130  	// ForceSendFields is a list of field names (e.g. "Email") to
  1131  	// unconditionally include in API requests. By default, fields with
  1132  	// empty values are omitted from API requests. However, any non-pointer,
  1133  	// non-interface field appearing in ForceSendFields will be sent to the
  1134  	// server regardless of whether the field is empty or not. This may be
  1135  	// used to include empty fields in Patch requests.
  1136  	ForceSendFields []string `json:"-"`
  1137  
  1138  	// NullFields is a list of field names (e.g. "Email") to include in API
  1139  	// requests with the JSON null value. By default, fields with empty
  1140  	// values are omitted from API requests. However, any field with an
  1141  	// empty value appearing in NullFields will be sent to the server as
  1142  	// null. It is an error if a field in this list has a non-empty value.
  1143  	// This may be used to include null fields in Patch requests.
  1144  	NullFields []string `json:"-"`
  1145  }
  1146  
  1147  func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
  1148  	type NoMethod ServiceAccount
  1149  	raw := NoMethod(*s)
  1150  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1151  }
  1152  
  1153  // UnexpectedExitStatusEvent: An event generated when the execution of a
  1154  // container results in a non-zero exit status that was not otherwise
  1155  // ignored. Execution will continue, but only actions that are flagged
  1156  // as `ALWAYS_RUN` will be executed. Other actions will be skipped.
  1157  type UnexpectedExitStatusEvent struct {
  1158  	// ActionId: The numeric ID of the action that started the container.
  1159  	ActionId int64 `json:"actionId,omitempty"`
  1160  
  1161  	// ExitStatus: The exit status of the container.
  1162  	ExitStatus int64 `json:"exitStatus,omitempty"`
  1163  
  1164  	// ForceSendFields is a list of field names (e.g. "ActionId") to
  1165  	// unconditionally include in API requests. By default, fields with
  1166  	// empty values are omitted from API requests. However, any non-pointer,
  1167  	// non-interface field appearing in ForceSendFields will be sent to the
  1168  	// server regardless of whether the field is empty or not. This may be
  1169  	// used to include empty fields in Patch requests.
  1170  	ForceSendFields []string `json:"-"`
  1171  
  1172  	// NullFields is a list of field names (e.g. "ActionId") to include in
  1173  	// API requests with the JSON null value. By default, fields with empty
  1174  	// values are omitted from API requests. However, any field with an
  1175  	// empty value appearing in NullFields will be sent to the server as
  1176  	// null. It is an error if a field in this list has a non-empty value.
  1177  	// This may be used to include null fields in Patch requests.
  1178  	NullFields []string `json:"-"`
  1179  }
  1180  
  1181  func (s *UnexpectedExitStatusEvent) MarshalJSON() ([]byte, error) {
  1182  	type NoMethod UnexpectedExitStatusEvent
  1183  	raw := NoMethod(*s)
  1184  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1185  }
  1186  
  1187  // VirtualMachine: Carries information about a Compute Engine VM
  1188  // resource.
  1189  type VirtualMachine struct {
  1190  	// Accelerators: The list of accelerators to attach to the VM.
  1191  	Accelerators []*Accelerator `json:"accelerators,omitempty"`
  1192  
  1193  	// BootDiskSizeGb: The size of the boot disk, in GB. The boot disk must
  1194  	// be large enough to accommodate all of the Docker images from each
  1195  	// action in the pipeline at the same time. If not specified, a small
  1196  	// but reasonable default value is used.
  1197  	BootDiskSizeGb int64 `json:"bootDiskSizeGb,omitempty"`
  1198  
  1199  	// BootImage: The host operating system image to use. Currently, only
  1200  	// Container-Optimized OS images can be used. The default value is
  1201  	// `projects/cos-cloud/global/images/family/cos-stable`, which selects
  1202  	// the latest stable release of Container-Optimized OS. This option is
  1203  	// provided to allow testing against the beta release of the operating
  1204  	// system to ensure that the new version does not interact negatively
  1205  	// with production pipelines. To test a pipeline against the beta
  1206  	// release of Container-Optimized OS, use the value
  1207  	// `projects/cos-cloud/global/images/family/cos-beta`.
  1208  	BootImage string `json:"bootImage,omitempty"`
  1209  
  1210  	// CpuPlatform: The CPU platform to request. An instance based on a
  1211  	// newer platform can be allocated, but never one with fewer
  1212  	// capabilities. The value of this parameter must be a valid Compute
  1213  	// Engine CPU platform name (such as "Intel Skylake"). This parameter is
  1214  	// only useful for carefully optimized work loads where the CPU platform
  1215  	// has a significant impact. For more information about the effect of
  1216  	// this parameter, see
  1217  	// https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
  1218  	CpuPlatform string `json:"cpuPlatform,omitempty"`
  1219  
  1220  	// Disks: The list of disks to create and attach to the VM. Specify
  1221  	// either the `volumes[]` field or the `disks[]` field, but not both.
  1222  	Disks []*Disk `json:"disks,omitempty"`
  1223  
  1224  	// DockerCacheImages: The Compute Engine Disk Images to use as a Docker
  1225  	// cache. The disks will be mounted into the Docker folder in a way that
  1226  	// the images present in the cache will not need to be pulled. The
  1227  	// digests of the cached images must match those of the tags used or the
  1228  	// latest version will still be pulled. The root directory of the ext4
  1229  	// image must contain `image` and `overlay2` directories copied from the
  1230  	// Docker directory of a VM where the desired Docker images have already
  1231  	// been pulled. Any images pulled that are not cached will be stored on
  1232  	// the first cache disk instead of the boot disk. Only a single image is
  1233  	// supported.
  1234  	DockerCacheImages []string `json:"dockerCacheImages,omitempty"`
  1235  
  1236  	// EnableStackdriverMonitoring: Whether Stackdriver monitoring should be
  1237  	// enabled on the VM.
  1238  	EnableStackdriverMonitoring bool `json:"enableStackdriverMonitoring,omitempty"`
  1239  
  1240  	// Labels: Optional set of labels to apply to the VM and any attached
  1241  	// disk resources. These labels must adhere to the name and value
  1242  	// restrictions
  1243  	// (https://cloud.google.com/compute/docs/labeling-resources) on VM
  1244  	// labels imposed by Compute Engine. Labels keys with the prefix
  1245  	// 'google-' are reserved for use by Google. Labels applied at creation
  1246  	// time to the VM. Applied on a best-effort basis to attached disk
  1247  	// resources shortly after VM creation.
  1248  	Labels map[string]string `json:"labels,omitempty"`
  1249  
  1250  	// MachineType: Required. The machine type of the virtual machine to
  1251  	// create. Must be the short name of a standard machine type (such as
  1252  	// "n1-standard-1") or a custom machine type (such as "custom-1-4096",
  1253  	// where "1" indicates the number of vCPUs and "4096" indicates the
  1254  	// memory in MB). See Creating an instance with a custom machine type
  1255  	// (https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#create)
  1256  	// for more specifications on creating a custom machine type.
  1257  	MachineType string `json:"machineType,omitempty"`
  1258  
  1259  	// Network: The VM network configuration.
  1260  	Network *Network `json:"network,omitempty"`
  1261  
  1262  	// NvidiaDriverVersion: The NVIDIA driver version to use when attaching
  1263  	// an NVIDIA GPU accelerator. The version specified here must be
  1264  	// compatible with the GPU libraries contained in the container being
  1265  	// executed, and must be one of the drivers hosted in the
  1266  	// `nvidia-drivers-us-public` bucket on Google Cloud Storage.
  1267  	NvidiaDriverVersion string `json:"nvidiaDriverVersion,omitempty"`
  1268  
  1269  	// Preemptible: If true, allocate a preemptible VM.
  1270  	Preemptible bool `json:"preemptible,omitempty"`
  1271  
  1272  	// ServiceAccount: The service account to install on the VM. This
  1273  	// account does not need any permissions other than those required by
  1274  	// the pipeline.
  1275  	ServiceAccount *ServiceAccount `json:"serviceAccount,omitempty"`
  1276  
  1277  	// Volumes: The list of disks and other storage to create or attach to
  1278  	// the VM. Specify either the `volumes[]` field or the `disks[]` field,
  1279  	// but not both.
  1280  	Volumes []*Volume `json:"volumes,omitempty"`
  1281  
  1282  	// ForceSendFields is a list of field names (e.g. "Accelerators") to
  1283  	// unconditionally include in API requests. By default, fields with
  1284  	// empty values are omitted from API requests. However, any non-pointer,
  1285  	// non-interface field appearing in ForceSendFields will be sent to the
  1286  	// server regardless of whether the field is empty or not. This may be
  1287  	// used to include empty fields in Patch requests.
  1288  	ForceSendFields []string `json:"-"`
  1289  
  1290  	// NullFields is a list of field names (e.g. "Accelerators") to include
  1291  	// in API requests with the JSON null value. By default, fields with
  1292  	// empty values are omitted from API requests. However, any field with
  1293  	// an empty value appearing in NullFields will be sent to the server as
  1294  	// null. It is an error if a field in this list has a non-empty value.
  1295  	// This may be used to include null fields in Patch requests.
  1296  	NullFields []string `json:"-"`
  1297  }
  1298  
  1299  func (s *VirtualMachine) MarshalJSON() ([]byte, error) {
  1300  	type NoMethod VirtualMachine
  1301  	raw := NoMethod(*s)
  1302  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1303  }
  1304  
  1305  // Volume: Carries information about storage that can be attached to a
  1306  // VM. Specify either `Volume` or `Disk`, but not both.
  1307  type Volume struct {
  1308  	// ExistingDisk: Configuration for a existing disk.
  1309  	ExistingDisk *ExistingDisk `json:"existingDisk,omitempty"`
  1310  
  1311  	// NfsMount: Configuration for an NFS mount.
  1312  	NfsMount *NFSMount `json:"nfsMount,omitempty"`
  1313  
  1314  	// PersistentDisk: Configuration for a persistent disk.
  1315  	PersistentDisk *PersistentDisk `json:"persistentDisk,omitempty"`
  1316  
  1317  	// Volume: A user-supplied name for the volume. Used when mounting the
  1318  	// volume into `Actions`. The name must contain only upper and lowercase
  1319  	// alphanumeric characters and hyphens and cannot start with a hyphen.
  1320  	Volume string `json:"volume,omitempty"`
  1321  
  1322  	// ForceSendFields is a list of field names (e.g. "ExistingDisk") to
  1323  	// unconditionally include in API requests. By default, fields with
  1324  	// empty values are omitted from API requests. However, any non-pointer,
  1325  	// non-interface field appearing in ForceSendFields will be sent to the
  1326  	// server regardless of whether the field is empty or not. This may be
  1327  	// used to include empty fields in Patch requests.
  1328  	ForceSendFields []string `json:"-"`
  1329  
  1330  	// NullFields is a list of field names (e.g. "ExistingDisk") to include
  1331  	// in API requests with the JSON null value. By default, fields with
  1332  	// empty values are omitted from API requests. However, any field with
  1333  	// an empty value appearing in NullFields will be sent to the server as
  1334  	// null. It is an error if a field in this list has a non-empty value.
  1335  	// This may be used to include null fields in Patch requests.
  1336  	NullFields []string `json:"-"`
  1337  }
  1338  
  1339  func (s *Volume) MarshalJSON() ([]byte, error) {
  1340  	type NoMethod Volume
  1341  	raw := NoMethod(*s)
  1342  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1343  }
  1344  
  1345  // WorkerAssignedEvent: An event generated after a worker VM has been
  1346  // assigned to run the pipeline.
  1347  type WorkerAssignedEvent struct {
  1348  	// Instance: The worker's instance name.
  1349  	Instance string `json:"instance,omitempty"`
  1350  
  1351  	// MachineType: The machine type that was assigned for the worker.
  1352  	MachineType string `json:"machineType,omitempty"`
  1353  
  1354  	// Zone: The zone the worker is running in.
  1355  	Zone string `json:"zone,omitempty"`
  1356  
  1357  	// ForceSendFields is a list of field names (e.g. "Instance") to
  1358  	// unconditionally include in API requests. By default, fields with
  1359  	// empty values are omitted from API requests. However, any non-pointer,
  1360  	// non-interface field appearing in ForceSendFields will be sent to the
  1361  	// server regardless of whether the field is empty or not. This may be
  1362  	// used to include empty fields in Patch requests.
  1363  	ForceSendFields []string `json:"-"`
  1364  
  1365  	// NullFields is a list of field names (e.g. "Instance") to include in
  1366  	// API requests with the JSON null value. By default, fields with empty
  1367  	// values are omitted from API requests. However, any field with an
  1368  	// empty value appearing in NullFields will be sent to the server as
  1369  	// null. It is an error if a field in this list has a non-empty value.
  1370  	// This may be used to include null fields in Patch requests.
  1371  	NullFields []string `json:"-"`
  1372  }
  1373  
  1374  func (s *WorkerAssignedEvent) MarshalJSON() ([]byte, error) {
  1375  	type NoMethod WorkerAssignedEvent
  1376  	raw := NoMethod(*s)
  1377  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1378  }
  1379  
  1380  // WorkerReleasedEvent: An event generated when the worker VM that was
  1381  // assigned to the pipeline has been released (deleted).
  1382  type WorkerReleasedEvent struct {
  1383  	// Instance: The worker's instance name.
  1384  	Instance string `json:"instance,omitempty"`
  1385  
  1386  	// Zone: The zone the worker was running in.
  1387  	Zone string `json:"zone,omitempty"`
  1388  
  1389  	// ForceSendFields is a list of field names (e.g. "Instance") to
  1390  	// unconditionally include in API requests. By default, fields with
  1391  	// empty values are omitted from API requests. However, any non-pointer,
  1392  	// non-interface field appearing in ForceSendFields will be sent to the
  1393  	// server regardless of whether the field is empty or not. This may be
  1394  	// used to include empty fields in Patch requests.
  1395  	ForceSendFields []string `json:"-"`
  1396  
  1397  	// NullFields is a list of field names (e.g. "Instance") to include in
  1398  	// API requests with the JSON null value. By default, fields with empty
  1399  	// values are omitted from API requests. However, any field with an
  1400  	// empty value appearing in NullFields will be sent to the server as
  1401  	// null. It is an error if a field in this list has a non-empty value.
  1402  	// This may be used to include null fields in Patch requests.
  1403  	NullFields []string `json:"-"`
  1404  }
  1405  
  1406  func (s *WorkerReleasedEvent) MarshalJSON() ([]byte, error) {
  1407  	type NoMethod WorkerReleasedEvent
  1408  	raw := NoMethod(*s)
  1409  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1410  }
  1411  

View as plain text