ApplicationInvocationDescription¶
The specification for how to invoke an Application
data class ApplicationInvocationDescription(
    val tool: ToolReference,
    val invocation: List<InvocationParameter>,
    val parameters: List<ApplicationParameter>,
    val outputFileGlobs: List<String>,
    val applicationType: ApplicationType?,
    val vnc: VncDescription?,
    val web: WebDescription?,
    val ssh: SshDescription?,
    val container: ContainerDescription?,
    val environment: JsonObject?,
    val allowAdditionalMounts: Boolean?,
    val allowAdditionalPeers: Boolean?,
    val allowMultiNode: Boolean?,
    val allowPublicIp: Boolean?,
    val allowPublicLink: Boolean?,
    val fileExtensions: List<String>?,
    val licenseServers: List<String>?,
    val modules: ModulesSection?,
    val shouldAllowAdditionalMounts: Boolean,
    val shouldAllowAdditionalPeers: Boolean,
)
All Applications require a tool. The Tool  specify the concrete computing environment.
With the tool we get the required software packages and configuration.
In this environment, we must start some software. Any Job  launched with
this Application  will only run for as long as the software runs. You can specify the command-line
invocation through the invocation property. Each element in this list produce zero or more arguments for the
actual invocation. These InvocationParameters can reference the input parameters of the
Application. In addition, you can set the environment variables through the same mechanism.
All Applications have an ApplicationType  associated with them. This type determines how the
user interacts with your Application. We support the following types:
- BATCH: A non-interactive- Applicationwhich runs without user input
- VNC: An interactive- Applicationexposing a remote desktop interface
- WEB: An interactive- Applicationexposing a graphical web interface
The Application  must expose information about how to access interactive services. It can do so by
setting vnc and web. Providers must use this information when
opening an interactive session.
Users can launch a Job  with additional resources, such as
IP addresses and files. The Application  author specifies the supported resources through the
allowXXX properties.
Properties
tool: ToolReference
ToolReference
invocation: List<InvocationParameter>
List<InvocationParameter>
parameters: List<ApplicationParameter>
List<ApplicationParameter>
applicationType: ApplicationType?
ApplicationType?
vnc: VncDescription?
VncDescription?
web: WebDescription?
WebDescription?
ssh: SshDescription?
SshDescription?
container: ContainerDescription?
ContainerDescription?
environment: JsonObject?
JsonObject?
allowAdditionalMounts: Boolean?
Boolean?
allowAdditionalPeers: Boolean?
Boolean?
allowMultiNode: Boolean?
Boolean?
allowPublicIp: Boolean?
Boolean?
allowPublicLink: Boolean?
Boolean?
fileExtensions: List<String>?
List<String>?This list used as a suffix filter. As a result, this list should typically include the dot.
modules: ModulesSection?
ModulesSection?
shouldAllowAdditionalMounts: Boolean
Boolean
shouldAllowAdditionalPeers: Boolean
Boolean