export class AppAction { name: string; paramscmd: string; client: {cmd: string[], redir: string, usebasicauth: boolean}; states: string[]; // list of stats such as 'RUNNING' in which the action is valid. null||undefined if its always valid } export class Strudelapp { url: string; // A url used to retrieve extra config options. May be null name: string; startscript: string; // batch script ... should NOT include resource directives // resource directives like #SBATCH belong in the batchinterface appactions: AppAction[]; // appactions don't require an instance. i.e. they take place on the login submit node instactions: AppAction[]; // instactions apply to a particular instance of an application, eg connecting to a running desktop localbind: boolean; // does the application bind to a port on the localhost // interface or on all interfaces. This behaviour determins /// how we create tunnels applist: Strudelapp[] = null; } export class StrudelappInstance { port: number; password: string; }