Files
openpipeline/schemas/defs_viash.yaml
CI cd0af18851 Build branch fix-integration-tests with version dev (2dbe3b72)
Build pipeline: vsh-ci-dev-k8tz4

Source commit: 2dbe3b7231

Source message: Fix pointers to test resources
2024-10-17 17:56:12 +00:00

3136 lines
141 KiB
YAML

$schema: "https://json-schema.org/draft-07/schema#"
definitions:
Config:
description: "A Viash configuration is a YAML file which contains metadata to\
\ describe the behaviour and build target(s) of a component. \nWe commonly\
\ name this file `config.vsh.yaml` in our examples, but you can name it however\
\ you choose. \n"
type: "object"
properties:
label:
description: "A clean version of the component's name. This is only used for\
\ documentation."
type: "string"
license:
description: "The license of the package."
type: "string"
authors:
description: "A list of authors. An author must at least have a name, but\
\ can also have a list of roles, an e-mail address, and a map of custom\
\ properties.\n\nSuggested values for roles are:\n \n| Role | Abbrev. |\
\ Description |\n|------|---------|-------------|\n| maintainer | mnt |\
\ for the maintainer of the code. Ideally, exactly one maintainer is specified.\
\ |\n| author | aut | for persons who have made substantial contributions\
\ to the software. |\n| contributor | ctb| for persons who have made smaller\
\ contributions (such as code patches).\n| datacontributor | dtc | for persons\
\ or organisations that contributed data sets for the software\n| copyrightholder\
\ | cph | for all copyright holders. This is a legal concept so should use\
\ the legal name of an institution or corporate body.\n| funder | fnd |\
\ for persons or organizations that furnished financial support for the\
\ development of the software\n\nThe [full list of roles](https://www.loc.gov/marc/relators/relaterm.html)\
\ is extremely comprehensive.\n"
type: "array"
items:
$ref: "#/definitions/Author"
status:
description: "Allows setting a component to active, deprecated or disabled."
$ref: "#/definitions/Status"
requirements:
description: "Computational requirements related to running the component.\
\ \n`cpus` specifies the maximum number of (logical) cpus a component is\
\ allowed to use., whereas\n`memory` specifies the maximum amount of memory\
\ a component is allowed to allicate. Memory units must be\nin B, KB, MB,\
\ GB, TB or PB for SI units (1000-base), or KiB, MiB, GiB, TiB or PiB for\
\ binary IEC units (1024-base)."
$ref: "#/definitions/ComputationalRequirements"
repositories:
description: "(Pre-)defines repositories that can be used as repository in\
\ dependencies.\nAllows reusing repository definitions in case it is used\
\ in multiple dependencies."
type: "array"
items:
$ref: "#/definitions/RepositoryWithName"
dependencies:
description: "Allows listing Viash components required by this Viash component"
type: "array"
items:
$ref: "#/definitions/Dependency"
summary:
description: "A one-sentence summary of the component. This is only used for\
\ documentation."
type: "string"
functionality:
description: "The functionality describes the behaviour of the script in terms\
\ of arguments and resources.\nBy specifying a few restrictions (e.g. mandatory\
\ arguments) and adding some descriptions, Viash will automatically generate\
\ a stylish command-line interface for you.\n"
$ref: "#/definitions/Functionality"
runners:
description: "A list of runners to execute target artifacts.\n\n - ExecutableRunner\n\
\ - NextflowRunner\n"
type: "array"
items:
$ref: "#/definitions/Runner"
name:
description: "Name of the component and the filename of the executable when\
\ built with `viash build`."
type: "string"
build_info:
$ref: "#/definitions/BuildInfo"
argument_groups:
description: "A grouping of the arguments, used to display the help message.\n\
\n - `name: foo`, the name of the argument group. \n - `description: Description\
\ of foo`, a description of the argument group. Multiline descriptions are\
\ supported.\n - `arguments: [arg1, arg2, ...]`, list of the arguments.\n\
\n"
type: "array"
items:
$ref: "#/definitions/ArgumentGroup"
description:
description: "A description of the component. This is only used for documentation.\
\ Multiline descriptions are supported."
type: "string"
usage:
description: "A description on how to use the component. This will be displayed\
\ with `--help` under the 'Usage:' section."
type: "string"
info:
description: "Structured information. Can be any shape: a string, vector,\
\ map or even nested map."
type: "object"
package_config:
description: "The package config content used during build."
$ref: "#/definitions/PackageConfig"
platforms:
description: "A list of platforms to generate target artifacts for.\n\n -\
\ Native\n - Docker\n - Nextflow\n"
type: "array"
items:
$ref: "#/definitions/Platform"
version:
description: "Version of the component. This field will be used to version\
\ the executable and the Docker container."
type: "string"
links:
description: "External links of the component."
$ref: "#/definitions/Links"
references:
description: "References to external resources related to the component."
$ref: "#/definitions/References"
engines:
description: "A list of engine environments to execute target artifacts in.\n\
\n - NativeEngine\n - DockerEngine\n"
type: "array"
items:
$ref: "#/definitions/Engine"
resources:
description: "Resources are files that support the component. The first resource\
\ should be a script that will be executed when the component is run. Additional\
\ resources will be copied to the same directory.\n\nCommon properties:\n\
\n * type: `file` / `r_script` / `python_script` / `bash_script` / `javascript_script`\
\ / `scala_script` / `csharp_script`, specifies the type of the resource.\
\ The first resource cannot be of type `file`. When the type is not specified,\
\ the default type is simply `file`.\n * dest: filename, the resulting name\
\ of the resource. From within a script, the file can be accessed at `meta[\"\
resources_dir\"] + \"/\" + dest`. If unspecified, `dest` will be set to\
\ the basename of the `path` parameter.\n * path: `path/to/file`, the path\
\ of the input file. Can be a relative or an absolute path, or a URI. Mutually\
\ exclusive with `text`.\n * text: ...multiline text..., the content of\
\ the resulting file specified as a string. Mutually exclusive with `path`.\n\
\ * is_executable: `true` / `false`, whether the resulting resource file\
\ should be made executable.\n"
type: "array"
items:
$ref: "#/definitions/Resource"
keywords:
description: "The keywords of the components."
type: "array"
items:
type: "string"
test_resources:
description: "One or more scripts to be used to test the component behaviour\
\ when `viash test` is invoked. Additional files of type `file` will be\
\ made available only during testing. Each test script should expect no\
\ command-line inputs, be platform-independent, and return an exit code\
\ >0 when unexpected behaviour occurs during testing. See Unit Testing for\
\ more info."
type: "array"
items:
$ref: "#/definitions/Resource"
namespace:
description: "Namespace this component is a part of. See the Namespaces guide\
\ for more information on namespaces."
type: "string"
arguments:
description: "A list of arguments for this component. For each argument, a\
\ type and a name must be specified. Depending on the type of argument,\
\ different properties can be set. See these reference pages per type for\
\ more information: \n\n - string\n - file\n - integer\n - double\n - boolean\n\
\ - boolean_true\n - boolean_false\n"
type: "array"
items:
$ref: "#/definitions/Argument"
required:
- "name"
additionalProperties: false
PackageConfig:
description: "A Viash package configuration file. It's name should be `_viash.yaml`."
type: "object"
properties:
organization:
description: "The organization of the package."
type: "string"
name:
description: "The name of the package."
type: "string"
source:
description: "Which source directory to use for the `viash ns` commands."
type: "string"
description:
description: "A description of the package. This is only used for documentation.\
\ Multiline descriptions are supported."
type: "string"
config_mods:
oneOf:
- description: "Which config mods to apply."
type: "string"
- type: "array"
items:
description: "Which config mods to apply."
type: "string"
info:
description: "Structured information. Can be any shape: a string, vector,\
\ map or even nested map."
type: "object"
license:
description: "The license of the package."
type: "string"
references:
description: "References to external resources related to the package."
$ref: "#/definitions/References"
authors:
description: "The authors of the package."
type: "array"
items:
$ref: "#/definitions/Author"
repositories:
description: "Common repository definitions for component dependencies."
type: "array"
items:
$ref: "#/definitions/RepositoryWithName"
keywords:
description: "The keywords of the package."
type: "array"
items:
type: "string"
target:
description: "Which target directory to use for `viash ns build`."
type: "string"
summary:
description: "A one-sentence summary of the package. This is only used for\
\ documentation."
type: "string"
viash_version:
description: "Which version of Viash to use."
type: "string"
label:
description: "A clean version of the package name. This is only used for documentation."
type: "string"
version:
description: "The version of the package."
type: "string"
links:
description: "External links of the package."
$ref: "#/definitions/Links"
required: []
additionalProperties: false
BuildInfo:
description: "Meta information fields filled in by Viash during build."
type: "object"
properties:
git_tag:
description: "Git tag."
type: "string"
git_remote:
description: "Git remote name."
type: "string"
viash_version:
description: "The Viash version that was used to build the component."
type: "string"
output:
description: "Folder path to the build artifacts."
type: "string"
git_commit:
description: "Git commit hash."
type: "string"
engine:
description: "The engine id used during build."
type: "string"
runner:
description: "The runner id used during build."
type: "string"
config:
description: "Path to the config used during build."
type: "string"
dependencies:
description: "List of dependencies used during build."
type: "array"
items:
type: "string"
executable:
description: "Output folder with main executable path."
type: "string"
required:
- "config"
additionalProperties: false
Functionality:
description: "The functionality-part of the config file describes the behaviour\
\ of the script in terms of arguments and resources.\nBy specifying a few restrictions\
\ (e.g. mandatory arguments) and adding some descriptions, Viash will automatically\
\ generate a stylish command-line interface for you.\n"
type: "object"
properties:
organization:
description: "The organization of the package."
type: "string"
name:
description: "Name of the component and the filename of the executable when\
\ built with `viash build`."
type: "string"
argument_groups:
description: "A grouping of the arguments, used to display the help message.\n\
\n - `name: foo`, the name of the argument group. \n - `description: Description\
\ of foo`, a description of the argument group. Multiline descriptions are\
\ supported.\n - `arguments: [arg1, arg2, ...]`, list of the arguments.\n\
\n"
type: "array"
items:
$ref: "#/definitions/ArgumentGroup"
info:
description: "Structured information. Can be any shape: a string, vector,\
\ map or even nested map."
type: "object"
license:
description: "The license of the package."
type: "string"
references:
description: "References to external resources related to the component."
$ref: "#/definitions/References"
authors:
description: "A list of authors. An author must at least have a name, but\
\ can also have a list of roles, an e-mail address, and a map of custom\
\ properties.\n\nSuggested values for roles are:\n \n| Role | Abbrev. |\
\ Description |\n|------|---------|-------------|\n| maintainer | mnt |\
\ for the maintainer of the code. Ideally, exactly one maintainer is specified.\
\ |\n| author | aut | for persons who have made substantial contributions\
\ to the software. |\n| contributor | ctb| for persons who have made smaller\
\ contributions (such as code patches).\n| datacontributor | dtc | for persons\
\ or organisations that contributed data sets for the software\n| copyrightholder\
\ | cph | for all copyright holders. This is a legal concept so should use\
\ the legal name of an institution or corporate body.\n| funder | fnd |\
\ for persons or organizations that furnished financial support for the\
\ development of the software\n\nThe [full list of roles](https://www.loc.gov/marc/relators/relaterm.html)\
\ is extremely comprehensive.\n"
type: "array"
items:
$ref: "#/definitions/Author"
status:
description: "Allows setting a component to active, deprecated or disabled."
$ref: "#/definitions/Status"
requirements:
description: "Computational requirements related to running the component.\
\ \n`cpus` specifies the maximum number of (logical) cpus a component is\
\ allowed to use., whereas\n`memory` specifies the maximum amount of memory\
\ a component is allowed to allicate. Memory units must be\nin B, KB, MB,\
\ GB, TB or PB for SI units (1000-base), or KiB, MiB, GiB, TiB or PiB for\
\ binary IEC units (1024-base)."
$ref: "#/definitions/ComputationalRequirements"
repositories:
description: "(Pre-)defines repositories that can be used as repository in\
\ dependencies.\nAllows reusing repository definitions in case it is used\
\ in multiple dependencies."
type: "array"
items:
$ref: "#/definitions/RepositoryWithName"
test_resources:
description: "One or more scripts to be used to test the component behaviour\
\ when `viash test` is invoked. Additional files of type `file` will be\
\ made available only during testing. Each test script should expect no\
\ command-line inputs, be platform-independent, and return an exit code\
\ >0 when unexpected behaviour occurs during testing. See Unit Testing for\
\ more info."
type: "array"
items:
$ref: "#/definitions/Resource"
dependencies:
description: "Allows listing Viash components required by this Viash component"
type: "array"
items:
$ref: "#/definitions/Dependency"
description:
description: "A description of the component. This will be displayed with\
\ `--help`."
type: "string"
usage:
description: "A description on how to use the component. This will be displayed\
\ with `--help` under the 'Usage:' section."
type: "string"
version:
description: "Version of the component. This field will be used to version\
\ the executable and the Docker container."
type: "string"
links:
description: "External links of the component."
$ref: "#/definitions/Links"
resources:
description: "Resources are files that support the component. The first resource\
\ should be a script that will be executed when the functionality is run.\
\ Additional resources will be copied to the same directory.\n\nCommon properties:\n\
\n * type: `file` / `r_script` / `python_script` / `bash_script` / `javascript_script`\
\ / `scala_script` / `csharp_script`, specifies the type of the resource.\
\ The first resource cannot be of type `file`. When the type is not specified,\
\ the default type is simply `file`.\n * dest: filename, the resulting name\
\ of the resource. From within a script, the file can be accessed at `meta[\"\
resources_dir\"] + \"/\" + dest`. If unspecified, `dest` will be set to\
\ the basename of the `path` parameter.\n * path: `path/to/file`, the path\
\ of the input file. Can be a relative or an absolute path, or a URI. Mutually\
\ exclusive with `text`.\n * text: ...multiline text..., the content of\
\ the resulting file specified as a string. Mutually exclusive with `path`.\n\
\ * is_executable: `true` / `false`, whether the resulting resource file\
\ should be made executable.\n"
type: "array"
items:
$ref: "#/definitions/Resource"
keywords:
description: "The keywords of the components."
type: "array"
items:
type: "string"
namespace:
description: "Namespace this component is a part of. See the Namespaces guide\
\ for more information on namespaces."
type: "string"
arguments:
description: "A list of arguments for this component. For each argument, a\
\ type and a name must be specified. Depending on the type of argument,\
\ different properties can be set. See these reference pages per type for\
\ more information: \n\n - string\n - file\n - integer\n - double\n - boolean\n\
\ - boolean_true\n - boolean_false\n"
type: "array"
items:
$ref: "#/definitions/Argument"
required:
- "name"
additionalProperties: false
Author:
description: "Author metadata."
type: "object"
properties:
name:
description: "Full name of the author, usually in the name of FirstName MiddleName\
\ LastName."
type: "string"
email:
description: "E-mail of the author."
type: "string"
info:
description: "Structured information. Can be any shape: a string, vector,\
\ map or even nested map."
type: "object"
roles:
oneOf:
- description: "Role of the author. Suggested items:\n\n* \"author\": Authors\
\ who have made substantial contributions to the component.\n* \"maintainer\"\
: The maintainer of the component.\n* \"contributor\": Authors who have\
\ made smaller contributions (such as code patches etc.).\n"
type: "string"
- type: "array"
items:
description: "Role of the author. Suggested items:\n\n* \"author\": Authors\
\ who have made substantial contributions to the component.\n* \"maintainer\"\
: The maintainer of the component.\n* \"contributor\": Authors who have\
\ made smaller contributions (such as code patches etc.).\n"
type: "string"
required:
- "name"
additionalProperties: false
ComputationalRequirements:
description: "Computational requirements related to running the component."
type: "object"
properties:
cpus:
description: "The maximum number of (logical) cpus a component is allowed\
\ to use."
type: "integer"
commands:
description: "A list of commands which should be present on the system for\
\ the script to function."
type: "array"
items:
type: "string"
memory:
description: "The maximum amount of memory a component is allowed to allocate.\
\ Unit must be one of B, KB, MB, GB, TB or PB for SI units (1000-base),\
\ or KiB, MiB, GiB, TiB or PiB for binary IEC units (1024-base)."
type: "string"
required: []
additionalProperties: false
ArgumentGroup:
description: "A grouping of the arguments, used to display the help message."
type: "object"
properties:
name:
description: "The name of the argument group."
type: "string"
description:
description: "A description of the argument group. This is only used for documentation.\
\ Multiline descriptions are supported."
type: "string"
label:
description: "A clean version of the argument group's name. This is only used\
\ for documentation."
type: "string"
summary:
description: "A one-sentence summary of the argument group. This is only used\
\ for documentation."
type: "string"
arguments:
description: "A list of arguments for this component. For each argument, a\
\ type and a name must be specified. Depending on the type of argument,\
\ different properties can be set. See these reference pages per type for\
\ more information: \n\n - string\n - file\n - integer\n - double\n - boolean\n\
\ - boolean_true\n - boolean_false\n"
type: "array"
items:
$ref: "#/definitions/Argument"
required:
- "name"
additionalProperties: false
Links:
description: "Links to external resources related to the component."
type: "object"
properties:
repository:
description: "Source repository url."
type: "string"
documentation:
description: "Documentation website url."
type: "string"
docker_registry:
description: "Docker registry url."
type: "string"
homepage:
description: "Homepage website url."
type: "string"
issue_tracker:
description: "Issue tracker url."
type: "string"
required: []
additionalProperties: false
References:
description: "A list of scholarly sources or publications relevant to the tools\
\ or analysis defined in the component. This is important for attribution, scientific\
\ reproducibility and transparency."
type: "object"
properties:
bibtex:
oneOf:
- description: "One or multiple BibTeX reference(s) of the component."
type: "string"
- type: "array"
items:
description: "One or multiple BibTeX reference(s) of the component."
type: "string"
doi:
oneOf:
- description: "One or multiple DOI reference(s) of the component."
type: "string"
- type: "array"
items:
description: "One or multiple DOI reference(s) of the component."
type: "string"
required: []
additionalProperties: false
Runner:
oneOf:
- $ref: "#/definitions/ExecutableRunner"
- $ref: "#/definitions/NextflowRunner"
ExecutableRunner:
description: "Run code as an executable.\n\nThis runner is the default runner.\
\ It will generate a bash script that can be run directly.\n\nThis runner is\
\ also used for the native engine.\n\nThis runner is also used for the docker\
\ engine.\n"
type: "object"
properties:
docker_setup_strategy:
description: "The Docker setup strategy to use when building a docker engine\
\ enrivonment.\n\n| Strategy | Description |\n|-----|----------|\n| `alwaysbuild`\
\ / `build` / `b` | Always build the image from the dockerfile. This is\
\ the default setup strategy.\n| `alwayscachedbuild` / `cachedbuild` / `cb`\
\ | Always build the image from the dockerfile, with caching enabled.\n\
| `ifneedbebuild` | Build the image if it does not exist locally.\n| `ifneedbecachedbuild`\
\ | Build the image with caching enabled if it does not exist locally, with\
\ caching enabled.\n| `alwayspull` / `pull` / `p` | Try to pull the container\
\ from [Docker Hub](https://hub.docker.com) or the specified docker registry.\n\
| `alwayspullelsebuild` / `pullelsebuild` | Try to pull the image from\
\ a registry and build it if it doesn't exist.\n| `alwayspullelsecachedbuild`\
\ / `pullelsecachedbuild` | Try to pull the image from a registry and build\
\ it with caching if it doesn't exist.\n| `ifneedbepull` | If the image\
\ does not exist locally, pull the image.\n| `ifneedbepullelsebuild` | \
\ If the image does not exist locally, pull the image. If the image does\
\ exist, build it.\n| `ifneedbepullelsecachedbuild` | If the image does\
\ not exist locally, pull the image. If the image does exist, build it with\
\ caching enabled.\n| `push` | Push the container to [Docker Hub](https://hub.docker.com)\
\ or the specified docker registry.\n| `pushifnotpresent` | Push the container\
\ to [Docker Hub](https://hub.docker.com) or the specified docker registry\
\ if the tag does not exist yet.\n| `donothing` / `meh` | Do not build or\
\ pull anything.\n\n"
$ref: "#/definitions/DockerSetupStrategy"
workdir:
description: "The working directory when starting the engine. This doesn't\
\ change the Dockerfile but gets added as a command-line argument at runtime."
type: "string"
docker_run_args:
oneOf:
- description: "Provide runtime arguments to Docker. See the documentation\
\ on [`docker run`](https://docs.docker.com/engine/reference/run/) for\
\ more information."
type: "string"
- type: "array"
items:
description: "Provide runtime arguments to Docker. See the documentation\
\ on [`docker run`](https://docs.docker.com/engine/reference/run/) for\
\ more information."
type: "string"
id:
description: "Name of the runner. As with all runners, you can give an runner\
\ a different name. By specifying `id: foo`, you can target this executor\
\ (only) by specifying `...` in any of the Viash commands."
type: "string"
port:
oneOf:
- description: "A list of enabled ports. This doesn't change the Dockerfile\
\ but gets added as a command-line argument at runtime."
type: "integer"
- description: "A list of enabled ports. This doesn't change the Dockerfile\
\ but gets added as a command-line argument at runtime."
type: "string"
- description: "A list of enabled ports. This doesn't change the Dockerfile\
\ but gets added as a command-line argument at runtime."
type: "array"
items:
type: "integer"
- description: "A list of enabled ports. This doesn't change the Dockerfile\
\ but gets added as a command-line argument at runtime."
type: "array"
items:
type: "string"
type:
description: "Run code as an executable.\n\nThis runner is the default runner.\
\ It will generate a bash script that can be run directly.\n\nThis runner\
\ is also used for the native engine.\n\nThis runner is also used for the\
\ docker engine.\n"
const: "executable"
required:
- "type"
additionalProperties: false
NextflowRunner:
description: "Run a Viash component on a Nextflow backend engine.\n"
type: "object"
properties:
auto:
description: "Automated processing flags which can be toggled on or off:\n\
\n| Flag | Description | Default |\n|---|---------|----|\n| `simplifyInput`\
\ | If `true`, an input tuple only containing only a single File (e.g. `[\"\
foo\", file(\"in.h5ad\")]`) is automatically transformed to a map (i.e.\
\ `[\"foo\", [ input: file(\"in.h5ad\") ] ]`). | `true` |\n| `simplifyOutput`\
\ | If `true`, an output tuple containing a map with a File (e.g. `[\"foo\"\
, [ output: file(\"out.h5ad\") ] ]`) is automatically transformed to a map\
\ (i.e. `[\"foo\", file(\"out.h5ad\")]`). | `false` |\n| `transcript` |\
\ If `true`, the module's transcripts from `work/` are automatically published\
\ to `params.transcriptDir`. If not defined, `params.publishDir + \"/_transcripts\"\
` will be used. Will throw an error if neither are defined. | `false` |\n\
| `publish` | If `true`, the module's outputs are automatically published\
\ to `params.publishDir`. If equal to \"state\", also a `.state.yaml` file\
\ will be published in the publish dir. Will throw an error if `params.publishDir`\
\ is not defined. | `false` |\n\n"
$ref: "#/definitions/NextflowAuto"
directives:
description: "Directives are optional settings that affect the execution of\
\ the process. These mostly match up with the Nextflow counterparts. \n"
$ref: "#/definitions/NextflowDirectives"
container:
description: "Specifies the Docker engine id to be used to run Nextflow."
type: "string"
config:
description: "Allows tweaking how the Nextflow Config file is generated."
$ref: "#/definitions/NextflowConfig"
debug:
description: "Whether or not to print debug messages."
type: "boolean"
id:
description: "Name of the runner. As with all runners, you can give an runner\
\ a different name. By specifying `id: foo`, you can target this runner\
\ (only) by specifying `...` in any of the Viash commands."
type: "string"
type:
description: "Run a Viash component on a Nextflow backend engine.\n"
const: "nextflow"
required:
- "type"
additionalProperties: false
Engine:
oneOf:
- $ref: "#/definitions/DockerEngine"
- $ref: "#/definitions/NativeEngine"
NativeEngine:
description: "Running a Viash component on a native engine means that the script\
\ will be executed in your current environment.\nAny dependencies are assumed\
\ to have been installed by the user, so the native engine is meant for developers\
\ (who know what they're doing) or for simple bash scripts (which have no extra\
\ dependencies).\n"
type: "object"
properties:
id:
description: "Name of the engine. As with all engines, you can give an engine\
\ a different name. By specifying `id: foo`, you can target this engine\
\ (only) by specifying `...` in any of the Viash commands."
type: "string"
type:
description: "Running a Viash component on a native engine means that the\
\ script will be executed in your current environment.\nAny dependencies\
\ are assumed to have been installed by the user, so the native engine is\
\ meant for developers (who know what they're doing) or for simple bash\
\ scripts (which have no extra dependencies).\n"
const: "native"
required:
- "type"
additionalProperties: false
DockerEngine:
description: "Run a Viash component on a Docker backend engine.\nBy specifying\
\ which dependencies your component needs, users will be able to build a docker\
\ container from scratch using the setup flag, or pull it from a docker repository.\n"
type: "object"
properties:
organization:
description: "Name of a start container's [organization](https://docs.docker.com/docker-hub/orgs/)."
type: "string"
registry:
description: "The URL to the a [custom Docker registry](https://docs.docker.com/registry/)\
\ where the start container is located."
type: "string"
image:
description: "The base container to start from. You can also add the tag here\
\ if you wish."
type: "string"
tag:
description: "Specify a Docker image based on its tag."
type: "string"
target_image:
description: "If anything is specified in the setup section, running the `---setup`\
\ will result in an image with the name of `<target_image>:<version>`. If\
\ nothing is specified in the `setup` section, simply `image` will be used.\
\ Advanced usage only."
type: "string"
target_tag:
description: "The tag the resulting image gets. Advanced usage only."
type: "string"
namespace_separator:
description: "The separator between the namespace and the name of the component,\
\ used for determining the image name. Default: \"/\"."
type: "string"
target_package:
description: "The package name set in the resulting image. Advanced usage\
\ only."
type: "string"
id:
description: "Name of the engine. As with all engines, you can give a engine\
\ a different name. By specifying `id: foo`, you can target this engine\
\ (only) by specifying `...` in any of the Viash commands."
type: "string"
target_registry:
description: "The URL where the resulting image will be pushed to. Advanced\
\ usage only."
type: "string"
type:
description: "Run a Viash component on a Docker backend engine.\nBy specifying\
\ which dependencies your component needs, users will be able to build a\
\ docker container from scratch using the setup flag, or pull it from a\
\ docker repository.\n"
const: "docker"
target_organization:
description: "The organization set in the resulting image. Advanced usage\
\ only."
type: "string"
setup:
description: "A list of requirements for installing the following types of\
\ packages:\n\n - apt\n - apk\n - Docker setup instructions\n - JavaScript\n\
\ - Python\n - R\n - Ruby\n - yum\n\nThe order in which these dependencies\
\ are specified determines the order in which they will be installed.\n"
type: "array"
items:
$ref: "#/definitions/Requirements"
cmd:
oneOf:
- description: "Set the default command being executed when running the Docker\
\ container."
type: "string"
- description: "Set the default command being executed when running the Docker\
\ container."
type: "array"
items:
type: "string"
target_image_source:
description: "The source of the target image. This is used for defining labels\
\ in the dockerfile."
type: "string"
test_setup:
description: "Additional requirements specific for running unit tests."
type: "array"
items:
$ref: "#/definitions/Requirements"
entrypoint:
oneOf:
- description: "Override the entrypoint of the base container. Default set\
\ `ENTRYPOINT []`."
type: "string"
- description: "Override the entrypoint of the base container. Default set\
\ `ENTRYPOINT []`."
type: "array"
items:
type: "string"
required:
- "image"
- "type"
additionalProperties: false
Platform:
oneOf:
- $ref: "#/definitions/NativePlatform"
- $ref: "#/definitions/DockerPlatform"
- $ref: "#/definitions/NextflowPlatform"
NativePlatform:
description: "Running a Viash component on a native platform means that the script\
\ will be executed in your current environment.\nAny dependencies are assumed\
\ to have been installed by the user, so the native platform is meant for developers\
\ (who know what they're doing) or for simple bash scripts (which have no extra\
\ dependencies).\n"
type: "object"
properties:
id:
description: "As with all platforms, you can give a platform a different name.\
\ By specifying `id: foo`, you can target this platform (only) by specifying\
\ `-p foo` in any of the Viash commands."
type: "string"
type:
description: "Running a Viash component on a native platform means that the\
\ script will be executed in your current environment.\nAny dependencies\
\ are assumed to have been installed by the user, so the native platform\
\ is meant for developers (who know what they're doing) or for simple bash\
\ scripts (which have no extra dependencies).\n"
const: "native"
required:
- "type"
additionalProperties: false
DockerPlatform:
description: "Run a Viash component on a Docker backend platform.\nBy specifying\
\ which dependencies your component needs, users will be able to build a docker\
\ container from scratch using the setup flag, or pull it from a docker repository.\n"
type: "object"
properties:
organization:
description: "Name of a container's [organization](https://docs.docker.com/docker-hub/orgs/)."
type: "string"
registry:
description: "The URL to the a [custom Docker registry](https://docs.docker.com/registry/)"
type: "string"
image:
description: "The base container to start from. You can also add the tag here\
\ if you wish."
type: "string"
tag:
description: "Specify a Docker image based on its tag."
type: "string"
target_tag:
description: "The tag the resulting image gets. Advanced usage only."
type: "string"
run_args:
oneOf:
- description: "Add [docker run](https://docs.docker.com/engine/reference/run/)\
\ arguments."
type: "string"
- type: "array"
items:
description: "Add [docker run](https://docs.docker.com/engine/reference/run/)\
\ arguments."
type: "string"
namespace_separator:
description: "The separator between the namespace and the name of the component,\
\ used for determining the image name. Default: \"/\"."
type: "string"
resolve_volume:
description: "Enables or disables automatic volume mapping. Enabled when set\
\ to `Automatic` or disabled when set to `Manual`. Default: `Automatic`."
$ref: "#/definitions/DockerResolveVolume"
cmd:
oneOf:
- description: "Set the default command being executed when running the Docker\
\ container."
type: "string"
- description: "Set the default command being executed when running the Docker\
\ container."
type: "array"
items:
type: "string"
id:
description: "As with all platforms, you can give a platform a different name.\
\ By specifying `id: foo`, you can target this platform (only) by specifying\
\ `-p foo` in any of the Viash commands."
type: "string"
port:
oneOf:
- description: "A list of enabled ports. This doesn't change the Dockerfile\
\ but gets added as a command-line argument at runtime."
type: "string"
- type: "array"
items:
description: "A list of enabled ports. This doesn't change the Dockerfile\
\ but gets added as a command-line argument at runtime."
type: "string"
target_registry:
description: "The URL where the resulting image will be pushed to. Advanced\
\ usage only."
type: "string"
setup:
description: "A list of requirements for installing the following types of\
\ packages:\n\n - apt\n - apk\n - Docker setup instructions\n - JavaScript\n\
\ - Python\n - R\n - Ruby\n - yum\n\nThe order in which these dependencies\
\ are specified determines the order in which they will be installed.\n"
type: "array"
items:
$ref: "#/definitions/Requirements"
workdir:
description: "The working directory when starting the container. This doesn't\
\ change the Dockerfile but gets added as a command-line argument at runtime."
type: "string"
target_image:
description: "If anything is specified in the setup section, running the `---setup`\
\ will result in an image with the name of `<target_image>:<version>`. If\
\ nothing is specified in the `setup` section, simply `image` will be used.\
\ Advanced usage only."
type: "string"
target_image_source:
description: "The source of the target image. This is used for defining labels\
\ in the dockerfile."
type: "string"
test_setup:
description: "Additional requirements specific for running unit tests."
type: "array"
items:
$ref: "#/definitions/Requirements"
entrypoint:
oneOf:
- description: "Override the entrypoint of the base container. Default set\
\ `ENTRYPOINT []`."
type: "string"
- description: "Override the entrypoint of the base container. Default set\
\ `ENTRYPOINT []`."
type: "array"
items:
type: "string"
setup_strategy:
description: "The Docker setup strategy to use when building a container.\n\
\n| Strategy | Description |\n|-----|----------|\n| `alwaysbuild` / `build`\
\ / `b` | Always build the image from the dockerfile. This is the default\
\ setup strategy.\n| `alwayscachedbuild` / `cachedbuild` / `cb` | Always\
\ build the image from the dockerfile, with caching enabled.\n| `ifneedbebuild`\
\ | Build the image if it does not exist locally.\n| `ifneedbecachedbuild`\
\ | Build the image with caching enabled if it does not exist locally, with\
\ caching enabled.\n| `alwayspull` / `pull` / `p` | Try to pull the container\
\ from [Docker Hub](https://hub.docker.com) or the specified docker registry.\n\
| `alwayspullelsebuild` / `pullelsebuild` | Try to pull the image from\
\ a registry and build it if it does not exist.\n| `alwayspullelsecachedbuild`\
\ / `pullelsecachedbuild` | Try to pull the image from a registry and build\
\ it with caching if it does not exist.\n| `ifneedbepull` | If the image\
\ does not exist locally, pull the image.\n| `ifneedbepullelsebuild` | \
\ Do nothing if the image exists locally. Else, try to pull the image from\
\ a registry. Otherwise build the image from scratch.\n| `ifneedbepullelsecachedbuild`\
\ | Do nothing if the image exists locally. Else, try to pull the image\
\ from a registry. Otherwise build the image with caching enabled.\n| `push`\
\ | Push the container to [Docker Hub](https://hub.docker.com) or the specified\
\ docker registry.\n| `pushifnotpresent` | Push the container to [Docker\
\ Hub](https://hub.docker.com) or the specified docker registry if the tag\
\ does not exist yet.\n| `donothing` / `meh` | Do not build or pull anything.\n\
\n"
$ref: "#/definitions/DockerSetupStrategy"
type:
description: "Run a Viash component on a Docker backend platform.\nBy specifying\
\ which dependencies your component needs, users will be able to build a\
\ docker container from scratch using the setup flag, or pull it from a\
\ docker repository.\n"
const: "docker"
target_organization:
description: "The organization set in the resulting image. Advanced usage\
\ only."
type: "string"
required:
- "image"
- "type"
additionalProperties: false
NextflowPlatform:
description: "Platform for generating Nextflow VDSL3 modules."
type: "object"
properties:
auto:
description: "Automated processing flags which can be toggled on or off:\n\
\n| Flag | Description | Default |\n|---|---------|----|\n| `simplifyInput`\
\ | If `true`, an input tuple only containing only a single File (e.g. `[\"\
foo\", file(\"in.h5ad\")]`) is automatically transformed to a map (i.e.\
\ `[\"foo\", [ input: file(\"in.h5ad\") ] ]`). | `true` |\n| `simplifyOutput`\
\ | If `true`, an output tuple containing a map with a File (e.g. `[\"foo\"\
, [ output: file(\"out.h5ad\") ] ]`) is automatically transformed to a map\
\ (i.e. `[\"foo\", file(\"out.h5ad\")]`). | `false` |\n| `transcript` |\
\ If `true`, the module's transcripts from `work/` are automatically published\
\ to `params.transcriptDir`. If not defined, `params.publishDir + \"/_transcripts\"\
` will be used. Will throw an error if neither are defined. | `false` |\n\
| `publish` | If `true`, the module's outputs are automatically published\
\ to `params.publishDir`. If equal to \"state\", also a `.state.yaml` file\
\ will be published in the publish dir. Will throw an error if `params.publishDir`\
\ is not defined. | `false` |\n\n"
$ref: "#/definitions/NextflowAuto"
directives:
description: "Directives are optional settings that affect the execution of\
\ the process. These mostly match up with the Nextflow counterparts. \n"
$ref: "#/definitions/NextflowDirectives"
container:
description: "Specifies the Docker platform id to be used to run Nextflow."
type: "string"
config:
description: "Allows tweaking how the Nextflow Config file is generated."
$ref: "#/definitions/NextflowConfig"
debug:
description: "Whether or not to print debug messages."
type: "boolean"
id:
description: "Every platform can be given a specific id that can later be\
\ referred to explicitly when running or building the Viash component."
type: "string"
type:
description: "Platform for generating Nextflow VDSL3 modules."
const: "nextflow"
required:
- "type"
additionalProperties: false
Requirements:
oneOf:
- $ref: "#/definitions/ApkRequirements"
- $ref: "#/definitions/AptRequirements"
- $ref: "#/definitions/DockerRequirements"
- $ref: "#/definitions/JavaScriptRequirements"
- $ref: "#/definitions/PythonRequirements"
- $ref: "#/definitions/RRequirements"
- $ref: "#/definitions/RubyRequirements"
- $ref: "#/definitions/YumRequirements"
ApkRequirements:
description: "Specify which apk packages should be available in order to run the\
\ component."
type: "object"
properties:
type:
description: "Specify which apk packages should be available in order to run\
\ the component."
const: "apk"
packages:
oneOf:
- description: "Specifies which packages to install."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install."
type: "string"
required:
- "type"
additionalProperties: false
AptRequirements:
description: "Specify which apt packages should be available in order to run the\
\ component."
type: "object"
properties:
interactive:
description: "If `false`, the Debian frontend is set to non-interactive (recommended).\
\ Default: false."
type: "boolean"
type:
description: "Specify which apt packages should be available in order to run\
\ the component."
const: "apt"
packages:
oneOf:
- description: "Specifies which packages to install."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install."
type: "string"
required:
- "type"
additionalProperties: false
DockerRequirements:
description: "Specify which Docker commands should be run during setup."
type: "object"
properties:
run:
oneOf:
- description: "Specifies which `RUN` entries to add to the Dockerfile while\
\ building it."
type: "string"
- type: "array"
items:
description: "Specifies which `RUN` entries to add to the Dockerfile while\
\ building it."
type: "string"
label:
oneOf:
- description: "Specifies which `LABEL` entries to add to the Dockerfile while\
\ building it."
type: "string"
- type: "array"
items:
description: "Specifies which `LABEL` entries to add to the Dockerfile\
\ while building it."
type: "string"
build_args:
oneOf:
- description: "Specifies which `ARG` entries to add to the Dockerfile while\
\ building it."
type: "string"
- type: "array"
items:
description: "Specifies which `ARG` entries to add to the Dockerfile while\
\ building it."
type: "string"
copy:
oneOf:
- description: "Specifies which `COPY` entries to add to the Dockerfile while\
\ building it."
type: "string"
- type: "array"
items:
description: "Specifies which `COPY` entries to add to the Dockerfile\
\ while building it."
type: "string"
type:
description: "Specify which Docker commands should be run during setup."
const: "docker"
add:
oneOf:
- description: "Specifies which `ADD` entries to add to the Dockerfile while\
\ building it."
type: "string"
- type: "array"
items:
description: "Specifies which `ADD` entries to add to the Dockerfile while\
\ building it."
type: "string"
env:
oneOf:
- description: "Specifies which `ENV` entries to add to the Dockerfile while\
\ building it. Unlike `ARG`, `ENV` entries are also accessible from inside\
\ the container."
type: "string"
- type: "array"
items:
description: "Specifies which `ENV` entries to add to the Dockerfile while\
\ building it. Unlike `ARG`, `ENV` entries are also accessible from\
\ inside the container."
type: "string"
required:
- "type"
additionalProperties: false
JavaScriptRequirements:
description: "Specify which JavaScript packages should be available in order to\
\ run the component."
type: "object"
properties:
github:
oneOf:
- description: "Specifies which packages to install from GitHub."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from GitHub."
type: "string"
url:
oneOf:
- description: "Specifies which packages to install using a generic URI."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install using a generic URI."
type: "string"
git:
oneOf:
- description: "Specifies which packages to install using a Git URI."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install using a Git URI."
type: "string"
npm:
oneOf:
- description: "Specifies which packages to install from npm."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from npm."
type: "string"
type:
description: "Specify which JavaScript packages should be available in order\
\ to run the component."
const: "javascript"
packages:
oneOf:
- description: "Specifies which packages to install from npm."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from npm."
type: "string"
required:
- "type"
additionalProperties: false
PythonRequirements:
description: "Specify which Python packages should be available in order to run\
\ the component."
type: "object"
properties:
github:
oneOf:
- description: "Specifies which packages to install from GitHub."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from GitHub."
type: "string"
gitlab:
oneOf:
- description: "Specifies which packages to install from GitLab."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from GitLab."
type: "string"
pip:
oneOf:
- description: "Specifies which packages to install from pip."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from pip."
type: "string"
pypi:
oneOf:
- description: "Specifies which packages to install from PyPI using pip."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from PyPI using pip."
type: "string"
git:
oneOf:
- description: "Specifies which packages to install using a Git URI."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install using a Git URI."
type: "string"
upgrade:
description: "Sets the `--upgrade` flag when set to true. Default: true."
type: "boolean"
packages:
oneOf:
- description: "Specifies which packages to install from pip."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from pip."
type: "string"
url:
oneOf:
- description: "Specifies which packages to install using a generic URI."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install using a generic URI."
type: "string"
svn:
oneOf:
- description: "Specifies which packages to install using an SVN URI."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install using an SVN URI."
type: "string"
bazaar:
oneOf:
- description: "Specifies which packages to install using a Bazaar URI."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install using a Bazaar URI."
type: "string"
script:
oneOf:
- description: "Specifies a code block to run as part of the build."
type: "string"
- type: "array"
items:
description: "Specifies a code block to run as part of the build."
type: "string"
type:
description: "Specify which Python packages should be available in order to\
\ run the component."
const: "python"
mercurial:
oneOf:
- description: "Specifies which packages to install using a Mercurial URI."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install using a Mercurial URI."
type: "string"
user:
description: "Sets the `--user` flag when set to true. Default: false."
type: "boolean"
required:
- "type"
additionalProperties: false
RRequirements:
description: "Specify which R packages should be available in order to run the\
\ component."
type: "object"
properties:
bioc:
oneOf:
- description: "Specifies which packages to install from BioConductor."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from BioConductor."
type: "string"
github:
oneOf:
- description: "Specifies which packages to install from GitHub."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from GitHub."
type: "string"
gitlab:
oneOf:
- description: "Specifies which packages to install from GitLab."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from GitLab."
type: "string"
url:
oneOf:
- description: "Specifies which packages to install using a generic URI."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install using a generic URI."
type: "string"
bioc_force_install:
description: "Forces packages specified in `bioc` to be reinstalled, even\
\ if they are already present in the container. Default: false."
type: "boolean"
git:
oneOf:
- description: "Specifies which packages to install using a Git URI."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install using a Git URI."
type: "string"
cran:
oneOf:
- description: "Specifies which packages to install from CRAN."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from CRAN."
type: "string"
bitbucket:
oneOf:
- description: "Specifies which packages to install from Bitbucket."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from Bitbucket."
type: "string"
svn:
oneOf:
- description: "Specifies which packages to install using an SVN URI."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install using an SVN URI."
type: "string"
packages:
oneOf:
- description: "Specifies which packages to install from CRAN."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install from CRAN."
type: "string"
script:
oneOf:
- description: "Specifies a code block to run as part of the build."
type: "string"
- type: "array"
items:
description: "Specifies a code block to run as part of the build."
type: "string"
type:
description: "Specify which R packages should be available in order to run\
\ the component."
const: "r"
required:
- "type"
additionalProperties: false
RubyRequirements:
description: "Specify which Ruby packages should be available in order to run\
\ the component."
type: "object"
properties:
type:
description: "Specify which Ruby packages should be available in order to\
\ run the component."
const: "ruby"
packages:
oneOf:
- description: "Specifies which packages to install."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install."
type: "string"
required:
- "type"
additionalProperties: false
YumRequirements:
description: "Specify which yum packages should be available in order to run the\
\ component."
type: "object"
properties:
type:
description: "Specify which yum packages should be available in order to run\
\ the component."
const: "yum"
packages:
oneOf:
- description: "Specifies which packages to install."
type: "string"
- type: "array"
items:
description: "Specifies which packages to install."
type: "string"
required:
- "type"
additionalProperties: false
Argument:
oneOf:
- $ref: "#/definitions/BooleanArgument"
- $ref: "#/definitions/BooleanTrueArgument"
- $ref: "#/definitions/BooleanFalseArgument"
- $ref: "#/definitions/DoubleArgument"
- $ref: "#/definitions/FileArgument"
- $ref: "#/definitions/IntegerArgument"
- $ref: "#/definitions/LongArgument"
- $ref: "#/definitions/StringArgument"
BooleanArgument:
description: "A `boolean` type argument has two possible values: `true` or `false`."
type: "object"
properties:
alternatives:
oneOf:
- description: "List of alternative format variations for this argument."
type: "string"
- type: "array"
items:
description: "List of alternative format variations for this argument."
type: "string"
name:
description: "The name of the argument. Can be in the formats `--trim`, `-t`\
\ or `trim`. The number of dashes determines how values can be passed: \
\ \n\n - `--trim` is a long option, which can be passed with `executable_name\
\ --trim`\n - `-t` is a short option, which can be passed with `executable_name\
\ -t`\n - `trim` is an argument, which can be passed with `executable_name\
\ trim` \n"
type: "string"
label:
description: "A clean version of the argument's name. This is only used for\
\ documentation."
type: "string"
direction:
$ref: "#/definitions/Direction"
info:
description: "Structured information. Can be any shape: a string, vector,\
\ map or even nested map."
type: "object"
default:
oneOf:
- description: "The default value when no argument value is provided. This\
\ will not work if the [`required`](#required) property is enabled."
type: "boolean"
- type: "array"
items:
description: "The default value when no argument value is provided. This\
\ will not work if the [`required`](#required) property is enabled."
type: "boolean"
example:
oneOf:
- description: "An example value for this argument. If no [`default`](#default)\
\ property was specified, this will be used for that purpose."
type: "boolean"
- type: "array"
items:
description: "An example value for this argument. If no [`default`](#default)\
\ property was specified, this will be used for that purpose."
type: "boolean"
summary:
description: "A one-sentence summary of the argument. This is only used for\
\ documentation."
type: "string"
description:
description: "A description of the argument. This is only used for documentation.\
\ Multiline descriptions are supported."
type: "string"
multiple_sep:
description: "The delimiter character for providing [`multiple`](#multiple)\
\ values. `:` by default."
type: "string"
multiple:
description: "Treat the argument value as an array. Arrays can be passed using\
\ the delimiter `--foo=1:2:3` or by providing the same argument multiple\
\ times `--foo 1 --foo 2`. You can use a custom delimiter by using the [`multiple_sep`](#multiple_sep)\
\ property. `false` by default."
type: "boolean"
type:
description: "A `boolean` type argument has two possible values: `true` or\
\ `false`."
const: "boolean"
required:
description: "Make the value for this argument required. If set to `true`,\
\ an error will be produced if no value was provided. `false` by default."
type: "boolean"
required:
- "name"
- "type"
additionalProperties: false
BooleanTrueArgument:
description: "An argument of the `boolean_true` type acts like a `boolean` flag\
\ with a default value of `false`. When called as an argument it sets the `boolean`\
\ to `true`."
type: "object"
properties:
alternatives:
oneOf:
- description: "List of alternative format variations for this argument."
type: "string"
- type: "array"
items:
description: "List of alternative format variations for this argument."
type: "string"
name:
description: "The name of the argument. Can be in the formats `--silent`,\
\ `-s` or `silent`. The number of dashes determines how values can be passed:\
\ \n\n - `--silent` is a long option, which can be passed with `executable_name\
\ --silent`\n - `-s` is a short option, which can be passed with `executable_name\
\ -s`\n - `silent` is an argument, which can be passed with `executable_name\
\ silent` \n"
type: "string"
label:
description: "A clean version of the argument's name. This is only used for\
\ documentation."
type: "string"
direction:
$ref: "#/definitions/Direction"
info:
description: "Structured information. Can be any shape: a string, vector,\
\ map or even nested map."
type: "object"
summary:
description: "A one-sentence summary of the argument. This is only used for\
\ documentation."
type: "string"
description:
description: "A description of the argument. This is only used for documentation.\
\ Multiline descriptions are supported."
type: "string"
type:
description: "An argument of the `boolean_true` type acts like a `boolean`\
\ flag with a default value of `false`. When called as an argument it sets\
\ the `boolean` to `true`."
const: "boolean_true"
required:
- "name"
- "type"
additionalProperties: false
BooleanFalseArgument:
description: "An argument of the `boolean_false` type acts like an inverted `boolean`\
\ flag with a default value of `true`. When called as an argument it sets the\
\ `boolean` to `false`."
type: "object"
properties:
alternatives:
oneOf:
- description: "List of alternative format variations for this argument."
type: "string"
- type: "array"
items:
description: "List of alternative format variations for this argument."
type: "string"
name:
description: "The name of the argument. Can be in the formats `--no-log`,\
\ `-n` or `no-log`. The number of dashes determines how values can be passed:\
\ \n\n - `--no-log` is a long option, which can be passed with `executable_name\
\ --no-log`\n - `-n` is a short option, which can be passed with `executable_name\
\ -n`\n - `no-log` is an argument, which can be passed with `executable_name\
\ no-log` \n"
type: "string"
label:
description: "A clean version of the argument's name. This is only used for\
\ documentation."
type: "string"
direction:
$ref: "#/definitions/Direction"
info:
description: "Structured information. Can be any shape: a string, vector,\
\ map or even nested map."
type: "object"
summary:
description: "A one-sentence summary of the argument. This is only used for\
\ documentation."
type: "string"
description:
description: "A description of the argument. This is only used for documentation.\
\ Multiline descriptions are supported."
type: "string"
type:
description: "An argument of the `boolean_false` type acts like an inverted\
\ `boolean` flag with a default value of `true`. When called as an argument\
\ it sets the `boolean` to `false`."
const: "boolean_false"
required:
- "name"
- "type"
additionalProperties: false
DoubleArgument:
description: "A `double` type argument has a numeric value with decimal points"
type: "object"
properties:
alternatives:
oneOf:
- description: "List of alternative format variations for this argument."
type: "string"
- type: "array"
items:
description: "List of alternative format variations for this argument."
type: "string"
name:
description: "The name of the argument. Can be in the formats `--foo`, `-f`\
\ or `foo`. The number of dashes determines how values can be passed: \n\
\n - `--foo` is a long option, which can be passed with `executable_name\
\ --foo=value` or `executable_name --foo value`\n - `-f` is a short option,\
\ which can be passed with `executable_name -f value`\n - `foo` is an argument,\
\ which can be passed with `executable_name value` \n"
type: "string"
label:
description: "A clean version of the argument's name. This is only used for\
\ documentation."
type: "string"
info:
description: "Structured information. Can be any shape: a string, vector,\
\ map or even nested map."
type: "object"
max:
description: "Maximum allowed value for this argument. If set and the provided\
\ value is higher than the maximum, an error will be produced. Can be combined\
\ with [`min`](#min) to clamp values."
$ref: "#/definitions/DoubleWithInf"
default:
oneOf:
- description: "The default value when no argument value is provided. This\
\ will not work if the [`required`](#required) property is enabled."
$ref: "#/definitions/DoubleWithInf"
- type: "array"
items:
description: "The default value when no argument value is provided. This\
\ will not work if the [`required`](#required) property is enabled."
$ref: "#/definitions/DoubleWithInf"
example:
oneOf:
- description: "An example value for this argument. If no [`default`](#default)\
\ property was specified, this will be used for that purpose."
$ref: "#/definitions/DoubleWithInf"
- type: "array"
items:
description: "An example value for this argument. If no [`default`](#default)\
\ property was specified, this will be used for that purpose."
$ref: "#/definitions/DoubleWithInf"
summary:
description: "A one-sentence summary of the argument. This is only used for\
\ documentation."
type: "string"
description:
description: "A description of the argument. This is only used for documentation.\
\ Multiline descriptions are supported."
type: "string"
multiple_sep:
description: "The delimiter character for providing [`multiple`](#multiple)\
\ values. `:` by default."
type: "string"
min:
description: "Minimum allowed value for this argument. If set and the provided\
\ value is lower than the minimum, an error will be produced. Can be combined\
\ with [`max`](#max) to clamp values."
$ref: "#/definitions/DoubleWithInf"
direction:
$ref: "#/definitions/Direction"
multiple:
description: "Treat the argument value as an array. Arrays can be passed using\
\ the delimiter `--foo=1:2:3` or by providing the same argument multiple\
\ times `--foo 1 --foo 2`. You can use a custom delimiter by using the [`multiple_sep`](#multiple_sep)\
\ property. `false` by default."
type: "boolean"
type:
description: "A `double` type argument has a numeric value with decimal points"
const: "double"
required:
description: "Make the value for this argument required. If set to `true`,\
\ an error will be produced if no value was provided. `false` by default."
type: "boolean"
required:
- "name"
- "type"
additionalProperties: false
FileArgument:
description: "A `file` type argument has a string value that points to a file\
\ or folder path."
type: "object"
properties:
alternatives:
oneOf:
- description: "List of alternative format variations for this argument."
type: "string"
- type: "array"
items:
description: "List of alternative format variations for this argument."
type: "string"
name:
description: "The name of the argument. Can be in the formats `--foo`, `-f`\
\ or `foo`. The number of dashes determines how values can be passed: \n\
\n - `--foo` is a long option, which can be passed with `executable_name\
\ --foo=value` or `executable_name --foo value`\n - `-f` is a short option,\
\ which can be passed with `executable_name -f value`\n - `foo` is an argument,\
\ which can be passed with `executable_name value` \n"
type: "string"
create_parent:
description: "If the output filename is a path and it does not exist, create\
\ it before executing the script (only for `direction: output`)."
type: "boolean"
label:
description: "A clean version of the argument's name. This is only used for\
\ documentation."
type: "string"
direction:
description: "Makes this argument an `input` or an `output`, as in does the\
\ file/folder needs to be read or written. `input` by default."
$ref: "#/definitions/Direction"
info:
description: "Structured information. Can be any shape: a string, vector,\
\ map or even nested map."
type: "object"
must_exist:
description: "Checks whether the file or folder exists. For input files, this\
\ check will happen before the execution of the script, while for output\
\ files the check will happen afterwards."
type: "boolean"
default:
oneOf:
- description: "The default value when no argument value is provided. This\
\ will not work if the [`required`](#required) property is enabled."
type: "string"
- type: "array"
items:
description: "The default value when no argument value is provided. This\
\ will not work if the [`required`](#required) property is enabled."
type: "string"
example:
oneOf:
- description: "An example value for this argument. If no [`default`](#default)\
\ property was specified, this will be used for that purpose."
type: "string"
- type: "array"
items:
description: "An example value for this argument. If no [`default`](#default)\
\ property was specified, this will be used for that purpose."
type: "string"
summary:
description: "A one-sentence summary of the argument. This is only used for\
\ documentation."
type: "string"
description:
description: "A description of the argument. This is only used for documentation.\
\ Multiline descriptions are supported."
type: "string"
multiple_sep:
description: "The delimiter character for providing [`multiple`](#multiple)\
\ values. `:` by default."
type: "string"
multiple:
description: "Allow for multiple values (`false` by default).\n\nFor input\
\ arguments, this will be treated as a list of values. For example, values\n\
can be passed using the delimiter `--foo=1:2:3` or by providing the same\
\ argument \nmultiple times `--foo 1 --foo 2`. You can use a custom delimiter\
\ by using the \n[`multiple_sep`](#multiple_sep) property.\n\nFor output\
\ file arguments, the passed value needs to contain a wildcard. For example,\n\
`--foo 'foo_*.txt'` will be treated as a list of files that match the pattern.\
\ Note that in Bash,\n the wildcard will need to be in quotes (\"foo_*.txt\"\
\ or `'foo_*.txt'`) or else Bash will\n automatically attempt to expand\
\ the expression.\n\nOther output arguments (e.g. integer, double, ...)\
\ are not supported yet.\n"
type: "boolean"
type:
description: "A `file` type argument has a string value that points to a file\
\ or folder path."
const: "file"
required:
description: "Make the value for this argument required. If set to `true`,\
\ an error will be produced if no value was provided. `false` by default."
type: "boolean"
required:
- "name"
- "type"
additionalProperties: false
IntegerArgument:
description: "An `integer` type argument has a numeric value without decimal points."
type: "object"
properties:
alternatives:
oneOf:
- description: "List of alternative format variations for this argument."
type: "string"
- type: "array"
items:
description: "List of alternative format variations for this argument."
type: "string"
name:
description: "The name of the argument. Can be in the formats `--foo`, `-f`\
\ or `foo`. The number of dashes determines how values can be passed: \n\
\n - `--foo` is a long option, which can be passed with `executable_name\
\ --foo=value` or `executable_name --foo value`\n - `-f` is a short option,\
\ which can be passed with `executable_name -f value`\n - `foo` is an argument,\
\ which can be passed with `executable_name value` \n"
type: "string"
choices:
description: "Limit the amount of valid values for this argument to those\
\ set in this list. When set and a value not present in the list is provided,\
\ an error will be produced."
type: "array"
items:
type: "integer"
label:
description: "A clean version of the argument's name. This is only used for\
\ documentation."
type: "string"
info:
description: "Structured information. Can be any shape: a string, vector,\
\ map or even nested map."
type: "object"
max:
description: "Maximum allowed value for this argument. If set and the provided\
\ value is higher than the maximum, an error will be produced. Can be combined\
\ with [`min`](#min) to clamp values."
type: "integer"
default:
oneOf:
- description: "The default value when no argument value is provided. This\
\ will not work if the [`required`](#required) property is enabled."
type: "integer"
- type: "array"
items:
description: "The default value when no argument value is provided. This\
\ will not work if the [`required`](#required) property is enabled."
type: "integer"
example:
oneOf:
- description: "An example value for this argument. If no [`default`](#default)\
\ property was specified, this will be used for that purpose."
type: "integer"
- type: "array"
items:
description: "An example value for this argument. If no [`default`](#default)\
\ property was specified, this will be used for that purpose."
type: "integer"
summary:
description: "A one-sentence summary of the argument. This is only used for\
\ documentation."
type: "string"
description:
description: "A description of the argument. This is only used for documentation.\
\ Multiline descriptions are supported."
type: "string"
multiple_sep:
description: "The delimiter character for providing [`multiple`](#multiple)\
\ values. `:` by default."
type: "string"
min:
description: "Minimum allowed value for this argument. If set and the provided\
\ value is lower than the minimum, an error will be produced. Can be combined\
\ with [`max`](#max) to clamp values."
type: "integer"
direction:
$ref: "#/definitions/Direction"
multiple:
description: "Treat the argument value as an array. Arrays can be passed using\
\ the delimiter `--foo=1:2:3` or by providing the same argument multiple\
\ times `--foo 1 --foo 2`. You can use a custom delimiter by using the [`multiple_sep`](#multiple_sep)\
\ property. `false` by default."
type: "boolean"
type:
description: "An `integer` type argument has a numeric value without decimal\
\ points."
const: "integer"
required:
description: "Make the value for this argument required. If set to `true`,\
\ an error will be produced if no value was provided. `false` by default."
type: "boolean"
required:
- "name"
- "type"
additionalProperties: false
LongArgument:
description: "An `long` type argument has a numeric value without decimal points."
type: "object"
properties:
alternatives:
oneOf:
- description: "List of alternative format variations for this argument."
type: "string"
- type: "array"
items:
description: "List of alternative format variations for this argument."
type: "string"
name:
description: "The name of the argument. Can be in the formats `--foo`, `-f`\
\ or `foo`. The number of dashes determines how values can be passed: \n\
\n - `--foo` is a long option, which can be passed with `executable_name\
\ --foo=value` or `executable_name --foo value`\n - `-f` is a short option,\
\ which can be passed with `executable_name -f value`\n - `foo` is an argument,\
\ which can be passed with `executable_name value` \n"
type: "string"
choices:
description: "Limit the amount of valid values for this argument to those\
\ set in this list. When set and a value not present in the list is provided,\
\ an error will be produced."
type: "array"
items:
type: "integer"
label:
description: "A clean version of the argument's name. This is only used for\
\ documentation."
type: "string"
info:
description: "Structured information. Can be any shape: a string, vector,\
\ map or even nested map."
type: "object"
max:
description: "Maximum allowed value for this argument. If set and the provided\
\ value is higher than the maximum, an error will be produced. Can be combined\
\ with [`min`](#min) to clamp values."
type: "integer"
default:
oneOf:
- description: "The default value when no argument value is provided. This\
\ will not work if the [`required`](#required) property is enabled."
type: "integer"
- type: "array"
items:
description: "The default value when no argument value is provided. This\
\ will not work if the [`required`](#required) property is enabled."
type: "integer"
example:
oneOf:
- description: "An example value for this argument. If no [`default`](#default)\
\ property was specified, this will be used for that purpose."
type: "integer"
- type: "array"
items:
description: "An example value for this argument. If no [`default`](#default)\
\ property was specified, this will be used for that purpose."
type: "integer"
summary:
description: "A one-sentence summary of the argument. This is only used for\
\ documentation."
type: "string"
description:
description: "A description of the argument. This is only used for documentation.\
\ Multiline descriptions are supported."
type: "string"
multiple_sep:
description: "The delimiter character for providing [`multiple`](#multiple)\
\ values. `:` by default."
type: "string"
min:
description: "Minimum allowed value for this argument. If set and the provided\
\ value is lower than the minimum, an error will be produced. Can be combined\
\ with [`max`](#max) to clamp values."
type: "integer"
direction:
$ref: "#/definitions/Direction"
multiple:
description: "Treat the argument value as an array. Arrays can be passed using\
\ the delimiter `--foo=1:2:3` or by providing the same argument multiple\
\ times `--foo 1 --foo 2`. You can use a custom delimiter by using the [`multiple_sep`](#multiple_sep)\
\ property. `false` by default."
type: "boolean"
type:
description: "An `long` type argument has a numeric value without decimal\
\ points."
const: "long"
required:
description: "Make the value for this argument required. If set to `true`,\
\ an error will be produced if no value was provided. `false` by default."
type: "boolean"
required:
- "name"
- "type"
additionalProperties: false
StringArgument:
description: "A `string` type argument has a value made up of an ordered sequences\
\ of characters, like \"Hello\" or \"I'm a string\"."
type: "object"
properties:
alternatives:
oneOf:
- description: "List of alternative format variations for this argument."
type: "string"
- type: "array"
items:
description: "List of alternative format variations for this argument."
type: "string"
name:
description: "The name of the argument. Can be in the formats `--foo`, `-f`\
\ or `foo`. The number of dashes determines how values can be passed: \n\
\n - `--foo` is a long option, which can be passed with `executable_name\
\ --foo=value` or `executable_name --foo value`\n - `-f` is a short option,\
\ which can be passed with `executable_name -f value`\n - `foo` is an argument,\
\ which can be passed with `executable_name value` \n"
type: "string"
choices:
description: "Limit the amount of valid values for this argument to those\
\ set in this list. When set and a value not present in the list is provided,\
\ an error will be produced."
type: "array"
items:
type: "string"
label:
description: "A clean version of the argument's name. This is only used for\
\ documentation."
type: "string"
direction:
$ref: "#/definitions/Direction"
info:
description: "Structured information. Can be any shape: a string, vector,\
\ map or even nested map."
type: "object"
default:
oneOf:
- description: "The default value when no argument value is provided. This\
\ will not work if the [`required`](#required) property is enabled."
type: "string"
- type: "array"
items:
description: "The default value when no argument value is provided. This\
\ will not work if the [`required`](#required) property is enabled."
type: "string"
example:
oneOf:
- description: "An example value for this argument. If no [`default`](#default)\
\ property was specified, this will be used for that purpose."
type: "string"
- type: "array"
items:
description: "An example value for this argument. If no [`default`](#default)\
\ property was specified, this will be used for that purpose."
type: "string"
summary:
description: "A one-sentence summary of the argument. This is only used for\
\ documentation."
type: "string"
description:
description: "A description of the argument. This is only used for documentation.\
\ Multiline descriptions are supported."
type: "string"
multiple_sep:
description: "The delimiter character for providing [`multiple`](#multiple)\
\ values. `:` by default."
type: "string"
multiple:
description: "Treat the argument value as an array. Arrays can be passed using\
\ the delimiter `--foo=1:2:3` or by providing the same argument multiple\
\ times `--foo 1 --foo 2`. You can use a custom delimiter by using the [`multiple_sep`](#multiple_sep)\
\ property. `false` by default."
type: "boolean"
type:
description: "A `string` type argument has a value made up of an ordered sequences\
\ of characters, like \"Hello\" or \"I'm a string\"."
const: "string"
required:
description: "Make the value for this argument required. If set to `true`,\
\ an error will be produced if no value was provided. `false` by default."
type: "boolean"
required:
- "name"
- "type"
additionalProperties: false
Resource:
oneOf:
- $ref: "#/definitions/BashScript"
- $ref: "#/definitions/CSharpScript"
- $ref: "#/definitions/Executable"
- $ref: "#/definitions/JavaScriptScript"
- $ref: "#/definitions/NextflowScript"
- $ref: "#/definitions/PlainFile"
- $ref: "#/definitions/PythonScript"
- $ref: "#/definitions/RScript"
- $ref: "#/definitions/ScalaScript"
BashScript:
description: "An executable Bash script.\nWhen defined in resources, only the\
\ first entry will be executed when running the built component or when running\
\ `viash run`.\nWhen defined in test_resources, all entries will be executed\
\ during `viash test`."
type: "object"
properties:
path:
description: "The path of the input file. Can be a relative or an absolute\
\ path, or a URI. Mutually exclusive with `text`."
type: "string"
text:
description: "The content of the resulting file specified as a string. Mutually\
\ exclusive with `path`."
type: "string"
is_executable:
description: "Whether the resulting resource file should be made executable."
type: "boolean"
type:
description: "An executable Bash script.\nWhen defined in resources, only\
\ the first entry will be executed when running the built component or when\
\ running `viash run`.\nWhen defined in test_resources, all entries will\
\ be executed during `viash test`."
const: "bash_script"
dest:
description: "Resulting filename of the resource. From within a script, the\
\ file can be accessed at `meta[\"resources_dir\"] + \"/\" + dest`. If unspecified,\
\ `dest` will be set to the basename of the `path` parameter."
type: "string"
required:
- "type"
additionalProperties: false
CSharpScript:
description: "An executable C# script.\nWhen defined in resources, only the first\
\ entry will be executed when running the built component or when running `viash\
\ run`.\nWhen defined in test_resources, all entries will be executed during\
\ `viash test`."
type: "object"
properties:
path:
description: "The path of the input file. Can be a relative or an absolute\
\ path, or a URI. Mutually exclusive with `text`."
type: "string"
text:
description: "The content of the resulting file specified as a string. Mutually\
\ exclusive with `path`."
type: "string"
is_executable:
description: "Whether the resulting resource file should be made executable."
type: "boolean"
type:
description: "An executable C# script.\nWhen defined in resources, only the\
\ first entry will be executed when running the built component or when\
\ running `viash run`.\nWhen defined in test_resources, all entries will\
\ be executed during `viash test`."
const: "csharp_script"
dest:
description: "Resulting filename of the resource. From within a script, the\
\ file can be accessed at `meta[\"resources_dir\"] + \"/\" + dest`. If unspecified,\
\ `dest` will be set to the basename of the `path` parameter."
type: "string"
required:
- "type"
additionalProperties: false
Executable:
description: "An executable file."
type: "object"
properties:
path:
description: "The path of the input file. Can be a relative or an absolute\
\ path, or a URI. Mutually exclusive with `text`."
type: "string"
text:
description: "The content of the resulting file specified as a string. Mutually\
\ exclusive with `path`."
type: "string"
is_executable:
description: "Whether the resulting resource file should be made executable."
type: "boolean"
type:
description: "An executable file."
const: "executable"
dest:
description: "Resulting filename of the resource. From within a script, the\
\ file can be accessed at `meta[\"resources_dir\"] + \"/\" + dest`. If unspecified,\
\ `dest` will be set to the basename of the `path` parameter."
type: "string"
required:
- "type"
additionalProperties: false
JavaScriptScript:
description: "An executable JavaScript script.\nWhen defined in resources, only\
\ the first entry will be executed when running the built component or when\
\ running `viash run`.\nWhen defined in test_resources, all entries will be\
\ executed during `viash test`."
type: "object"
properties:
path:
description: "The path of the input file. Can be a relative or an absolute\
\ path, or a URI. Mutually exclusive with `text`."
type: "string"
text:
description: "The content of the resulting file specified as a string. Mutually\
\ exclusive with `path`."
type: "string"
is_executable:
description: "Whether the resulting resource file should be made executable."
type: "boolean"
type:
description: "An executable JavaScript script.\nWhen defined in resources,\
\ only the first entry will be executed when running the built component\
\ or when running `viash run`.\nWhen defined in test_resources, all entries\
\ will be executed during `viash test`."
const: "javascript_script"
dest:
description: "Resulting filename of the resource. From within a script, the\
\ file can be accessed at `meta[\"resources_dir\"] + \"/\" + dest`. If unspecified,\
\ `dest` will be set to the basename of the `path` parameter."
type: "string"
required:
- "type"
additionalProperties: false
NextflowScript:
description: "A Nextflow script. Work in progress; added mainly for annotation\
\ at the moment."
type: "object"
properties:
path:
description: "The path of the input file. Can be a relative or an absolute\
\ path, or a URI. Mutually exclusive with `text`."
type: "string"
text:
description: "The content of the resulting file specified as a string. Mutually\
\ exclusive with `path`."
type: "string"
entrypoint:
description: "The name of the workflow to be wrapped."
type: "string"
is_executable:
description: "Whether the resulting resource file should be made executable."
type: "boolean"
type:
description: "A Nextflow script. Work in progress; added mainly for annotation\
\ at the moment."
const: "nextflow_script"
dest:
description: "Resulting filename of the resource. From within a script, the\
\ file can be accessed at `meta[\"resources_dir\"] + \"/\" + dest`. If unspecified,\
\ `dest` will be set to the basename of the `path` parameter."
type: "string"
required:
- "entrypoint"
- "type"
additionalProperties: false
PlainFile:
description: "A plain file. This can only be used as a supporting resource for\
\ the main script or unit tests."
type: "object"
properties:
path:
description: "The path of the input file. Can be a relative or an absolute\
\ path, or a URI. Mutually exclusive with `text`."
type: "string"
text:
description: "The content of the resulting file specified as a string. Mutually\
\ exclusive with `path`."
type: "string"
is_executable:
description: "Whether the resulting resource file should be made executable."
type: "boolean"
type:
description: "A plain file. This can only be used as a supporting resource\
\ for the main script or unit tests."
const: "file"
dest:
description: "Resulting filename of the resource. From within a script, the\
\ file can be accessed at `meta[\"resources_dir\"] + \"/\" + dest`. If unspecified,\
\ `dest` will be set to the basename of the `path` parameter."
type: "string"
required: []
additionalProperties: false
PythonScript:
description: "An executable Python script.\nWhen defined in resources, only the\
\ first entry will be executed when running the built component or when running\
\ `viash run`.\nWhen defined in test_resources, all entries will be executed\
\ during `viash test`."
type: "object"
properties:
path:
description: "The path of the input file. Can be a relative or an absolute\
\ path, or a URI. Mutually exclusive with `text`."
type: "string"
text:
description: "The content of the resulting file specified as a string. Mutually\
\ exclusive with `path`."
type: "string"
is_executable:
description: "Whether the resulting resource file should be made executable."
type: "boolean"
type:
description: "An executable Python script.\nWhen defined in resources, only\
\ the first entry will be executed when running the built component or when\
\ running `viash run`.\nWhen defined in test_resources, all entries will\
\ be executed during `viash test`."
const: "python_script"
dest:
description: "Resulting filename of the resource. From within a script, the\
\ file can be accessed at `meta[\"resources_dir\"] + \"/\" + dest`. If unspecified,\
\ `dest` will be set to the basename of the `path` parameter."
type: "string"
required:
- "type"
additionalProperties: false
RScript:
description: "An executable R script.\nWhen defined in resources, only the first\
\ entry will be executed when running the built component or when running `viash\
\ run`.\nWhen defined in test_resources, all entries will be executed during\
\ `viash test`."
type: "object"
properties:
path:
description: "The path of the input file. Can be a relative or an absolute\
\ path, or a URI. Mutually exclusive with `text`."
type: "string"
text:
description: "The content of the resulting file specified as a string. Mutually\
\ exclusive with `path`."
type: "string"
is_executable:
description: "Whether the resulting resource file should be made executable."
type: "boolean"
type:
description: "An executable R script.\nWhen defined in resources, only the\
\ first entry will be executed when running the built component or when\
\ running `viash run`.\nWhen defined in test_resources, all entries will\
\ be executed during `viash test`."
const: "r_script"
dest:
description: "Resulting filename of the resource. From within a script, the\
\ file can be accessed at `meta[\"resources_dir\"] + \"/\" + dest`. If unspecified,\
\ `dest` will be set to the basename of the `path` parameter."
type: "string"
required:
- "type"
additionalProperties: false
ScalaScript:
description: "An executable Scala script.\nWhen defined in resources, only the\
\ first entry will be executed when running the built component or when running\
\ `viash run`.\nWhen defined in test_resources, all entries will be executed\
\ during `viash test`."
type: "object"
properties:
path:
description: "The path of the input file. Can be a relative or an absolute\
\ path, or a URI. Mutually exclusive with `text`."
type: "string"
text:
description: "The content of the resulting file specified as a string. Mutually\
\ exclusive with `path`."
type: "string"
is_executable:
description: "Whether the resulting resource file should be made executable."
type: "boolean"
type:
description: "An executable Scala script.\nWhen defined in resources, only\
\ the first entry will be executed when running the built component or when\
\ running `viash run`.\nWhen defined in test_resources, all entries will\
\ be executed during `viash test`."
const: "scala_script"
dest:
description: "Resulting filename of the resource. From within a script, the\
\ file can be accessed at `meta[\"resources_dir\"] + \"/\" + dest`. If unspecified,\
\ `dest` will be set to the basename of the `path` parameter."
type: "string"
required:
- "type"
additionalProperties: false
NextflowDirectives:
description: "Directives are optional settings that affect the execution of the\
\ process.\n"
type: "object"
properties:
beforeScript:
description: "The `beforeScript` directive allows you to execute a custom\
\ (Bash) snippet before the main process script is run. This may be useful\
\ to initialise the underlying cluster environment or for other custom initialisation.\n\
\nSee [`beforeScript`](https://www.nextflow.io/docs/latest/process.html#beforeScript).\n"
type: "string"
module:
oneOf:
- description: "Environment Modules is a package manager that allows you to\
\ dynamically configure your execution environment and easily switch between\
\ multiple versions of the same software tool.\n\nIf it is available in\
\ your system you can use it with Nextflow in order to configure the processes\
\ execution environment in your pipeline.\n\nIn a process definition you\
\ can use the `module` directive to load a specific module version to\
\ be used in the process execution environment.\n\nSee [`module`](https://www.nextflow.io/docs/latest/process.html#module).\n"
type: "string"
- type: "array"
items:
description: "Environment Modules is a package manager that allows you\
\ to dynamically configure your execution environment and easily switch\
\ between multiple versions of the same software tool.\n\nIf it is available\
\ in your system you can use it with Nextflow in order to configure\
\ the processes execution environment in your pipeline.\n\nIn a process\
\ definition you can use the `module` directive to load a specific module\
\ version to be used in the process execution environment.\n\nSee [`module`](https://www.nextflow.io/docs/latest/process.html#module).\n"
type: "string"
queue:
oneOf:
- description: "The `queue` directory allows you to set the queue where jobs\
\ are scheduled when using a grid based executor in your pipeline.\n\n\
See [`queue`](https://www.nextflow.io/docs/latest/process.html#queue).\n"
type: "string"
- type: "array"
items:
description: "The `queue` directory allows you to set the queue where\
\ jobs are scheduled when using a grid based executor in your pipeline.\n\
\nSee [`queue`](https://www.nextflow.io/docs/latest/process.html#queue).\n"
type: "string"
label:
oneOf:
- description: "The `label` directive allows the annotation of processes with\
\ mnemonic identifier of your choice.\n\nSee [`label`](https://www.nextflow.io/docs/latest/process.html#label).\n"
type: "string"
- type: "array"
items:
description: "The `label` directive allows the annotation of processes\
\ with mnemonic identifier of your choice.\n\nSee [`label`](https://www.nextflow.io/docs/latest/process.html#label).\n"
type: "string"
container:
oneOf:
- description: "The `container` directive allows you to execute the process\
\ script in a Docker container.\n\nIt requires the Docker daemon to be\
\ running in machine where the pipeline is executed, i.e. the local machine\
\ when using the local executor or the cluster nodes when the pipeline\
\ is deployed through a grid executor.\n\nViash implements allows either\
\ a string value or a map. In case a map is used, the allowed keys are:\
\ `registry`, `image`, and `tag`. The `image` value must be specified.\n\
\nSee [`container`](https://www.nextflow.io/docs/latest/process.html#container).\n"
type: "object"
additionalProperties:
type: "string"
- description: "The `container` directive allows you to execute the process\
\ script in a Docker container.\n\nIt requires the Docker daemon to be\
\ running in machine where the pipeline is executed, i.e. the local machine\
\ when using the local executor or the cluster nodes when the pipeline\
\ is deployed through a grid executor.\n\nViash implements allows either\
\ a string value or a map. In case a map is used, the allowed keys are:\
\ `registry`, `image`, and `tag`. The `image` value must be specified.\n\
\nSee [`container`](https://www.nextflow.io/docs/latest/process.html#container).\n"
type: "string"
publishDir:
oneOf:
- oneOf:
- description: "The `publishDir` directive allows you to publish the process\
\ output files to a specified folder.\n\nViash implements this directive\
\ as a plain string or a map. The allowed keywords for the map are:\
\ `path`, `mode`, `overwrite`, `pattern`, `saveAs`, `enabled`. The `path`\
\ key and value are required.\nThe allowed values for `mode` are: `symlink`,\
\ `rellink`, `link`, `copy`, `copyNoFollow`, `move`.\n\nSee [`publishDir`](https://www.nextflow.io/docs/latest/process.html#publishdir).\n"
type: "string"
- description: "The `publishDir` directive allows you to publish the process\
\ output files to a specified folder.\n\nViash implements this directive\
\ as a plain string or a map. The allowed keywords for the map are:\
\ `path`, `mode`, `overwrite`, `pattern`, `saveAs`, `enabled`. The `path`\
\ key and value are required.\nThe allowed values for `mode` are: `symlink`,\
\ `rellink`, `link`, `copy`, `copyNoFollow`, `move`.\n\nSee [`publishDir`](https://www.nextflow.io/docs/latest/process.html#publishdir).\n"
type: "object"
additionalProperties:
type: "string"
- type: "array"
items:
oneOf:
- description: "The `publishDir` directive allows you to publish the process\
\ output files to a specified folder.\n\nViash implements this directive\
\ as a plain string or a map. The allowed keywords for the map are:\
\ `path`, `mode`, `overwrite`, `pattern`, `saveAs`, `enabled`. The\
\ `path` key and value are required.\nThe allowed values for `mode`\
\ are: `symlink`, `rellink`, `link`, `copy`, `copyNoFollow`, `move`.\n\
\nSee [`publishDir`](https://www.nextflow.io/docs/latest/process.html#publishdir).\n"
type: "string"
- description: "The `publishDir` directive allows you to publish the process\
\ output files to a specified folder.\n\nViash implements this directive\
\ as a plain string or a map. The allowed keywords for the map are:\
\ `path`, `mode`, `overwrite`, `pattern`, `saveAs`, `enabled`. The\
\ `path` key and value are required.\nThe allowed values for `mode`\
\ are: `symlink`, `rellink`, `link`, `copy`, `copyNoFollow`, `move`.\n\
\nSee [`publishDir`](https://www.nextflow.io/docs/latest/process.html#publishdir).\n"
type: "object"
additionalProperties:
type: "string"
maxForks:
oneOf:
- description: "The `maxForks` directive allows you to define the maximum\
\ number of process instances that can be executed in parallel. By default\
\ this value is equals to the number of CPU cores available minus 1.\n\
\nIf you want to execute a process in a sequential manner, set this directive\
\ to one.\n\nSee [`maxForks`](https://www.nextflow.io/docs/latest/process.html#maxforks).\n"
type: "string"
- description: "The `maxForks` directive allows you to define the maximum\
\ number of process instances that can be executed in parallel. By default\
\ this value is equals to the number of CPU cores available minus 1.\n\
\nIf you want to execute a process in a sequential manner, set this directive\
\ to one.\n\nSee [`maxForks`](https://www.nextflow.io/docs/latest/process.html#maxforks).\n"
type: "integer"
maxErrors:
oneOf:
- description: "The `maxErrors` directive allows you to specify the maximum\
\ number of times a process can fail when using the `retry` error strategy.\
\ By default this directive is disabled.\n\nSee [`maxErrors`](https://www.nextflow.io/docs/latest/process.html#maxerrors).\n"
type: "string"
- description: "The `maxErrors` directive allows you to specify the maximum\
\ number of times a process can fail when using the `retry` error strategy.\
\ By default this directive is disabled.\n\nSee [`maxErrors`](https://www.nextflow.io/docs/latest/process.html#maxerrors).\n"
type: "integer"
cpus:
oneOf:
- description: "The `cpus` directive allows you to define the number of (logical)\
\ CPU required by the process' task.\n\nSee [`cpus`](https://www.nextflow.io/docs/latest/process.html#cpus).\n"
type: "integer"
- description: "The `cpus` directive allows you to define the number of (logical)\
\ CPU required by the process' task.\n\nSee [`cpus`](https://www.nextflow.io/docs/latest/process.html#cpus).\n"
type: "string"
accelerator:
description: "The `accelerator` directive allows you to specify the hardware\
\ accelerator requirement for the task execution e.g. GPU processor.\n\n\
Viash implements this directive as a map with accepted keywords: `type`,\
\ `limit`, `request`, and `runtime`.\n\nSee [`accelerator`](https://www.nextflow.io/docs/latest/process.html#accelerator).\n"
type: "object"
additionalProperties:
type: "string"
time:
description: "The `time` directive allows you to define how long a process\
\ is allowed to run.\n\nSee [`time`](https://www.nextflow.io/docs/latest/process.html#time).\n"
type: "string"
afterScript:
description: "The `afterScript` directive allows you to execute a custom (Bash)\
\ snippet immediately after the main process has run. This may be useful\
\ to clean up your staging area.\n\nSee [`afterScript`](https://www.nextflow.io/docs/latest/process.html#afterscript).\n"
type: "string"
executor:
description: "The `executor` defines the underlying system where processes\
\ are executed. By default a process uses the executor defined globally\
\ in the nextflow.config file.\n\nThe `executor` directive allows you to\
\ configure what executor has to be used by the process, overriding the\
\ default configuration. The following values can be used:\n\n| Name | Executor\
\ |\n|------|----------|\n| awsbatch | The process is executed using the\
\ AWS Batch service. | \n| azurebatch | The process is executed using the\
\ Azure Batch service. | \n| condor | The process is executed using the\
\ HTCondor job scheduler. | \n| google-lifesciences | The process is executed\
\ using the Google Genomics Pipelines service. | \n| ignite | The process\
\ is executed using the Apache Ignite cluster. | \n| k8s | The process is\
\ executed using the Kubernetes cluster. | \n| local | The process is executed\
\ in the computer where Nextflow is launched. | \n| lsf | The process is\
\ executed using the Platform LSF job scheduler. | \n| moab | The process\
\ is executed using the Moab job scheduler. | \n| nqsii | The process is\
\ executed using the NQSII job scheduler. | \n| oge | Alias for the sge\
\ executor. | \n| pbs | The process is executed using the PBS/Torque job\
\ scheduler. | \n| pbspro | The process is executed using the PBS Pro job\
\ scheduler. | \n| sge | The process is executed using the Sun Grid Engine\
\ / Open Grid Engine. | \n| slurm | The process is executed using the SLURM\
\ job scheduler. | \n| tes | The process is executed using the GA4GH TES\
\ service. | \n| uge | Alias for the sge executor. |\n\nSee [`executor`](https://www.nextflow.io/docs/latest/process.html#executor).\n"
type: "string"
containerOptions:
oneOf:
- description: "The `containerOptions` directive allows you to specify any\
\ container execution option supported by the underlying container engine\
\ (ie. Docker, Singularity, etc). This can be useful to provide container\
\ settings only for a specific process e.g. mount a custom path.\n\nSee\
\ [`containerOptions`](https://www.nextflow.io/docs/latest/process.html#containeroptions).\n"
type: "string"
- type: "array"
items:
description: "The `containerOptions` directive allows you to specify any\
\ container execution option supported by the underlying container engine\
\ (ie. Docker, Singularity, etc). This can be useful to provide container\
\ settings only for a specific process e.g. mount a custom path.\n\n\
See [`containerOptions`](https://www.nextflow.io/docs/latest/process.html#containeroptions).\n"
type: "string"
disk:
description: "The `disk` directive allows you to define how much local disk\
\ storage the process is allowed to use.\n\nSee [`disk`](https://www.nextflow.io/docs/latest/process.html#disk).\n"
type: "string"
tag:
description: "The `tag` directive allows you to associate each process execution\
\ with a custom label, so that it will be easier to identify them in the\
\ log file or in the trace execution report.\n\nFor ease of use, the default\
\ tag is set to \"$id\", which allows tracking the progression of the channel\
\ events through the workflow more easily.\n\nSee [`tag`](https://www.nextflow.io/docs/latest/process.html#tag).\n"
type: "string"
conda:
oneOf:
- description: "The `conda` directive allows for the definition of the process\
\ dependencies using the Conda package manager.\n\nNextflow automatically\
\ sets up an environment for the given package names listed by in the\
\ `conda` directive.\n\nSee [`conda`](https://www.nextflow.io/docs/latest/process.html#conda).\n"
type: "string"
- type: "array"
items:
description: "The `conda` directive allows for the definition of the process\
\ dependencies using the Conda package manager.\n\nNextflow automatically\
\ sets up an environment for the given package names listed by in the\
\ `conda` directive.\n\nSee [`conda`](https://www.nextflow.io/docs/latest/process.html#conda).\n"
type: "string"
machineType:
description: " The `machineType` can be used to specify a predefined Google\
\ Compute Platform machine type when running using the Google Life Sciences\
\ executor.\n\nSee [`machineType`](https://www.nextflow.io/docs/latest/process.html#machinetype).\n"
type: "string"
stageInMode:
description: "The `stageInMode` directive defines how input files are staged-in\
\ to the process work directory. The following values are allowed:\n\n|\
\ Value | Description |\n|-------|-------------| \n| copy | Input files\
\ are staged in the process work directory by creating a copy. | \n| link\
\ | Input files are staged in the process work directory by creating an\
\ (hard) link for each of them. | \n| symlink | Input files are staged in\
\ the process work directory by creating a symbolic link with an absolute\
\ path for each of them (default). | \n| rellink | Input files are staged\
\ in the process work directory by creating a symbolic link with a relative\
\ path for each of them. | \n\nSee [`stageInMode`](https://www.nextflow.io/docs/latest/process.html#stageinmode).\n"
type: "string"
cache:
oneOf:
- description: "The `cache` directive allows you to store the process results\
\ to a local cache. When the cache is enabled and the pipeline is launched\
\ with the resume option, any following attempt to execute the process,\
\ along with the same inputs, will cause the process execution to be skipped,\
\ producing the stored data as the actual results.\n\nThe caching feature\
\ generates a unique key by indexing the process script and inputs. This\
\ key is used to identify univocally the outputs produced by the process\
\ execution.\n\nThe `cache` is enabled by default, you can disable it\
\ for a specific process by setting the cache directive to `false`.\n\n\
Accepted values are: `true`, `false`, \"deep\", and \"lenient\".\n\nSee\
\ [`cache`](https://www.nextflow.io/docs/latest/process.html#cache).\n"
type: "boolean"
- description: "The `cache` directive allows you to store the process results\
\ to a local cache. When the cache is enabled and the pipeline is launched\
\ with the resume option, any following attempt to execute the process,\
\ along with the same inputs, will cause the process execution to be skipped,\
\ producing the stored data as the actual results.\n\nThe caching feature\
\ generates a unique key by indexing the process script and inputs. This\
\ key is used to identify univocally the outputs produced by the process\
\ execution.\n\nThe `cache` is enabled by default, you can disable it\
\ for a specific process by setting the cache directive to `false`.\n\n\
Accepted values are: `true`, `false`, \"deep\", and \"lenient\".\n\nSee\
\ [`cache`](https://www.nextflow.io/docs/latest/process.html#cache).\n"
type: "string"
pod:
oneOf:
- description: "The `pod` directive allows the definition of pods specific\
\ settings, such as environment variables, secrets and config maps when\
\ using the Kubernetes executor.\n\nSee [`pod`](https://www.nextflow.io/docs/latest/process.html#pod).\n"
type: "object"
additionalProperties:
type: "string"
- type: "array"
items:
description: "The `pod` directive allows the definition of pods specific\
\ settings, such as environment variables, secrets and config maps when\
\ using the Kubernetes executor.\n\nSee [`pod`](https://www.nextflow.io/docs/latest/process.html#pod).\n"
type: "object"
additionalProperties:
type: "string"
penv:
description: "The `penv` directive allows you to define the parallel environment\
\ to be used when submitting a parallel task to the SGE resource manager.\n\
\nSee [`penv`](https://www.nextflow.io/docs/latest/process.html#penv).\n"
type: "string"
scratch:
oneOf:
- description: "The `scratch` directive allows you to execute the process\
\ in a temporary folder that is local to the execution node.\n\nSee [`scratch`](https://www.nextflow.io/docs/latest/process.html#scratch).\n"
type: "boolean"
- description: "The `scratch` directive allows you to execute the process\
\ in a temporary folder that is local to the execution node.\n\nSee [`scratch`](https://www.nextflow.io/docs/latest/process.html#scratch).\n"
type: "string"
storeDir:
description: "The `storeDir` directive allows you to define a directory that\
\ is used as a permanent cache for your process results.\n\nSee [`storeDir`](https://www.nextflow.io/docs/latest/process.html#storeDir).\n"
type: "string"
maxRetries:
oneOf:
- description: "The `maxRetries` directive allows you to define the maximum\
\ number of times a process instance can be re-submitted in case of failure.\
\ This value is applied only when using the retry error strategy. By default\
\ only one retry is allowed.\n\nSee [`maxRetries`](https://www.nextflow.io/docs/latest/process.html#maxretries).\n"
type: "string"
- description: "The `maxRetries` directive allows you to define the maximum\
\ number of times a process instance can be re-submitted in case of failure.\
\ This value is applied only when using the retry error strategy. By default\
\ only one retry is allowed.\n\nSee [`maxRetries`](https://www.nextflow.io/docs/latest/process.html#maxretries).\n"
type: "integer"
echo:
oneOf:
- description: "By default the stdout produced by the commands executed in\
\ all processes is ignored. By setting the `echo` directive to true, you\
\ can forward the process stdout to the current top running process stdout\
\ file, showing it in the shell terminal.\n \nSee [`echo`](https://www.nextflow.io/docs/latest/process.html#echo).\n"
type: "boolean"
- description: "By default the stdout produced by the commands executed in\
\ all processes is ignored. By setting the `echo` directive to true, you\
\ can forward the process stdout to the current top running process stdout\
\ file, showing it in the shell terminal.\n \nSee [`echo`](https://www.nextflow.io/docs/latest/process.html#echo).\n"
type: "string"
errorStrategy:
description: "The `errorStrategy` directive allows you to define how an error\
\ condition is managed by the process. By default when an error status is\
\ returned by the executed script, the process stops immediately. This in\
\ turn forces the entire pipeline to terminate.\n\nTable of available error\
\ strategies:\n| Name | Executor |\n|------|----------|\n| `terminate` |\
\ Terminates the execution as soon as an error condition is reported. Pending\
\ jobs are killed (default) |\n| `finish` | Initiates an orderly pipeline\
\ shutdown when an error condition is raised, waiting the completion of\
\ any submitted job. |\n| `ignore` | Ignores processes execution errors.\
\ |\n| `retry` | Re-submit for execution a process returning an error condition.\
\ |\n\nSee [`errorStrategy`](https://www.nextflow.io/docs/latest/process.html#errorstrategy).\n"
type: "string"
memory:
description: "The `memory` directive allows you to define how much memory\
\ the process is allowed to use.\n\nSee [`memory`](https://www.nextflow.io/docs/latest/process.html#memory).\n"
type: "string"
stageOutMode:
description: "The `stageOutMode` directive defines how output files are staged-out\
\ from the scratch directory to the process work directory. The following\
\ values are allowed:\n\n| Value | Description |\n|-------|-------------|\
\ \n| copy | Output files are copied from the scratch directory to the work\
\ directory. | \n| move | Output files are moved from the scratch directory\
\ to the work directory. | \n| rsync | Output files are copied from the\
\ scratch directory to the work directory by using the rsync utility. |\n\
\nSee [`stageOutMode`](https://www.nextflow.io/docs/latest/process.html#stageoutmode).\n"
type: "string"
required: []
additionalProperties: false
NextflowAuto:
description: "Automated processing flags which can be toggled on or off."
type: "object"
properties:
simplifyInput:
description: "If `true`, an input tuple only containing only a single File\
\ (e.g. `[\"foo\", file(\"in.h5ad\")]`) is automatically transformed to\
\ a map (i.e. `[\"foo\", [ input: file(\"in.h5ad\") ] ]`).\n\nDefault: `true`.\n"
type: "boolean"
simplifyOutput:
description: "If `true`, an output tuple containing a map with a File (e.g.\
\ `[\"foo\", [ output: file(\"out.h5ad\") ] ]`) is automatically transformed\
\ to a map (i.e. `[\"foo\", file(\"out.h5ad\")]`).\n\nDefault: `false`.\n"
type: "boolean"
publish:
oneOf:
- description: "If `true`, the module's outputs are automatically published\
\ to `params.publishDir`.\nIf equal to \"state\", also a `.state.yaml`\
\ file will be published in the publish dir.\nWill throw an error if `params.publishDir`\
\ is not defined.\n\nDefault: `false`.\n"
type: "boolean"
- description: "If `true`, the module's outputs are automatically published\
\ to `params.publishDir`.\nIf equal to \"state\", also a `.state.yaml`\
\ file will be published in the publish dir.\nWill throw an error if `params.publishDir`\
\ is not defined.\n\nDefault: `false`.\n"
type: "string"
transcript:
description: "If `true`, the module's transcripts from `work/` are automatically\
\ published to `params.transcriptDir`.\nIf not defined, `params.publishDir\
\ + \"/_transcripts\"` will be used.\nWill throw an error if neither are\
\ defined.\n\nDefault: `false`.\n"
type: "boolean"
required: []
additionalProperties: false
NextflowConfig:
description: "Allows tweaking how the Nextflow Config file is generated."
type: "object"
properties:
labels:
description: "A series of default labels to specify memory and cpu constraints.\n\
\nThe default memory labels are defined as \"mem1gb\", \"mem2gb\", \"mem4gb\"\
, ... upto \"mem512tb\" and follows powers of 2.\nThe default cpu labels\
\ are defined as \"cpu1\", \"cpu2\", \"cpu5\", \"cpu10\", ... upto \"cpu1000\"\
\ and follows a semi logarithmic scale (1, 2, 5 per decade).\n\nConceptually\
\ it is possible for a Viash Config to overwrite the full labels parameter,\
\ however likely it is more efficient to add additional labels\nin the Viash\
\ Package with a config mod.\n"
type: "object"
additionalProperties:
type: "string"
script:
oneOf:
- description: "Includes a single string or list of strings into the nextflow.config\
\ file.\nThis can be used to add custom profiles or include an additional\
\ config file.\n"
type: "string"
- type: "array"
items:
description: "Includes a single string or list of strings into the nextflow.config\
\ file.\nThis can be used to add custom profiles or include an additional\
\ config file.\n"
type: "string"
required: []
additionalProperties: false
Dependency:
description: "Specifies a Viash component (script or executable) that should be\
\ made available for the code defined in the component.\nThe dependency components\
\ are collected and copied to the output folder during the Viash build step.\n"
type: "object"
properties:
name:
description: "The full name of the dependency component. This should include\
\ the namespace."
type: "string"
repository:
oneOf:
- description: "Specifies the repository location where the dependency component\
\ can be found.\nThis must either be a full definition of the repository\
\ or the name of a repository referenced as it is defined under repositories.\n\
Additionally, the full definition can be specified as a single string\
\ where all parameters such as repository type, url, branch or tag are\
\ specified.\nOmitting the value sets the dependency as a local dependency,\
\ ie. the dependency is available in the same namespace as the component.\n"
type: "string"
- description: "Specifies the repository location where the dependency component\
\ can be found.\nThis must either be a full definition of the repository\
\ or the name of a repository referenced as it is defined under repositories.\n\
Additionally, the full definition can be specified as a single string\
\ where all parameters such as repository type, url, branch or tag are\
\ specified.\nOmitting the value sets the dependency as a local dependency,\
\ ie. the dependency is available in the same namespace as the component.\n"
$ref: "#/definitions/Repository"
alias:
description: "An alternative name for the dependency component. This can include\
\ a namespace if so needed."
type: "string"
required:
- "name"
additionalProperties: false
Repository:
oneOf:
- $ref: "#/definitions/LocalRepository"
- $ref: "#/definitions/GitRepository"
- $ref: "#/definitions/GithubRepository"
- $ref: "#/definitions/ViashhubRepository"
LocalRepository:
description: "Defines a locally present and available repository.\nThis can be\
\ used to define components from the same code base as the current component.\n\
Alternatively, this can be used to refer to a code repository present on the\
\ local hard-drive instead of fetchable remotely, for example during development.\n"
type: "object"
properties:
path:
description: "Defines a subfolder of the repository to use as base to look\
\ for the dependency components."
type: "string"
tag:
description: "Defines which version of the dependency component to use. Typically\
\ this can be a specific tag, branch or commit hash."
type: "string"
type:
description: "Defines a locally present and available repository.\nThis can\
\ be used to define components from the same code base as the current component.\n\
Alternatively, this can be used to refer to a code repository present on\
\ the local hard-drive instead of fetchable remotely, for example during\
\ development.\n"
const: "local"
required:
- "type"
additionalProperties: false
GitRepository:
description: "A Git repository where remote dependency components can be found."
type: "object"
properties:
path:
description: "Defines a subfolder of the repository to use as base to look\
\ for the dependency components."
type: "string"
tag:
description: "Defines which version of the dependency component to use. Typically\
\ this can be a specific tag, branch or commit hash."
type: "string"
uri:
description: "The URI of the Git repository."
type: "string"
type:
description: "A Git repository where remote dependency components can be found."
const: "git"
required:
- "uri"
- "type"
additionalProperties: false
GithubRepository:
description: "A GitHub repository where remote dependency components can be found."
type: "object"
properties:
path:
description: "Defines a subfolder of the repository to use as base to look\
\ for the dependency components."
type: "string"
tag:
description: "Defines which version of the dependency component to use. Typically\
\ this can be a specific tag, branch or commit hash."
type: "string"
repo:
description: "The name of the GitHub repository."
type: "string"
type:
description: "A GitHub repository where remote dependency components can be\
\ found."
const: "github"
required:
- "repo"
- "type"
additionalProperties: false
ViashhubRepository:
description: "A Viash-Hub repository where remote dependency components can be\
\ found."
type: "object"
properties:
path:
description: "Defines a subfolder of the repository to use as base to look\
\ for the dependency components."
type: "string"
tag:
description: "Defines which version of the dependency component to use. Typically\
\ this can be a specific tag, branch or commit hash."
type: "string"
repo:
description: "The name of the Viash-Hub repository."
type: "string"
type:
description: "A Viash-Hub repository where remote dependency components can\
\ be found."
const: "viashhub"
required:
- "repo"
- "type"
additionalProperties: false
RepositoryWithName:
oneOf:
- $ref: "#/definitions/LocalRepositoryWithName"
- $ref: "#/definitions/GitRepositoryWithName"
- $ref: "#/definitions/GithubRepositoryWithName"
- $ref: "#/definitions/ViashhubRepositoryWithName"
LocalRepositoryWithName:
description: "Defines a locally present and available repository.\nThis can be\
\ used to define components from the same code base as the current component.\n\
Alternatively, this can be used to refer to a code repository present on the\
\ local hard-drive instead of fetchable remotely, for example during development.\n"
type: "object"
properties:
name:
description: "The identifier used to refer to this repository from dependencies."
type: "string"
path:
description: "Defines a subfolder of the repository to use as base to look\
\ for the dependency components."
type: "string"
tag:
description: "Defines which version of the dependency component to use. Typically\
\ this can be a specific tag, branch or commit hash."
type: "string"
type:
description: "Defines a locally present and available repository.\nThis can\
\ be used to define components from the same code base as the current component.\n\
Alternatively, this can be used to refer to a code repository present on\
\ the local hard-drive instead of fetchable remotely, for example during\
\ development.\n"
const: "local"
required:
- "name"
- "type"
additionalProperties: false
GitRepositoryWithName:
description: "A Git repository where remote dependency components can be found."
type: "object"
properties:
name:
description: "The identifier used to refer to this repository from dependencies."
type: "string"
path:
description: "Defines a subfolder of the repository to use as base to look\
\ for the dependency components."
type: "string"
tag:
description: "Defines which version of the dependency component to use. Typically\
\ this can be a specific tag, branch or commit hash."
type: "string"
uri:
description: "The URI of the Git repository."
type: "string"
type:
description: "A Git repository where remote dependency components can be found."
const: "git"
required:
- "name"
- "uri"
- "type"
additionalProperties: false
GithubRepositoryWithName:
description: "A GitHub repository where remote dependency components can be found."
type: "object"
properties:
name:
description: "The identifier used to refer to this repository from dependencies."
type: "string"
path:
description: "Defines a subfolder of the repository to use as base to look\
\ for the dependency components."
type: "string"
tag:
description: "Defines which version of the dependency component to use. Typically\
\ this can be a specific tag, branch or commit hash."
type: "string"
repo:
description: "The name of the GitHub repository."
type: "string"
type:
description: "A GitHub repository where remote dependency components can be\
\ found."
const: "github"
required:
- "name"
- "repo"
- "type"
additionalProperties: false
ViashhubRepositoryWithName:
description: "A Viash-Hub repository where remote dependency components can be\
\ found."
type: "object"
properties:
name:
description: "The identifier used to refer to this repository from dependencies."
type: "string"
path:
description: "Defines a subfolder of the repository to use as base to look\
\ for the dependency components."
type: "string"
tag:
description: "Defines which version of the dependency component to use. Typically\
\ this can be a specific tag, branch or commit hash."
type: "string"
repo:
description: "The name of the Viash-Hub repository."
type: "string"
type:
description: "A Viash-Hub repository where remote dependency components can\
\ be found."
const: "viashhub"
required:
- "name"
- "repo"
- "type"
additionalProperties: false
DockerSetupStrategy:
enum:
- "cb"
- "ifneedbepullelsecachedbuild"
- "donothing"
- "gentlepush"
- "alwayspullelsebuild"
- "build"
- "alwayspull"
- "alwaysbuild"
- "ifneedbebuild"
- "pullelsebuild"
- "p"
- "alwayspullelsecachedbuild"
- "pull"
- "maybepush"
- "ifneedbepullelsebuild"
- "cachedbuild"
- "pullelsecachedbuild"
- "push"
- "forcepush"
- "alwayspush"
- "b"
- "pushifnotpresent"
- "alwayscachedbuild"
- "meh"
- "ifneedbepull"
- "ifneedbecachedbuild"
$comment: "TODO add descriptions to different strategies"
description: "The Docker setup strategy to use when building a container."
Direction:
enum:
- "input"
- "output"
description: "Makes this argument an `input` or an `output`, as in does the file/folder\
\ needs to be read or written. `input` by default."
Status:
enum:
- "enabled"
- "disabled"
- "deprecated"
description: "Allows setting a component to active, deprecated or disabled."
DockerResolveVolume:
enum:
- "manual"
- "automatic"
- "auto"
- "Manual"
- "Automatic"
- "Auto"
$comment: "TODO make fully case insensitive"
description: "Enables or disables automatic volume mapping. Enabled when set to\
\ `Automatic` or disabled when set to `Manual`. Default: `Automatic`"
DoubleStrings:
enum:
- "+.inf"
- "+inf"
- "+infinity"
- "positiveinfinity"
- "positiveinf"
- "-.inf"
- "-inf"
- "-infinity"
- "negativeinfinity"
- "negativeinf"
- ".nan"
- "nan"
DoubleWithInf:
oneOf:
- type: "number"
- $ref: "#/definitions/DoubleStrings"
oneOf:
- $ref: "#/definitions/Config"