run(parent, body=None, x__xgafv=None)
Runs a pipeline. The returned Operation's metadata field will contain a
run(parent, body=None, x__xgafv=None)
Runs a pipeline. The returned Operation's metadata field will contain a
google.cloud.lifesciences.v2beta.Metadata object describing the status
of the pipeline execution. The
response field will contain a
google.cloud.lifesciences.v2beta.RunPipelineResponse object if the
pipeline completes successfully.
**Note:** Before you can use this method, the *Life Sciences Service Agent*
must have access to your project. This is done automatically when the
Cloud Life Sciences API is first enabled, but if you delete this permission
you must disable and re-enable the API to grant the Life Sciences
Service Agent the required permissions.
Authorization requires the following [Google
IAM](https://cloud.google.com/iam/) permission:
* `lifesciences.workflows.run`
Args:
parent: string, The project and location that this request should be executed against. (required)
body: object, The request body.
The object takes the form of:
{ # The arguments to the `RunPipeline` method. The requesting user must have
# the `iam.serviceAccounts.actAs` permission for the Cloud Life Sciences
# service account or the request will fail.
"pipeline": { # Specifies a series of actions to execute, expressed as Docker containers. # Required. The description of the pipeline to run.
"timeout": "A String", # The maximum amount of time to give the pipeline to complete. This includes
# the time spent waiting for a worker to be allocated. If the pipeline fails
# to complete before the timeout, it will be cancelled and the error code
# will be set to DEADLINE_EXCEEDED.
#
# If unspecified, it will default to 7 days.
"resources": { # The system resources for the pipeline run. # The resources required for execution.
#
# At least one zone or region must be specified or the pipeline run will fail.
"regions": [ # The list of regions allowed for VM allocation. If set, the `zones` field
# must not be set.
"A String",
],
"zones": [ # The list of zones allowed for VM allocation. If set, the `regions` field
# must not be set.
"A String",
],
"virtualMachine": { # Carries information about a Compute Engine VM resource. # The virtual machine specification.
"disks": [ # The list of disks to create and attach to the VM.
{ # Carries information about a disk that can be attached to a VM.
#
# See https://cloud.google.com/compute/docs/disks/performance for more
# information about disk type, size, and performance considerations.
"type": "A String", # The Compute Engine disk type. If unspecified, `pd-standard` is used.
"sourceImage": "A String", # An optional image to put on the disk before attaching it to the VM.
"sizeGb": 42, # The size, in GB, of the disk to attach. If the size is not
# specified, a default is chosen to ensure reasonable I/O performance.
#
# If the disk type is specified as `local-ssd`, multiple local drives are
# automatically combined to provide the requested size. Note, however, that
# each physical SSD is 375GB in size, and no more than 8 drives can be
# attached to a single instance.
"name": "A String", # A user-supplied name for the disk. Used when mounting the disk into
# actions. The name must contain only upper and lowercase alphanumeric
# characters and hyphens and cannot start with a hyphen.
},
],
"serviceAccount": { # Carries information about a Google Cloud service account. # The service account to install on the VM. This account does not need
# any permissions other than those required by the pipeline.
"email": "A String", # Email address of the service account. If not specified, the default
# Compute Engine service account for the project will be used.
"scopes": [ # List of scopes to be enabled for this service account on the VM, in
# addition to the cloud-platform API scope that will be added by default.
"A String",
],
},
"bootImage": "A String", # The host operating system image to use.
#
# Currently, only Container-Optimized OS images can be used.
#
# The default value is `projects/cos-cloud/global/images/family/cos-stable`,
# which selects the latest stable release of Container-Optimized OS.
#
# This option is provided to allow testing against the beta release of the
# operating system to ensure that the new version does not interact
# negatively with production pipelines.
#
# To test a pipeline against the beta release of Container-Optimized OS,
# use the value `projects/cos-cloud/global/images/family/cos-beta`.
"network": { # VM networking options. # The VM network configuration.
"subnetwork": "A String", # If the specified network is configured for custom subnet creation, the
# name of the subnetwork to attach the instance to must be specified here.
#
# The value is prefixed with `regions/*/subnetworks/` unless it contains a
# `/`, in which case it is assumed to be a fully specified subnetwork
# resource URL.
#
# If the `*` character appears in the value, it is replaced with the region
# that the virtual machine has been allocated in.
"network": "A String", # The network name to attach the VM's network interface to. The value will
# be prefixed with `global/networks/` unless it contains a `/`, in which
# case it is assumed to be a fully specified network resource URL.
#
# If unspecified, the global default network is used.
"usePrivateAddress": True or False, # If set to true, do not attach a public IP address to the VM. Note that
# without a public IP address, additional configuration is required to
# allow the VM to access Google services.
#
# See https://cloud.google.com/vpc/docs/configure-private-google-access
# for more information.
},
"bootDiskSizeGb": 42, # The size of the boot disk, in GB. The boot disk must be large
# enough to accommodate all of the Docker images from each action in the
# pipeline at the same time. If not specified, a small but reasonable
# default value is used.
"nvidiaDriverVersion": "A String", # The NVIDIA driver version to use when attaching an NVIDIA GPU accelerator.
# The version specified here must be compatible with the GPU libraries
# contained in the container being executed, and must be one of the drivers
# hosted in the `nvidia-drivers-us-public` bucket on Google Cloud Storage.
"labels": { # Optional set of labels to apply to the VM and any attached disk resources.
# These labels must adhere to the [name and value
# restrictions](https://cloud.google.com/compute/docs/labeling-resources) on
# VM labels imposed by Compute Engine.
#
# Labels keys with the prefix 'google-' are reserved for use by Google.
#
# Labels applied at creation time to the VM. Applied on a best-effort basis
# to attached disk resources shortly after VM creation.
"a_key": "A String",
},
"enableStackdriverMonitoring": True or False, # Whether Stackdriver monitoring should be enabled on the VM.
"cpuPlatform": "A String", # The CPU platform to request. An instance based on a newer platform can be
# allocated, but never one with fewer capabilities. The value of this
# parameter must be a valid Compute Engine CPU platform name (such as "Intel
# Skylake"). This parameter is only useful for carefully optimized work
# loads where the CPU platform has a significant impact.
#
# For more information about the effect of this parameter, see
# https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
"accelerators": [ # The list of accelerators to attach to the VM.
{ # Carries information about an accelerator that can be attached to a VM.
"count": "A String", # How many accelerators of this type to attach.
"type": "A String", # The accelerator type string (for example, "nvidia-tesla-k80").
#
# Only NVIDIA GPU accelerators are currently supported. If an NVIDIA GPU is
# attached, the required runtime libraries will be made available to all
# containers under `/usr/local/nvidia`. The driver version to install must
# be specified using the NVIDIA driver version parameter on the virtual
# machine specification. Note that attaching a GPU increases the worker VM
# startup time by a few minutes.
},
],
"machineType": "A String", # Required. The machine type of the virtual machine to create. Must be the short name
# of a standard machine type (such as "n1-standard-1") or a custom machine
# type (such as "custom-1-4096", where "1" indicates the number of vCPUs and
# "4096" indicates the memory in MB). See
# [Creating an instance with a custom machine
# type](https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#create)
# for more specifications on creating a custom machine type.
"preemptible": True or False, # If true, allocate a preemptible VM.
},
},
"actions": [ # The list of actions to execute, in the order they are specified.
{ # Specifies a single action that runs a Docker container.
"credentials": { # Holds encrypted information that is only decrypted and stored in RAM # If the specified image is hosted on a private registry other than Google
# Container Registry, the credentials required to pull the image must be
# specified here as an encrypted secret.
#
# The secret must decrypt to a JSON-encoded dictionary containing both
# `username` and `password` keys.
# by the worker VM when running the pipeline.
"keyName": "A String", # The name of the Cloud KMS key that will be used to decrypt the secret
# value. The VM service account must have the required permissions and
# authentication scopes to invoke the `decrypt` method on the specified key.
"cipherText": "A String", # The value of the cipherText response from the `encrypt` method. This field
# is intentionally unaudited.
},
"imageUri": "A String", # Required. The URI to pull the container image from. Note that all images referenced
# by actions in the pipeline are pulled before the first action runs. If
# multiple actions reference the same image, it is only pulled once,
# ensuring that the same image is used for all actions in a single pipeline.
#
# The image URI can be either a complete host and image specification (e.g.,
# quay.io/biocontainers/samtools), a library and image name (e.g.,
# google/cloud-sdk) or a bare image name ('bash') to pull from the default
# library. No schema is required in any of these cases.
#
# If the specified image is not public, the service account specified for
# the Virtual Machine must have access to pull the images from GCR, or
# appropriate credentials must be specified in the
# google.cloud.lifesciences.v2beta.Action.credentials field.
"commands": [ # If specified, overrides the `CMD` specified in the container. If the
# container also has an `ENTRYPOINT` the values are used as entrypoint
# arguments. Otherwise, they are used as a command and arguments to run
# inside the container.
"A String",
],
"ignoreExitStatus": True or False, # Normally, a non-zero exit status causes the pipeline to fail. This flag
# allows execution of other actions to continue instead.
"runInBackground": True or False, # This flag allows an action to continue running in the background while
# executing subsequent actions. This is useful to provide services to
# other actions (or to provide debugging support tools like SSH servers).
"enableFuse": True or False, # Enable access to the FUSE device for this action. Filesystems can then
# be mounted into disks shared with other actions. The other actions do
# not need the `enable_fuse` flag to access the mounted filesystem.
#
# This has the effect of causing the container to be executed with
# `CAP_SYS_ADMIN` and exposes `/dev/fuse` to the container, so use it only
# for containers you trust.
"labels": { # Labels to associate with the action. This field is provided to assist
# workflow engine authors in identifying actions (for example, to indicate
# what sort of action they perform, such as localization or debugging).
# They are returned in the operation metadata, but are otherwise ignored.
"a_key": "A String",
},
"portMappings": { # A map of containers to host port mappings for this container. If the
# container already specifies exposed ports, use the
# `PUBLISH_EXPOSED_PORTS` flag instead.
#
# The host port number must be less than 65536. If it is zero, an unused
# random port is assigned. To determine the resulting port number, consult
# the `ContainerStartedEvent` in the operation metadata.
"a_key": 42,
},
"environment": { # The environment to pass into the container. This environment is merged
# with values specified in the google.cloud.lifesciences.v2beta.Pipeline
# message, overwriting any duplicate values.
#
# In addition to the values passed here, a few other values are
# automatically injected into the environment. These cannot be hidden or
# overwritten.
#
# `GOOGLE_PIPELINE_FAILED` will be set to "1" if the pipeline failed
# because an action has exited with a non-zero status (and did not have the
# `IGNORE_EXIT_STATUS` flag set). This can be used to determine if additional
# debug or logging actions should execute.
#
# `GOOGLE_LAST_EXIT_STATUS` will be set to the exit status of the last
# non-background action that executed. This can be used by workflow engine
# authors to determine whether an individual action has succeeded or failed.
"a_key": "A String",
},
"containerName": "A String", # An optional name for the container. The container hostname will be set to
# this name, making it useful for inter-container communication. The name
# must contain only upper and lowercase alphanumeric characters and hyphens
# and cannot start with a hyphen.
"disableImagePrefetch": True or False, # All container images are typically downloaded before any actions are
# executed. This helps prevent typos in URIs or issues like lack of disk
# space from wasting large amounts of compute resources.
#
# If set, this flag prevents the worker from downloading the image until
# just before the action is executed.
"entrypoint": "A String", # If specified, overrides the `ENTRYPOINT` specified in the container.
"alwaysRun": True or False, # By default, after an action fails, no further actions are run. This flag
# indicates that this action must be run even if the pipeline has already
# failed. This is useful for actions that copy output files off of the VM
# or for debugging. Note that no actions will be run if image prefetching
# fails.
"disableStandardErrorCapture": True or False, # A small portion of the container's standard error stream is typically
# captured and returned inside the `ContainerStoppedEvent`. Setting this
# flag disables this functionality.
"pidNamespace": "A String", # An optional identifier for a PID namespace to run the action inside.
# Multiple actions should use the same string to share a namespace. If
# unspecified, a separate isolated namespace is used.
"mounts": [ # A list of mounts to make available to the action.
#
# In addition to the values specified here, every action has a special
# virtual disk mounted under `/google` that contains log files and other
# operational components.
#
# <ul>
# <li><code>/google/logs</code> All logs written during the pipeline
# execution.</li>
# <li><code>/google/logs/output</code> The combined standard output and
# standard error of all actions run as part of the pipeline
# execution.</li>
# <li><code>/google/logs/action/*/stdout</code> The complete contents of
# each individual action's standard output.</li>
# <li><code>/google/logs/action/*/stderr</code> The complete contents of
# each individual action's standard error output.</li>
# </ul>
{ # Carries information about a particular disk mount inside a container.
"disk": "A String", # The name of the disk to mount, as specified in the resources section.
"readOnly": True or False, # If true, the disk is mounted read-only inside the container.
"path": "A String", # The path to mount the disk inside the container.
},
],
"publishExposedPorts": True or False, # Exposes all ports specified by `EXPOSE` statements in the container. To
# discover the host side port numbers, consult the `ACTION_STARTED` event
# in the operation metadata.
"timeout": "A String", # The maximum amount of time to give the action to complete. If the action
# fails to complete before the timeout, it will be terminated and the exit
# status will be non-zero. The pipeline will continue or terminate based
# on the rules defined by the `ALWAYS_RUN` and `IGNORE_EXIT_STATUS` flags.
},
],
"environment": { # The environment to pass into every action. Each action can also specify
# additional environment variables but cannot delete an entry from this map
# (though they can overwrite it with a different value).
"a_key": "A String",
},
},
"labels": { # User-defined labels to associate with the returned operation. These
# labels are not propagated to any Google Cloud Platform resources used by
# the operation, and can be modified at any time.
#
# To associate labels with resources created while executing the operation,
# see the appropriate resource message (for example, `VirtualMachine`).
"a_key": "A String",
},
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # This resource represents a long-running operation that is the result of a
# network API call.
"done": True or False, # If the value is `false`, it means the operation is still in progress.
# If `true`, the operation is completed, and either `error` or `response` is
# available.
"response": { # An Empty object.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
"name": "A String", # The server-assigned name for the operation. This may be passed to the other operation methods to retrieve information about the operation's status.
"error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
# different programming environments, including REST APIs and RPC APIs. It is
# used by [gRPC](https://github.com/grpc). Each `Status` message contains
# three pieces of data: error code, error message, and error details.
#
# You can find out more about this error model and how to work with it in the
# [API Design Guide](https://cloud.google.com/apis/design/errors).
"message": "A String", # A developer-facing error message, which should be in English. Any
# user-facing error message should be localized and sent in the
# google.rpc.Status.details field, or localized by the client.
"details": [ # A list of messages that carry the error details. There is a common set of
# message types for APIs to use.
{
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
],
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
},
"metadata": { # An Metadata object. This will always be returned with the Operation.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
}