Class: Google::Apis::GenomicsV1alpha2::PipelineParameter

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
generated/google/apis/genomics_v1alpha2/classes.rb,
generated/google/apis/genomics_v1alpha2/representations.rb,
generated/google/apis/genomics_v1alpha2/representations.rb

Overview

Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If localCopy is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If localCopy is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to gsutil cp. For example: Given the following PipelineParameter, specified in the inputParameters list:

`name: "input_file", localCopy: `path: "file.txt", disk: "pd1"``

where disk is defined in the PipelineResources object as:

`name: "pd1", mountPoint: "/mnt/disk/"`

We create a disk named pd1, mount it on the host VM, and map /mnt/pd1 to /mnt/disk in the docker container. At runtime, an entry for input_file would be required in the inputs map, such as:

inputs["input_file"] = "gs://my-bucket/bar.txt"

This would generate the following gsutil call:

gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt

The file /mnt/pd1/file.txt maps to /mnt/disk/file.txt in the Docker container. Acceptable paths are:

Google Cloud storage pathLocal path
filefile
globdirectory

For outputs, the direction of the copy is reversed:

gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt

Acceptable paths are:

Local pathGoogle Cloud Storage path
filefile
file directory - directory must already exist
glob directory - directory will be created if it doesn't exist

One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Core::JsonObjectSupport

#to_json

Methods included from Core::Hashable

process_value, #to_h

Constructor Details

#initialize(**args) ⇒ PipelineParameter

Returns a new instance of PipelineParameter.



888
889
890
# File 'generated/google/apis/genomics_v1alpha2/classes.rb', line 888

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#default_valueString

The default value for this parameter. Can be overridden at runtime. If localCopy is present, then this must be a Google Cloud Storage path beginning with gs://. Corresponds to the JSON property defaultValue

Returns:

  • (String)


870
871
872
# File 'generated/google/apis/genomics_v1alpha2/classes.rb', line 870

def default_value
  @default_value
end

#descriptionString

Human-readable description. Corresponds to the JSON property description

Returns:

  • (String)


875
876
877
# File 'generated/google/apis/genomics_v1alpha2/classes.rb', line 875

def description
  @description
end

#local_copyGoogle::Apis::GenomicsV1alpha2::LocalCopy

LocalCopy defines how a remote file should be copied to and from the VM. Corresponds to the JSON property localCopy



880
881
882
# File 'generated/google/apis/genomics_v1alpha2/classes.rb', line 880

def local_copy
  @local_copy
end

#nameString

Required. Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline. Corresponds to the JSON property name

Returns:

  • (String)


886
887
888
# File 'generated/google/apis/genomics_v1alpha2/classes.rb', line 886

def name
  @name
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



893
894
895
896
897
898
# File 'generated/google/apis/genomics_v1alpha2/classes.rb', line 893

def update!(**args)
  @default_value = args[:default_value] if args.key?(:default_value)
  @description = args[:description] if args.key?(:description)
  @local_copy = args[:local_copy] if args.key?(:local_copy)
  @name = args[:name] if args.key?(:name)
end