001package org.galaxyproject.gxformat2.v19_09;
002
003import org.galaxyproject.gxformat2.v19_09.utils.Savable;
004
005/**
006 * Auto-generated interface for <I>https://galaxyproject.org/gxformat2/v19_09#WorkflowStep</I><br>
007 * This interface is implemented by {@link WorkflowStepImpl}<br>
008 *
009 * <BLOCKQUOTE>
010 *
011 * This represents a non-input step a Galaxy Workflow.
012 *
013 * <p># A note about `state` and `tool_state` fields.
014 *
015 * <p>Only one or the other should be specified. These are two ways to represent the "state" of a
016 * tool at this workflow step. Both are essentially maps from parameter names to parameter values.
017 *
018 * <p>`tool_state` is much more low-level and expects a flat dictionary with each value a JSON dump.
019 * Nested tool structures such as conditionals and repeats should have all their values in the JSON
020 * dumped string. In general `tool_state` may be present in workflows exported from Galaxy but
021 * shouldn't be written by humans.
022 *
023 * <p>`state` can contained a typed map. Repeat values can be represented as YAML arrays. An
024 * alternative to representing `state` this way is defining inputs with default values.
025 *
026 * </BLOCKQUOTE>
027 */
028public interface WorkflowStep
029    extends Identified,
030        Labeled,
031        Documented,
032        HasStepPosition,
033        ReferencesTool,
034        HasStepErrors,
035        HasUUID,
036        Savable {
037  /**
038   * Getter for property <I>https://w3id.org/cwl/cwl#Identified/id</I><br>
039   *
040   * <BLOCKQUOTE>
041   *
042   * The unique identifier for this object. *
043   *
044   * </BLOCKQUOTE>
045   */
046  java.util.Optional<String> getId();
047  /**
048   * Getter for property <I>https://w3id.org/cwl/cwl#Labeled/label</I><br>
049   *
050   * <BLOCKQUOTE>
051   *
052   * A short, human-readable label of this object. *
053   *
054   * </BLOCKQUOTE>
055   */
056  java.util.Optional<String> getLabel();
057  /**
058   * Getter for property <I>https://w3id.org/cwl/salad#Documented/doc</I><br>
059   *
060   * <BLOCKQUOTE>
061   *
062   * A documentation string for this object, or an array of strings which should be concatenated. *
063   *
064   * </BLOCKQUOTE>
065   */
066  Object getDoc();
067  /**
068   * Getter for property
069   * <I>https://galaxyproject.org/gxformat2/gxformat2common#HasStepPosition/position</I><br>
070   */
071  java.util.Optional<StepPosition> getPosition();
072  /**
073   * Getter for property
074   * <I>https://galaxyproject.org/gxformat2/gxformat2common#ReferencesTool/tool_id</I><br>
075   *
076   * <BLOCKQUOTE>
077   *
078   * The tool ID used to run this step of the workflow (e.g. 'cat1' or
079   * 'toolshed.g2.bx.psu.edu/repos/nml/collapse_collections/collapse_dataset/4.0'). *
080   *
081   * </BLOCKQUOTE>
082   */
083  java.util.Optional<String> getTool_id();
084  /**
085   * Getter for property
086   * <I>https://galaxyproject.org/gxformat2/gxformat2common#ReferencesTool/tool_shed_repository</I>
087   * <br>
088   *
089   * <BLOCKQUOTE>
090   *
091   * The Galaxy Tool Shed repository that should be installed in order to use this tool. *
092   *
093   * </BLOCKQUOTE>
094   */
095  java.util.Optional<ToolShedRepository> getTool_shed_repository();
096  /**
097   * Getter for property
098   * <I>https://galaxyproject.org/gxformat2/gxformat2common#ReferencesTool/tool_version</I><br>
099   *
100   * <BLOCKQUOTE>
101   *
102   * The tool version corresponding used to run this step of the workflow. For tool shed installed
103   * tools, the ID generally uniquely specifies a version and this field is optional. *
104   *
105   * </BLOCKQUOTE>
106   */
107  java.util.Optional<String> getTool_version();
108  /**
109   * Getter for property
110   * <I>https://galaxyproject.org/gxformat2/gxformat2common#HasStepErrors/errors</I><br>
111   *
112   * <BLOCKQUOTE>
113   *
114   * During Galaxy export there may be some problem validating the tool state, tool used, etc.. that
115   * will be indicated by this field. The Galaxy user should be warned of these problems before the
116   * workflow can be used in Galaxy.
117   *
118   * <p>This field should not be used in human written Galaxy workflow files.
119   *
120   * <p>A typical problem is the referenced tool is not installed, this can be fixed by installed
121   * the tool and re-saving the workflow and then re-exporting it. *
122   *
123   * </BLOCKQUOTE>
124   */
125  java.util.Optional<String> getErrors();
126  /**
127   * Getter for property <I>https://galaxyproject.org/gxformat2/gxformat2common#HasUUID/uuid</I><br>
128   *
129   * <BLOCKQUOTE>
130   *
131   * UUID uniquely representing this element. *
132   *
133   * </BLOCKQUOTE>
134   */
135  java.util.Optional<String> getUuid();
136  /**
137   * Getter for property <I>https://galaxyproject.org/gxformat2/v19_09#in</I><br>
138   *
139   * <BLOCKQUOTE>
140   *
141   * Defines the input parameters of the workflow step. The process is ready to run when all
142   * required input parameters are associated with concrete values. Input parameters include a
143   * schema for each parameter which is used to validate the input object. It may also be used build
144   * a user interface for constructing the input object. *
145   *
146   * </BLOCKQUOTE>
147   */
148  java.util.Optional<java.util.List<Object>> getIn();
149  /**
150   * Getter for property <I>https://galaxyproject.org/gxformat2/v19_09#out</I><br>
151   *
152   * <BLOCKQUOTE>
153   *
154   * Defines the parameters representing the output of the process. May be used to generate and/or
155   * validate the output object.
156   *
157   * <p>This can also be called 'outputs' for legacy reasons - but the resulting workflow document
158   * is not a valid instance of this schema. *
159   *
160   * </BLOCKQUOTE>
161   */
162  java.util.Optional<java.util.List<Object>> getOut();
163  /**
164   * Getter for property <I>https://galaxyproject.org/gxformat2/v19_09#state</I><br>
165   *
166   * <BLOCKQUOTE>
167   *
168   * Structured tool state. *
169   *
170   * </BLOCKQUOTE>
171   */
172  java.util.Optional<Object> getState();
173  /**
174   * Getter for property <I>https://galaxyproject.org/gxformat2/v19_09#tool_state</I><br>
175   *
176   * <BLOCKQUOTE>
177   *
178   * Unstructured tool state. *
179   *
180   * </BLOCKQUOTE>
181   */
182  java.util.Optional<Object> getTool_state();
183  /**
184   * Getter for property <I>https://w3id.org/cwl/salad#type</I><br>
185   *
186   * <BLOCKQUOTE>
187   *
188   * Workflow step module's type (defaults to 'tool'). *
189   *
190   * </BLOCKQUOTE>
191   */
192  java.util.Optional<WorkflowStepType> getType();
193  /**
194   * Getter for property <I>https://w3id.org/cwl/cwl#run</I><br>
195   *
196   * <BLOCKQUOTE>
197   *
198   * Specifies a subworkflow to run. *
199   *
200   * </BLOCKQUOTE>
201   */
202  java.util.Optional<GalaxyWorkflow> getRun();
203  /**
204   * Getter for property
205   * <I>https://galaxyproject.org/gxformat2/v19_09#WorkflowStep/runtime_inputs</I><br>
206   */
207  java.util.Optional<java.util.List<Object>> getRuntime_inputs();
208}