Cloud Life Sciences API . projects . locations . pipelines

Instance Methods

run(parent, body=None, x__xgafv=None)

Runs a pipeline. The returned Operation's metadata field will contain a

Method Details

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.
    },
  }